mbufq-less iwn(4)

Andriy Voskoboinyk s3erios at gmail.com
Thu Sep 3 14:11:32 UTC 2015


>   Adrian,
>
> On Tue, Sep 01, 2015 at 12:33:53PM -0700, Adrian Chadd wrote:
> A> We have to do mbuf queues in drivers for wifi, because of 11n
> A> aggregation. So on one hand we want to have if_transmit() apply
> A> backpressure through the stack, but there's also going to be some
> A> buffering. :P
>
> No, that's not because of 11n aggregation. That's a remnant of
> ifnet ifqueue. Note that I'm speaking about queueing in drivers,
> not in net80211 stack. Look at the iwn patch, it doesn't remove
> any functionality except of enqueueing and dequeueing.
>
> Look at your own ath(4) - there is no software queue there already :)
>
> A> I'd like to see that for ic_transmit().
> A>
> A> Other thing - ic_transmit() also needs to handle fragments, like I do
> A> with ath. Ie, handing it a list of packets is actually a list of
> A> 802.11 fragments, rather than separate MPDUs.
> A>
> A> Another thing - we're modifying the mbufs (adding 802.11 data to it)
> A> before we pass them to the driver, and if the driver fails to
> A> transmit, we can't just pass it back up the net80211 stack to the tcp
> A> or udp layer..
>
> Sure, stack probably would need to strip the data. Anyway, that's
> a future task.
>

What about https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193569 ?


More information about the freebsd-net mailing list