FreeBSD 802.11: | WiFi Main Page |
The net80211 stack supports an Access Point "aggressive mode" where best-effort traffic is allowed to burst when higher priority traffic queues are not currently busy.
This page needs to be fleshed out in more detail.
How it works
The net80211 stack monitors the traffic levels of each WME Queue and will modify the best-effort queue (WME_AC_BE) to allow stations to transmit using WME "bursts". A burst is a transmit opportunity window (TXOP) which allows a station to transmit as many frames as it can inside the window.
By default, the WME_AC_BE queue does not have a TXOP window, so it must contend for the wireless media for each packet. Having a TXOP window allows it to contend once, then transmit as much as it can inside that window. All other stations inside the BSS then stay quiet for the duration of the TXOP window.
The net80211 stack then modifies the WME queue parameters announced in beacons and association responses based on the current traffic levels. If the higher priority queues begin to become busy, the net80211 stack changes the WME parameters back to normal (which disables the TXOP window for WME_AC_BE). Each station notices the change in WME parameters, updates the WME_AC_BE parameters to normal, and subsequent best-effort transmission falls back to non-burst mode.
When the stack notices traffic levels of higher priority queues decrease, it re-enables the bursting options for WME_AC_BE and each station begins bursting again.
- We should ensure that packets that will exceed the TXOP window are not queued - this includes ensuring that the maximum retries are not greater than the TXOP window, and that the NIC will actually hold back packet TX if said packet does exceed the current TXOP window (or return the packet to the stack, informing it that TX'ing it would've exceeded the TXOP window.)
- Figure out a behaviour for adhoc mode.
- Verify that the TXOP parameters are being correctly set on Atheros AR5416 and later NICs.
- Verify that both Hostap and STA modes have the correct WME settings programmed into the NIC.
- Verify that packet duration is being correctly written in a TXOP burst as the specification requires.