mbufq-less iwn(4)

Adrian Chadd adrian at freebsd.org
Thu Sep 3 21:42:46 UTC 2015


It's fixed in -head. I should close that.


-a


On 3 September 2015 at 07:11, Andriy Voskoboinyk <s3erios at gmail.com> wrote:
>>   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