What an interesting bit of history behind all this! Did your original code also compensate for the multicast rate on wireless being so much slower than the peak rate?<br><br>The monstrousness of multicast packets on wireless completely mess up all existing qdisc's estimators...<br>
<br><div class="gmail_quote">On Mon, Aug 1, 2011 at 1:44 PM, Simon Barber <span dir="ltr"><<a href="mailto:simon@superduper.net">simon@superduper.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
I did the original implementation of wireless queuing in mac80211. The original implementation installed a special wireless root qdisc on the interface in order to model the hardware queues correctly, and allow leaf qdiscs to be installed. Ideally the MAC queues would also have been moved into this qdisc. The wireless root qdisc sat on an interface that represented the physical radio and had an 802.11 frame type. There were one or more 802.3 format virtual interfaces that represented wireless client or APs. The wireless qdisc on the native 802.11 interface saw frames in 802.11 format, and hence could calculate how much airtime would be taken transmitting the frame - this would allow development of qdiscs to do things like share airtime rather than bandwidth. The wireless root qdisc exposed the native hardware queues that exist in 802.11 chip sets and bypassed the normal single queue netdev interface. This allowed the hardware queues to be fed independently.<br>

<br>
Unfortunately the native 802.11 interface was deemed confusing to users, and this code got pulled out of the kernel, thus preventing the qdisc system from ever properly working when more than one virtual Ethernet interface is used with a wireless card - such as when you run multiple virtual APs on a wireless card, or simultaneous AP and client modes. This concept of a special wireless root qdisc is necessary to model the hardware queues and the MAC queues in 802.11 correctly - you're not queuing lots of frames in the driver, rather extending the queuing system to implement parts of the MAC.<br>

<br>
Simon<div class="im"><br>
<br>
On 08/01/2011 06:30 AM, John W. Linville wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
On Mon, Aug 01, 2011 at 06:06:43AM -0600, Dave Taht wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
If anyone can spare some eyeballs for the discussion of wireless-n AMPDUs<br>
and their interaction with bufferbloat, and groks TCP's behavior and/or<br>
wireless's behavior, I'd appreciate some comment on:<br>
<br>
<a href="http://www.bufferbloat.net/issues/216" target="_blank">http://www.bufferbloat.net/<u></u>issues/216</a><br>
<br>
Losing SOME appropriate packets, somewhere in the wireless stack, is<br>
necessary.<br>
</blockquote>
<br>
It seems appropriate to Cc: <a href="mailto:linux-wireless@vger.kernel.org" target="_blank">linux-wireless@vger.kernel.org</a> for this...<br>
<br>
</blockquote>
<br></div>
______________________________<u></u>_________________<br>
Bloat mailing list<br>
<a href="mailto:Bloat@lists.bufferbloat.net" target="_blank">Bloat@lists.bufferbloat.net</a><br>
<a href="https://lists.bufferbloat.net/listinfo/bloat" target="_blank">https://lists.bufferbloat.net/<u></u>listinfo/bloat</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Dave Täht<br>SKYPE: davetaht<br>US Tel: 1-239-829-5608<br><a href="http://the-edge.blogspot.com" target="_blank">http://the-edge.blogspot.com</a> <br>