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