Search Linux Wireless

[RFC] Redesigning aggregation on mac80211

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We're considering redesigning how aggregation works on mac80211 to
ensure its vendor neutral and to remove as much as redundant code in
drivers. We'd like some feedback from people and driver developers,
even those who haven't *yet* posted their new shiny 11n drivers, like
Marvell or Ralink driver developers.

First let me review the current design and how the different hardware
supported uses aggregation *as I understand it* so far.

I'll start with Atheros hardware and mac80211. Atheros hardware uses 4
main HW queues, one for each AC, and we also have one for beacons,
another for queued stuff after beacon (aka "Crap After Beacon") where
things like queued frames for broadcast / multicast or for frames for
stations in power save mode, and I think another hw queue for uapsd.
Right now mac80211 queues skb's for drivers into the netdev_queues.
Under the current mac80211 design we have 4 netdev_queues, one for
each AC and then there is a number of "aggregation queues". We
essentially just declare one "aggregation" queue as we do our own
queue mapping internally to our own hardware queues -- and that
consist of just mapping frames to each HQ queue as per AC.

Intel's hardware seems to have a hardware scheduler for aggregation
and although it does seem you are sending frames onto a real hardware
queue you are actually passing it to the hardware so it can itself do
the hardware scheduling onto a proper AC queue somewhere or something
(perhaps someone from Intel can elaborate a little more on this). The
Intel drivers make use of the "aggregation queues" more as buffer
space in case of retransmit on failed frames. So these aren't actually
HW queues per se as we thought they were.

We were thinking of just ditching the "aggregation queues" because
they seemed to represent actual hardware queues (and it seems they are
but in a different way) but its now evident the "aggregation queues"
are more useful as a way to move the queuing outside of the driver and
make it part of the stack.

Ivo, are you familiar yet with how aggregation works on Ralink
hardware? Does the new 11n hardware require firmware? Specifically
we're curious about how the hardware queues are managed.

Anyone know about Marvell's stuff? How about Broadcom?

  Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux