Why do I blog? Well, here's a good example. Forcing myself to research at a level I might not ordinarily do, in order to not publish inaccuracies. While typing up this post, I went back & forth a couple times, considering the OBSS detection and CCA mechanisms inherent in the 802.11 protocol. Eventually I stumbled upon an IEEE paper (see References below) which covered many of my questions.
That said, I think there is some useful info in here worth sharing (like how 802.11ac brings CCA-Carrier Sense on Secondary/Extension channels). For that reason, I'm publishing most of it as-is...
Feel free to clear things up in the comments.
The Overall Idea
- Identify situations where an 802.11n 20MHz channel-width is favorable to 40MHz, in the presence of Overlapping BSS (OBSS) or high noise (non-802.11) on Secondary channel.
- Determine situations where an 802.11ac 20 or 40MHz channel-width is favorable to 80MHz in the presence of OBSS or high noise (non-802.11) on Secondary 20 or Secondary 40MHz channel(s).
- Determine ability of vendor dynamic channel assignment, like Aruba’s ARM or Cisco’s DCA, to enforce OBSS avoidance according to 802.11 specification, and also react to high NF on Secondary channel(s).
- Can certain situations, in both 802.11n & 802.11ac yield an AP being starved for Medium access, due to differing CCA sensitivities?
- Consider viability of RTS/CTS (Non-HT Duplicate) for channel clearing, termed 802.11ac channel-width adaptation.
Before describing the issue in detail, it should be noted that this predominantly relates to RF environments which are either ‘uncontrolled’, or neighboring areas which are out of our administrative control. For example, retail, suburban campus or any area where neighboring BSS’ exist.
802.11n (HT) - 5GHz 20 or 40MHz width
First, the CCA facts according to specification:
Medium contention at the PHY layer utilizes Clear Channel Assessment (CCA). There are two methods to CCA.
1. CCA-Carrier Sense (also referred to as SIG detection or Preamble Detect) which reads the Length field from the L-SIG portion of the PLCP header and uses this to determine the duration (in Microseconds or Bytes) of the current frame.
- At a 20MHz channel-width the Preamble must be at >= -82dBm for CCA-CS to decode & determine medium-busy. Note, this rate is 6Mb (hard coded) and not related to Basic or Supported data-rates you have set for Data-frames.
2. CCA-Energy Detect (ED) is based on the presence of raw RF energy, be it 802.11 or not.
- At a 20MHz channel-width the signal must be 20dB stronger, or >=-62dBm, to determine medium-busy.
In short, the threshold for Energy Detect is much higher (stronger signal), than it is for Carrier Sense.
Medium contention at the MAC layer utilizes the Network Allocation Vector (Duration/ID field) to determine if medium=busy. I won't go into more detail of NAV, Random Backoff & IFS’ in this post, though it may have direct relation to the questions below.
If utilizing 40MHz channels both CCA mechanisms change, depending on the state of each 20MHz channel, according to the following:
- If the secondary channel is Idle (Figure 1A), both CCA-ED & CCA-CS are triggered at the signal levels previously described (-82/-62) on the Primary channel, for the medium to be determined Busy.
- When a signal is present on both channels(Figure 1B), CCA-CS & CCA-ED are 3dB less (-79/-59) on both channels.
- When the primary 20MHz channel is Idle, only CCA-ED at >=-62dBm is used. CCA-CS is not required on the secondary channel.
An oversimplified outline of CCA Sensitivities in these three scenarios:
This can lead to certain less-than-optimal situations. Prior to detailing those, I’ll outline what should happen, according to specification.
Section 10.15.3.1:
- “An AP operating a 20/40 MHz BSS, on detecting an OBSS whose primary channel is the AP’s secondary channel, switches to 20 MHz BSS operation and may subsequently move to a different channel or pair of channels”.
Section 10.15.3.2 :
- “An HT AP or STA that is also an HT STA should not start a 20 MHz BSS in the 5 GHz band on a channel that is the secondary channel of a 20/40 MHz BSS.“
Section 10.15.3.2 also specifies Clients are required to perform OBSS scanning, however according to Section 10.15.5:
- “STAs that are FC HT STA 5G are not required to perform OBSS scan operations.”
In other words, Client OBSS scanning appears to only be required for 2.4GHz STA’s. (FC HT STA 5G = Forty MHz Capable HT Station 5GHz).
Note, simultaneous 20 & 20/40 use, through Phased Coexistence (PCO) not widely implemented, so I won’t discuss here.
One last note on NAV, prior to diving into some questions. Section 10.15.10 NAV assertion in 20/40 MHz BSS:
- "NOTE—A STA need not set its NAV in response to 20 MHz frames received on the secondary channel or any other channel that is not the primary channel, even if it is capable of receiving those frames."
Questions
Sections 10.15.3.1 & 2 of the specification should prevent 1 & 2 from occurring. If not, with both BSS' protecting from each other, at what point is the RTS/CTS overhead penalty worse than 2 separate 20MHz BSS'?
- A neighboring 20MHz BSS could be operating on the Secondary 20MHz channel of our 40MHz BSS (see Exhibit A-1 below). We (AP-1) will not determine the medium as busy, since the threshold for CCA-ED is much higher (stronger signal) than that of CCA-CS. Therefore, AP-1 transmits and 'collisions' occur at the receiver (STA 1). Retransmits follow, and likely RTS/CTS, DRS, etc. Theory: RTS/CTS kicks in, which would help AP & STA 2 but not the other way around. AP & STA 1 would not update NAV, or defer due to CCA-Carrier-Sense, even if AP and STA 2 employ RTS/CTS.
- If both AP’s have sustained downstream traffic, AP-2 will consistently lose contention, since it’s CCA (CS) is more sensitive, leaving it starved for air-time. Put another way, if we are utilizing a 20MHz channel, and a neighboring 40MHz BSS exists, with a Secondary channel that matches our 20MHz channel, the 40MHz BSS monopolizes the medium. AP & STA 2 will utilize CCA-CS, ED and NAV, while AP & STA 1 will only rely on CCA-ED on channel 40.
- High noise; -67 to -70dBm at the AP (and higher at the client), on our Secondary channel. Either not high enough to trigger AP’s CCA-ED, resulting in reduced SNR at client or high enough to trigger CCA-ED, resulting in back-off. No adaptation in 802.11n (and questionable support in .11ac) means higher probability of back-off as channel-width increases.
- AP-1 out of range of AP-2’s Beacons (see Exhibit A-2 below). Will not drop from 20/40 to 20MHz. Collisions occur at STA-1
802.11ac (VHT) - 20, 40 or 80MHz width
802.11ac channelization differs, not only in width but the ability to selectively use varying widths, on a frame by frame basis; referred to here as “channel adaptation”. The notion of Primary and Secondary channels still exists and their use is detailed in Section 10.39.1 of 802.11.ac-2013 specification as follows. (note, a STA is a Client or an AP):
- A VHT STA that is a member of a VHT BSS shall not transmit a 20 MHz VHT PPDU on a channel other than the primary 20 MHz channel of the BSS...
- A VHT STA that is a member of a VHT BSS with a 40 MHz, 80 MHz, 160 MHz, or 80+80 MHz operating channel width shall not transmit a 40 MHz VHT PPDU that does not use the primary 40 MHz channel of the BSS...
So, even with channel adaptation (discussed below) the Primary channel must always be free, for transmission to occur. Here is an example:
Given: all channels clear except for the two BSS’ pictured, transmission can be at either full 160MHz width or none. Equal contention should occur.
The takeaway: channel adaptation can help determine maximum width, but if Primary is busy no transmission occurs . An STA can not ‘channel adapt’ off of the Primary 20MHz channel.
Here’s a brief description of channel adaptation ('dynamic channel-width').
Spectrum sharing (as pictured in Figure 2), through the use of ‘channel adaptation’ via non-HT duplicate frames is basically an RTS/CTS exchange, in Legacy format, on each 20MHz sub-channel of a 40/80/160MHz channel. However, this has questionable client and AP support. If supported, a STA will set TXVECTOR parameter “DYN_BANDWIDTH_IN_NON_HT” to Dynamic in RTS/CTS frames. Otherwise...it is set to Static. (see Section 9.3.2.5a of 802.11.ac-2013 specification).
Update: From Section 4.3.10a -- Very high throughput (VHT) STA:
"Mandatory support for responding to a bandwidth indication (provided by the RXVECTOR
parameters CH_BANDWIDTH_IN_NON_HT and DYN_BANDWIDTH_IN_NON_HT) in a nonHT
and non-HT duplicate RTS frame”In other words, it is Optional for an .11ac STA to support the RTS function of width adaptation (bandwidth indication), however it’s Mandatory any .11ac STA that receives an nonHT duplicate RTS must respond with a CTS. Put another way, once manufacturers (APs) support this, it can theoretically be taken advantage of immediately, since clients will already support it. Unfortunately, not all APs support this (check with your manufacturer).
Just like in 802.11n, the rules for CCA change with wider channels. According to section 22.3.19.5.3 (Table: 22-27) of 802.11.ac-2013 specification Primary channels are determined CCA-Busy at the following levels:
- -82dBm for Non-HT, HT or VHT PPDU (CCA-CS) & -62dBm CCA-ED on Primary 20MHz
- -79dBm for Non-HT duplicate, HT or VHT PPDU (CCA-CS) & -62dBm CCA-ED on Primary 40MHz
- -76dBm for Non-HT duplicate or VHT PPDU (CCA-CS) & -62dBm CCA-ED on Primary 80MHz
- -73dBm for Non-HT duplicate or VHT PPDU (CCA-CS) & -62dBm CCA-ED on 160 or 80+80MHz channel
Unlike 802.11n, Secondary channels can go CCA-Busy using Carrier Sense. This is a major change.
According to section 22.3.19.5.4, Secondary channels are determined CCA Busy at the following levels:
- -72dBm CCA-CS & -62dBm CCA-ED on Secondary 20MHz channel, , when the Primary 20MHz channel is Idle
- -72dBm CCA-CS & -59dBm CCA-ED on Secondary 40MHz OR 20MHz sub-channel of that Secondary 40MHz channel, , when the Primary 40MHz channel is Idle,
- -69dBm CCA-CS & -56dBm CCA-ED on Secondary 80MHz OR -72dBm CCA-CS on any 20MHz sub-channel of the Secondary, when the Primary 80MHz channel is Idle.
This is outlined in the following drawing:
Another Question
- Secondary channels have Carrier Sense, and channel overlap in an ‘uncontrolled’ 802.11ac environment could yield less collisions than in a similar 802.11n scenario, as picture in Exhibit B-1.
Similar to 802.11n, 802.11ac makes attempts to match Primary channels across overlapping BSS’. Section 10.39.2 & 10.39.3 of 802.11ac-2013 specifies that channel selection take into consideration the operating channels of neighboring BSS’, by listening for Beacons for a minimum of dot11OBSSScanActive/PassiveDwell TUs.
If it's not clear, you want Co-channel Contention through channel alignment.
How to spot it
OBSS detection should be spotted in Beacons. See HT info subset 1 & 2.
According to Sec. 10.15.4.1 (802.11-2012 Specification) you should also see:
- A change in the Supported Channel Width Set subfield of the HT Capabilities element
- A change in the Secondary Channel Offset field of the HT Operation element
- A change in the STA Channel Width field of the HT Operation element
- A Notify Channel Width frame containing a Channel Width field
- An Extended Channel Switch Announcement
Note the following fields:
An OBSS scan IE undecoded by Wireshark (have not checked new version):
Channel Width in Beacon:
References
IEEE Paper on Dynamic Channel Access (Note, this is behind a paywall unless you have IEEE Explore membership).@CHemantC post on OBSS impact

