[net80211] patch: properly handle sequence checking for HT non-aggregation; refactor out shared code

Adrian Chadd adrian at freebsd.org
Mon May 2 06:43:28 UTC 2011


Hi,

The attached patch does two things:

Firstly, it abstracts out the sequence number checks in
{sta,hostap,mesh,adhoc,wds} into a new function,
ieee80211_check_rxseq(). A lot of the input path code is shared; I'm
not going to try and refactor all of it.

Secondly, it attempts to do the HT mode checking correctly. The
existing code assumes HT == AMPDU, so don't worry about re-ordering.
Instead, my replacement code checks whether QOS/WME is enabled and if
so, checks whether AMPDU-RX is running. If it is, it ignores the
sequence number check. If it isn't running AMPDU-RX, it enforces the
same sequence number check for non-HT modes.

This gets rid of the duplicate packet issues I've seen when doing 11n
(non AMPDU-RX)  but it doesn't fix the out of order TCP packet
behaviour plaguing performance.


Adrian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: net80211-rxseq-ht.diff
Type: application/octet-stream
Size: 7226 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-wireless/attachments/20110502/6ac5a3b9/net80211-rxseq-ht.obj


More information about the freebsd-wireless mailing list