diff options
author | adrian <adrian@FreeBSD.org> | 2012-09-20 03:13:20 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2012-09-20 03:13:20 +0000 |
commit | 660416c5ae91e9be40cb9c1580ed21e899059c2c (patch) | |
tree | 557e4ea364c683540e20e75c34c92e761140122b /sys/contrib/ipfilter/netinet | |
parent | 439d708ae83da2446152c42435c68438eae8bd9b (diff) | |
download | FreeBSD-src-660416c5ae91e9be40cb9c1580ed21e899059c2c.zip FreeBSD-src-660416c5ae91e9be40cb9c1580ed21e899059c2c.tar.gz |
Introduce the CLRDMASK gating based on tid->clrdmask, enabling filtered
frames to occur.
* Create a new function which will set the bf_flags CLRDMASK bit
if required.
* For raw frames, always set CLRDMASK.
* For BAR, ADDBA frames, always set CLRDMASK.
* For everything else, check if CLRDMASK needs to be set before
calling tx_setds() or tx_setds11n().
* When unpausing a queue or drain/resetting it, set tid->clrdmask=1
just to ensure traffic starts flowing.
What I need to do:
* Modify that function to _clear_ the CLRDMASK if it's not required,
or retried frames may have CLRDMASK set when they don't need to.
(Which isn't a huge deal, but..)
Whilst I'm here:
* ath_tx_normal_xmit() should really act like the AMPDU session TX
functions - any incomplete frames will end up being assigned
ath_tx_normal_comp() which will decrement tid->hwq_depth - but that
won't have been incremented.
So whilst I'm here, add a comment to do that.
* Fix the debug print function to be slightly clearer about things;
it's not a good sign when I can't interpret my own debugging output.
I've done some testing on AR9280/AR5416/AR9160 STA and AP modes.
Diffstat (limited to 'sys/contrib/ipfilter/netinet')
0 files changed, 0 insertions, 0 deletions