diff options
author | Javier Cardona <javier@cozybit.com> | 2011-09-07 20:49:53 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-09-14 13:56:50 -0400 |
commit | 2154c81c32fa44364f83218a10d8dbec4e76d4f5 (patch) | |
tree | d51234e55d24c6ff5f4849d2757b57f1d6accaac /net/mac80211/rx.c | |
parent | 4777be41638cfab56c78b2a764a5f83beb6cfdd2 (diff) |
mac80211: Mesh data frames must have the QoS header
Per sec 7.1.3.5 of draft 12.0 of 802.11s, mesh frames indicate the
presence of the mesh control header in their QoS header.
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index b1ea4444065e..db46601e50bf 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -1910,7 +1910,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) | |||
1910 | fwded_mcast); | 1910 | fwded_mcast); |
1911 | skb_set_queue_mapping(fwd_skb, | 1911 | skb_set_queue_mapping(fwd_skb, |
1912 | ieee80211_select_queue(sdata, fwd_skb)); | 1912 | ieee80211_select_queue(sdata, fwd_skb)); |
1913 | ieee80211_set_qos_hdr(local, fwd_skb); | 1913 | ieee80211_set_qos_hdr(sdata, fwd_skb); |
1914 | } else { | 1914 | } else { |
1915 | int err; | 1915 | int err; |
1916 | /* | 1916 | /* |
@@ -2572,12 +2572,12 @@ static void ieee80211_rx_handlers(struct ieee80211_rx_data *rx) | |||
2572 | CALL_RXH(ieee80211_rx_h_ps_poll) | 2572 | CALL_RXH(ieee80211_rx_h_ps_poll) |
2573 | CALL_RXH(ieee80211_rx_h_michael_mic_verify) | 2573 | CALL_RXH(ieee80211_rx_h_michael_mic_verify) |
2574 | /* must be after MMIC verify so header is counted in MPDU mic */ | 2574 | /* must be after MMIC verify so header is counted in MPDU mic */ |
2575 | CALL_RXH(ieee80211_rx_h_remove_qos_control) | ||
2576 | CALL_RXH(ieee80211_rx_h_amsdu) | ||
2577 | #ifdef CONFIG_MAC80211_MESH | 2575 | #ifdef CONFIG_MAC80211_MESH |
2578 | if (ieee80211_vif_is_mesh(&rx->sdata->vif)) | 2576 | if (ieee80211_vif_is_mesh(&rx->sdata->vif)) |
2579 | CALL_RXH(ieee80211_rx_h_mesh_fwding); | 2577 | CALL_RXH(ieee80211_rx_h_mesh_fwding); |
2580 | #endif | 2578 | #endif |
2579 | CALL_RXH(ieee80211_rx_h_remove_qos_control) | ||
2580 | CALL_RXH(ieee80211_rx_h_amsdu) | ||
2581 | CALL_RXH(ieee80211_rx_h_data) | 2581 | CALL_RXH(ieee80211_rx_h_data) |
2582 | CALL_RXH(ieee80211_rx_h_ctrl); | 2582 | CALL_RXH(ieee80211_rx_h_ctrl); |
2583 | CALL_RXH(ieee80211_rx_h_mgmt_check) | 2583 | CALL_RXH(ieee80211_rx_h_mgmt_check) |