Date: Sun, 3 Mar 2013 02:22:54 -0800 From: Adrian Chadd <adrian@freebsd.org> To: freebsd-wireless@freebsd.org Subject: Re: [RFC] net80211 TX, take 4 (final) Message-ID: <CAJ-Vmo=ezSiyyUVf%2BLnrhfb8Fz1wi_PWTPV8YizqgkeeyY-rzA@mail.gmail.com> In-Reply-To: <CAJ-VmomnbLh9OdpNVL1=ahkuN6Y_LGY%2BZLbW-PK=mTAZducLCA@mail.gmail.com> References: <CAJ-VmomnbLh9OdpNVL1=ahkuN6Y_LGY%2BZLbW-PK=mTAZducLCA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, I have finished this round of work, intended for -HEAD. Besides the stuff in the ath and iwn driver, here's what I'd like to commit: http://people.freebsd.org/~adrian/ath/20130303-net80211_tx-1.diff What it implements: * the code that transmits a VAP frame is now in ieee80211_start_pkt(). I may rename that to something vap like later * nothing calls if_transmit() direct - it goes via ieee80211_parent_transmit() or ieee80211_vap_transmit() * nothing calls ic_raw_xmit() direct - it calls via ieee80211_raw_output() * the VAP TX and parent TX path is locked using an ieee80211com TX lock - until the parent transmit code is serialised (eg via a taskqueue to do deferred transmit, or a specific ic TX lock) this lock will be used both to serialise the VAP / STA TX state (ie, sequence numbers and general VAP TX ordering) and enforcing the same ordering is occuring during driver handoff * tidy up the parent/vap TX code in hostap recv_pspoll() * tidy up the hwmp discover completion code which dispatches frames from the staging queue - those frames aren't encapsulated, so just call ieee80211_vap_transmit() I'd appreciate thorough testing with INVARIANTS and WITNESS enabled for hostap, sta and mesh modes. I'll likely commit the non-locking changes soon - ie, the ieee80211_parent_transmit(), ieee80211_vap_transmit(), ieee80211_raw_output() changes. Those seem no brainers - the only later optimisation would be to turn them into inlines in ieee80211_freebsd.h . I've verified that this patch applies cleanly to the latest -HEAD. Thanks! Adrian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=ezSiyyUVf%2BLnrhfb8Fz1wi_PWTPV8YizqgkeeyY-rzA>