aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <jouni.malinen@atheros.com>2009-05-11 03:20:35 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-05-11 15:24:07 -0400
commit528769cf1e422d932052be1487459262f3d75333 (patch)
treea1002ad7db97533105af3d7a237c79dabdb46669
parentcbe8fa9c5e88fd5f554ebc519af3b0ed17dde0dd (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.h8
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;