diff options
author | Jouni Malinen <jouni.malinen@atheros.com> | 2009-05-11 03:20:35 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-05-11 15:24:07 -0400 |
commit | 528769cf1e422d932052be1487459262f3d75333 (patch) | |
tree | a1002ad7db97533105af3d7a237c79dabdb46669 | |
parent | cbe8fa9c5e88fd5f554ebc519af3b0ed17dde0dd (diff) |
mac80211: Robust Action frame categories for MFP
IEEE 802.11w/D9.0 introduces a mechanism for Action field Category
values to be used to select which Action frames are Robust. Public and
Vendor-specific categories are marked as not Robust in IEEE 802.11w;
HT will be marked not Robust in IEEE 802.11n. A new Vendor-specific
Protected category is allocated for Robust vendor-specific Action
frames. Another new category, Protected Dual of Action, is introduced
for protecting some existing Public Action frames (e.g., IEEE 802.11y
protected enablement).
Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | include/linux/ieee80211.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index dc92359f37e6..05c29c01174c 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -1068,8 +1068,12 @@ enum ieee80211_category { | |||
1068 | WLAN_CATEGORY_DLS = 2, | 1068 | WLAN_CATEGORY_DLS = 2, |
1069 | WLAN_CATEGORY_BACK = 3, | 1069 | WLAN_CATEGORY_BACK = 3, |
1070 | WLAN_CATEGORY_PUBLIC = 4, | 1070 | WLAN_CATEGORY_PUBLIC = 4, |
1071 | WLAN_CATEGORY_HT = 7, | ||
1071 | WLAN_CATEGORY_SA_QUERY = 8, | 1072 | WLAN_CATEGORY_SA_QUERY = 8, |
1073 | WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9, | ||
1072 | WLAN_CATEGORY_WMM = 17, | 1074 | WLAN_CATEGORY_WMM = 17, |
1075 | WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, | ||
1076 | WLAN_CATEGORY_VENDOR_SPECIFIC = 127, | ||
1073 | }; | 1077 | }; |
1074 | 1078 | ||
1075 | /* SPECTRUM_MGMT action code */ | 1079 | /* SPECTRUM_MGMT action code */ |
@@ -1261,7 +1265,9 @@ static inline bool ieee80211_is_robust_mgmt_frame(struct ieee80211_hdr *hdr) | |||
1261 | if (ieee80211_has_protected(hdr->frame_control)) | 1265 | if (ieee80211_has_protected(hdr->frame_control)) |
1262 | return true; | 1266 | return true; |
1263 | category = ((u8 *) hdr) + 24; | 1267 | category = ((u8 *) hdr) + 24; |
1264 | return *category != WLAN_CATEGORY_PUBLIC; | 1268 | return *category != WLAN_CATEGORY_PUBLIC && |
1269 | *category != WLAN_CATEGORY_HT && | ||
1270 | *category != WLAN_CATEGORY_VENDOR_SPECIFIC; | ||
1265 | } | 1271 | } |
1266 | 1272 | ||
1267 | return false; | 1273 | return false; |