diff options
author | Javier Cardona <javier@cozybit.com> | 2011-05-03 19:57:09 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-05-11 14:37:47 -0400 |
commit | d3aaec8ab76c2d604c2ba7332e1338674607597b (patch) | |
tree | 436851aa4210a3567642945831854142b4fa9cf6 | |
parent | 0778a6a3e56cabdc322755f97ad23ee67efad0f0 (diff) |
mac80211: Drop MESH_PLINK category and use new ANA-approved MESH_ACTION
Note: This breaks compatibility with previous mesh protocol instances.
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | include/linux/ieee80211.h | 5 | ||||
-rw-r--r-- | net/mac80211/mesh.c | 2 | ||||
-rw-r--r-- | net/mac80211/mesh_plink.c | 2 | ||||
-rw-r--r-- | net/mac80211/rx.c | 7 |
4 files changed, 9 insertions, 7 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 79690b710665..ee1c96a866cc 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -1261,9 +1261,8 @@ enum ieee80211_category { | |||
1261 | WLAN_CATEGORY_MULTIHOP_ACTION = 14, | 1261 | WLAN_CATEGORY_MULTIHOP_ACTION = 14, |
1262 | WLAN_CATEGORY_SELF_PROTECTED = 15, | 1262 | WLAN_CATEGORY_SELF_PROTECTED = 15, |
1263 | WLAN_CATEGORY_WMM = 17, | 1263 | WLAN_CATEGORY_WMM = 17, |
1264 | /* TODO: remove MESH_PLINK and MESH_PATH_SEL after */ | 1264 | /* TODO: remove MESH_PATH_SEL after mesh is updated |
1265 | /* mesh is updated to current 802.11s draft */ | 1265 | * to current 802.11s draft */ |
1266 | WLAN_CATEGORY_MESH_PLINK = 30, | ||
1267 | WLAN_CATEGORY_MESH_PATH_SEL = 32, | 1266 | WLAN_CATEGORY_MESH_PATH_SEL = 32, |
1268 | WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, | 1267 | WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, |
1269 | WLAN_CATEGORY_VENDOR_SPECIFIC = 127, | 1268 | WLAN_CATEGORY_VENDOR_SPECIFIC = 127, |
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c index 2a59eb345131..75378e852f00 100644 --- a/net/mac80211/mesh.c +++ b/net/mac80211/mesh.c | |||
@@ -600,7 +600,7 @@ static void ieee80211_mesh_rx_mgmt_action(struct ieee80211_sub_if_data *sdata, | |||
600 | struct ieee80211_rx_status *rx_status) | 600 | struct ieee80211_rx_status *rx_status) |
601 | { | 601 | { |
602 | switch (mgmt->u.action.category) { | 602 | switch (mgmt->u.action.category) { |
603 | case WLAN_CATEGORY_MESH_PLINK: | 603 | case WLAN_CATEGORY_MESH_ACTION: |
604 | mesh_rx_plink_frame(sdata, mgmt, len, rx_status); | 604 | mesh_rx_plink_frame(sdata, mgmt, len, rx_status); |
605 | break; | 605 | break; |
606 | case WLAN_CATEGORY_MESH_PATH_SEL: | 606 | case WLAN_CATEGORY_MESH_PATH_SEL: |
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c index 87abf8deb369..0120e9e36286 100644 --- a/net/mac80211/mesh_plink.c +++ b/net/mac80211/mesh_plink.c | |||
@@ -182,7 +182,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata, | |||
182 | memcpy(mgmt->da, da, ETH_ALEN); | 182 | memcpy(mgmt->da, da, ETH_ALEN); |
183 | memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); | 183 | memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); |
184 | /* BSSID is left zeroed, wildcard value */ | 184 | /* BSSID is left zeroed, wildcard value */ |
185 | mgmt->u.action.category = WLAN_CATEGORY_MESH_PLINK; | 185 | mgmt->u.action.category = WLAN_CATEGORY_MESH_ACTION; |
186 | mgmt->u.action.u.plink_action.action_code = action; | 186 | mgmt->u.action.u.plink_action.action_code = action; |
187 | 187 | ||
188 | if (action == PLINK_CLOSE) | 188 | if (action == PLINK_CLOSE) |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 81241e18f3a4..634f3d97a279 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -495,8 +495,11 @@ ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx) | |||
495 | return RX_DROP_MONITOR; | 495 | return RX_DROP_MONITOR; |
496 | 496 | ||
497 | if (ieee80211_is_action(hdr->frame_control)) { | 497 | if (ieee80211_is_action(hdr->frame_control)) { |
498 | u8 category; | ||
498 | mgmt = (struct ieee80211_mgmt *)hdr; | 499 | mgmt = (struct ieee80211_mgmt *)hdr; |
499 | if (mgmt->u.action.category != WLAN_CATEGORY_MESH_PLINK) | 500 | category = mgmt->u.action.category; |
501 | if (category != WLAN_CATEGORY_MESH_ACTION && | ||
502 | category != WLAN_CATEGORY_SELF_PROTECTED) | ||
500 | return RX_DROP_MONITOR; | 503 | return RX_DROP_MONITOR; |
501 | return RX_CONTINUE; | 504 | return RX_CONTINUE; |
502 | } | 505 | } |
@@ -2205,7 +2208,7 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx) | |||
2205 | goto handled; | 2208 | goto handled; |
2206 | } | 2209 | } |
2207 | break; | 2210 | break; |
2208 | case WLAN_CATEGORY_MESH_PLINK: | 2211 | case WLAN_CATEGORY_MESH_ACTION: |
2209 | if (!ieee80211_vif_is_mesh(&sdata->vif)) | 2212 | if (!ieee80211_vif_is_mesh(&sdata->vif)) |
2210 | break; | 2213 | break; |
2211 | goto queue; | 2214 | goto queue; |