aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorJouni Malinen <jouni.malinen@atheros.com>2009-05-05 13:35:15 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-05-06 15:15:05 -0400
commitaec6795210db6ba3f4592056d41ac5b1ab41e980 (patch)
tree6955ded806d462502b2f503ea0e7739ae99e7527 /net/mac80211/rx.c
parent4d050f1daed3babf6fcc337f862a245d31af4452 (diff)
mac80211: Comment the order of HT RX reorder handler vs. RX handlers
We are currently processing block ack reordering as a separate task before all other RX handlers. In theory, this is wrong since this step should be done only after duplicate removal (see Figure 6-1 in IEEE 802.11n). However, moving this needs some work and the current situation is not too bad. Add a comment here so that this small detail does not get forgotten and who knows, maybe someone has some extra time to take a look at cleaning this up. Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 24d41705ac0b..d052f4004829 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2551,6 +2551,18 @@ void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb,
2551 return; 2551 return;
2552 } 2552 }
2553 2553
2554 /*
2555 * In theory, the block ack reordering should happen after duplicate
2556 * removal (ieee80211_rx_h_check(), which is an RX handler). As such,
2557 * the call to ieee80211_rx_reorder_ampdu() should really be moved to
2558 * happen as a new RX handler between ieee80211_rx_h_check and
2559 * ieee80211_rx_h_decrypt. This cleanup may eventually happen, but for
2560 * the time being, the call can be here since RX reorder buf processing
2561 * will implicitly skip duplicates. We could, in theory at least,
2562 * process frames that ieee80211_rx_h_passive_scan would drop (e.g.,
2563 * frames from other than operational channel), but that should not
2564 * happen in normal networks.
2565 */
2554 if (!ieee80211_rx_reorder_ampdu(local, skb, status)) 2566 if (!ieee80211_rx_reorder_ampdu(local, skb, status))
2555 __ieee80211_rx_handle_packet(hw, skb, status, rate); 2567 __ieee80211_rx_handle_packet(hw, skb, status, rate);
2556 2568