Date: Thu, 03 Sep 2015 17:11:27 +0300 From: "Andriy Voskoboinyk" <s3erios@gmail.com> To: "Gleb Smirnoff" <glebius@freebsd.org> Cc: "Lawrence Stewart" <lstewart@freebsd.org>, "Adrian Chadd" <adrian@freebsd.org>, "net@freebsd.org" <net@freebsd.org> Subject: Re: mbufq-less iwn(4) Message-ID: <op.x4d4ddkxiew4ia@localhost> In-Reply-To: <20150902060324.GF1023@glebius.int.ru> References: <20150901112043.GB1023@glebius.int.ru> <CAJ-Vmokn91fHQyg-AGqCgccRoMS89TuWpQ9RuxL%2B9nmgt%2BX2kQ@mail.gmail.com> <20150902060324.GF1023@glebius.int.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
> 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 ?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.x4d4ddkxiew4ia>