diff options
author | Sam Leffler <sam@FreeBSD.org> | 2009-03-30 21:53:27 +0000 |
---|---|---|
committer | Sam Leffler <sam@FreeBSD.org> | 2009-03-30 21:53:27 +0000 |
commit | 339ccfb3918a44878a6c005a3db37155e4d1d142 (patch) | |
tree | b2bbd2e1f176a7f310059ed050ec25ce8ffbac3c /sys/net80211/ieee80211_node.c | |
parent | 4f8cb6ff408e944cb916be54601a0da6e1278799 (diff) | |
download | src-339ccfb3918a44878a6c005a3db37155e4d1d142.tar.gz src-339ccfb3918a44878a6c005a3db37155e4d1d142.zip |
Hoist 802.11 encapsulation up into net80211:
o call ieee80211_encap in ieee80211_start so frames passed down to drivers
are already encapsulated
o remove ieee80211_encap calls in drivers
o fixup wi so it recreates the 802.3 head it requires from the 802.11
header contents
o move fast-frame aggregation from ath to net80211 (conditional on
IEEE80211_SUPPORT_SUPERG):
- aggregation is now done in ieee80211_start; it is enabled when the
packets/sec exceeds ieee80211_ffppsmin (net.wlan.ffppsmin) and frames
are held on a staging queue according to ieee80211_ffagemax
(net.wlan.ffagemax) to wait for a frame to combine with
- drivers must call back to age/flush the staging queue (ath does this
on tx done, at swba, and on rx according to the state of the tx queues
and/or the contents of the staging queue)
- remove fast-frame-related data structures from ath
- add ieee80211_ff_node_init and ieee80211_ff_node_cleanup to handle
per-node fast-frames state (we reuse 11n tx ampdu state)
o change ieee80211_encap calling convention to include an explicit vap
so frames coming through a WDS vap are recognized w/o setting M_WDS
With these changes any device able to tx/rx 3Kbyte+ frames can use fast-frames.
Reviewed by: thompsa, rpaulo, avatar, imp, sephe
Notes
Notes:
svn path=/head/; revision=190579
Diffstat (limited to 'sys/net80211/ieee80211_node.c')
-rw-r--r-- | sys/net80211/ieee80211_node.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c index 5796c2ce9fbf..1632b199beed 100644 --- a/sys/net80211/ieee80211_node.c +++ b/sys/net80211/ieee80211_node.c @@ -929,6 +929,10 @@ node_cleanup(struct ieee80211_node *ni) */ if (ni->ni_flags & IEEE80211_NODE_HT) ieee80211_ht_node_cleanup(ni); +#ifdef IEEE80211_SUPPORT_SUPERG + else if (ni->ni_ath_flags & IEEE80211_NODE_ATH) + ieee80211_ff_node_cleanup(ni); +#endif /* * Clear AREF flag that marks the authorization refcnt bump * has happened. This is probably not needed as the node |