[net80211] API change - ieee80211_tx_complete()

Adrian Chadd adrian at freebsd.org
Thu Aug 29 14:01:08 UTC 2013


Hi all,

As part of some eventual software transmit path work that I'm slowly
chipping away of in -HEAD, I've created a new function call which replaces
the following:

if (node) {
    if (m->m_flags & M_TXCB)
        <call ieee80211 callback>
    ieee80211_free_node(ni)
}

m_freem(m)

Now, the _eventual_ path for this is to push all driver 802.11 frame free
(in all conditions!) back to the driver via this method so net80211 can
handle software queuing, retransmission and aggregation. But to do this, we
have to modify all the drivers to call ieee80211_tx_complete() from
_outside_ its normal locks. Now, doing that right now (just before 10!) is
a bit much to ask so no, I'm not yet going down that path. But I would like
to convert the drivers over to call this rather than manually do the above
code.

I've done ath(4) and iwn(4). If you have another wireless card then please
update it to call the new function and post a diff. I'd like to get all of
these drivers converted over ASAP so I can start the second part of my
net80211 software queue changes.

Thanks!


-adrian


More information about the freebsd-wireless mailing list