Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Aug 2013 07:01:06 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org>
Subject:   [net80211] API change - ieee80211_tx_complete()
Message-ID:  <CAJ-Vmo=i=uYkrhZPGOC-MVrHXmSf%2BW0B_FD7V8Z%2B_pBJWUtVxg@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=i=uYkrhZPGOC-MVrHXmSf%2BW0B_FD7V8Z%2B_pBJWUtVxg>