igb and ALTQ in 9.1-rc3

Adrian Chadd adrian at freebsd.org
Tue Dec 11 21:55:11 UTC 2012


On 11 December 2012 13:49, Andre Oppermann <oppermann at networx.ch> wrote:

>> We -know- we need a much more generic implementation of packet queue
>> management. Someone just needs to come up with one. :-)
>
>
> As I've said earlier I'm working and cleaning up of the stack/driver
> interface and API.  It started out to better integrate the offload
> capabilities, reduce code duplication and to audit their usage in the
> drivers.  While doing that I've noticed, as others have, a couple more
> issues including the queuing problem.  So work is under way and by
> early next year a prototype for further discussion should be ready.

Sweet. Hopefully I'll have undone the rest of the if_start stuff in
net80211 by then.

I'm still stuck trying to figure out the right way to represent 802.11
fragments given how the net80211 stack was left before I inherited it.
ieee80211_fragment() creates a chain of mbufs representing the
fragment chain; I need to process those as an atomic entity rather
than a frame at a time.
Neither buf_ring nor if_queue are suitable for this.

I can serialise the frames coming into net80211 but until I figure out
a queue mechanism that lets me queue mbuf _chains_, I'll be stuck.

buf_ring is suitable with this, with some modifications (ie, checking
each mbuf is an mbuf list, rather than just calling m_freem() on the
single mbuf) but the ALQ bits kill that.

Thanks,


Adrian


More information about the freebsd-net mailing list