diff options
author | Jouni Malinen <jouni.malinen@atheros.com> | 2009-05-05 13:35:15 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-05-06 15:15:05 -0400 |
commit | aec6795210db6ba3f4592056d41ac5b1ab41e980 (patch) | |
tree | 6955ded806d462502b2f503ea0e7739ae99e7527 /net/mac80211/rx.c | |
parent | 4d050f1daed3babf6fcc337f862a245d31af4452 (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.c | 12 |
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 | ||