CCI vs CCC
Co-Channel Interference vs Co-Channel Contention
The CWNE community is actively debating whether "Co-Channel Interference" is even the right term. Peter Mackenzie (Hamina, CWNE) argues it should be "Co-Channel Contention." The distinction matters for how you design, diagnose, and explain high-density Wi-Fi problems. This page walks through the mechanics at the frame level, from CCA thresholds to BSS Color to what it looks like in a PCAP.
Why the term matters
"Interference" in RF engineering means signals that corrupt each other. Adjacent channel interference (ACI) is a real example: a transmitter bleeding into an adjacent channel corrupts frames at the receiver. No protocol can fix that. It is noise.
What happens when two 802.11 APs operate on the same channel is different. CSMA/CA means they listen before transmitting. They detect each other's preambles. They set their NAV. They back off. They take turns. Frames are not corrupted. Throughput drops because the medium is shared. That is contention, not interference.
The distinction is not academic. If you call it interference, you design to eliminate it. If you call it contention, you design to manage it. Sometimes a densely co-channeled deployment with well-managed contention outperforms a spread-out deployment where clients are too far from APs to sustain high MCS.
- Transmitter on ch 3 bleeds energy into ch 1 and ch 6
- Receiver cannot decode the corrupted frame
- No ACK returned, retransmit occurs
- CSMA/CA cannot help, ED detection only
- Result: corrupted frames, elevated FCS errors, throughput collapse
- Fix: eliminate the adjacent channel overlap
- AP1 and AP2 on ch 6, RSSI above SD threshold
- AP2 hears AP1 preamble, decodes Duration field
- AP2 sets NAV, defers until medium clears
- Frames are received intact, throughput shared
- Result: lower aggregate throughput, no frame corruption
- Fix: manage CW, AP density, OBSS_PD (802.11ax)
Adjacent channel interference is the condition that actually corrupts frames and cannot be resolved by CSMA/CA. CCC simply reduces available airtime. The practical implication: in a dense deployment, measured retry rate and elevated channel utilisation (BSS Load IE) are CCC symptoms. Elevated FCS error rate is an ACI or RF noise symptom.
Exam topics this maps to
Clear Channel Assessment
Before any transmission, a station performs CCA to determine whether the medium is idle. CCA has two independent detection paths running simultaneously. Both can declare the medium busy. Either declaration prevents transmission.
Preamble-based detection
SD listens for an 802.11 preamble specifically. If a station decodes a preamble at greater than 4 dB SNR, it considers the medium busy, reads the Duration field from the PHY or MAC header, and sets its NAV accordingly.
SD is highly sensitive. A signal at -82 dBm from a distant AP you cannot associate to will trigger SD deferral. This is the core mechanism of co-channel contention: CSMA/CA deference to a decoded 802.11 frame.
Energy-based detection
ED measures raw energy on the channel regardless of whether it is an 802.11 signal. The threshold is 20 dB higher than SD, approximately -62 dBm. It detects non-802.11 emitters, microwave ovens, Bluetooth, DECT phones, and anything else with sufficient RF energy.
ED cannot decode a preamble. It has no Duration field to read. It cannot set a NAV. It simply declares the medium busy until the energy drops. This is why non-802.11 interference is harder to characterise in a PCAP.
The 4 microsecond CCA window
CCA must complete within 4 microseconds before any transmission. Both SD and ED checks run in parallel. The outcomes determine the path:
BSS Color - the 802.11ax hardware solution
BSS Color addresses the core CCC problem: pre-802.11ax stations defer to any OBSS frame above the SD threshold, even at -81 dBm from an AP 200 metres away. 802.11ax introduces a 6-bit BSS Color identifier carried in the HE SIG-A field of every HE PPDU. Each BSS is assigned a unique color (1-63, value 0 is reserved). Receiving stations use this to classify incoming frames as intra-BSS or inter-BSS before applying CCA rules.
Where it lives in the frame
HE SIG-A is a 2-symbol field in the HE PPDU preamble, transmitted at the lowest MCS (MCS 0, BPSK 1/2) for maximum range. It carries the BSS Color in bits 7-12 (HE SU PPDU) or the same position in HE MU PPDU formats.
The spatial reuse threshold
When a station receives an inter-BSS HE frame (different BSS Color), it compares the frame RSSI to the OBSS_PD threshold instead of the standard CCA-SD threshold. If RSSI is below OBSS_PD, the station can treat the medium as idle and transmit concurrently.
The constant product rule
Raising the OBSS_PD threshold lets you ignore weaker OBSS signals and transmit more aggressively. But this creates a problem: the OBSS station you are now ignoring cannot know you are transmitting. If you hit it hard, its receiver will see interference. 802.11ax solves this with a mandatory TX power reduction constraint.
The constraint is designed so that as you raise your OBSS_PD threshold (ignoring weaker OBSS signals), you also lower your own TX power to match. The OBSS station you are ignoring will therefore hear your transmission at a level low enough not to corrupt its ongoing frame. This is the constant product constraint: ignore at the same level you reduce your impact.
Intra-BSS NAV vs OBSS NAV
802.11ax introduces separate NAV timers for intra-BSS and inter-BSS frames. Pre-802.11ax, all NAV was treated equally. In 802.11ax, a station performing Spatial Reuse can override the OBSS NAV if OBSS_PD conditions are met. The intra-BSS NAV remains mandatory - Spatial Reuse cannot override your own BSS's medium reservation.
BSS Color is the marking, Spatial Reuse is the action
These two terms get used interchangeably and they are not the same thing. BSS Color is a 6-bit label carried in every HE PPDU. On its own it does nothing except let a receiver tell intra-BSS frames from inter-BSS frames. Spatial Reuse is the behaviour that acts on that label: ignoring a low-power inter-BSS frame and transmitting anyway. The marking is inert. The action is what changes the airtime.
The cleanest analogy is QoS. Marking a frame with a DSCP value or an 802.11e access category does nothing by itself. It is the action taken on the marking, the policing, the queuing, the scheduling, that changes behaviour. BSS Color is the DSCP marking. Spatial Reuse is the queuing policy. Confusing the two is the single most common source of muddled Spatial Reuse discussion, even among experienced engineers.
3 to 5 dB, not 20 dB
The standard permits OBSS_PD to range from -82 dBm up to -62 dBm, a 20 dB span. That figure gets quoted as if it were the operating range. It is not. The 20 dB is the ceiling the standard allows, paired with a mandatory transmit power back-off that grows as you raise the threshold. Practitioners who actually run Spatial Reuse in production report that the useful gain sits in the first 3 to 5 dB of threshold raise. Nobody runs 10 dB or more, because the transmit power penalty cancels the benefit and the failure modes get sharp.
When a deck or a datasheet cites the 20 dB range, it is describing the spec's maximum, not the deployment reality. State both so the reader does not mistake the headroom for the operating point. The practical knob is 3 to 5 dB. Beyond that the destination-side problem below starts to dominate.
The decision is made at the wrong end
OBSS_PD-based Spatial Reuse has a built-in information problem. The station deciding whether to reuse the medium measures the inter-BSS signal it hears from the other transmitter. But the device that actually suffers if the reuse decision is wrong is the destination station of that other transmission, which may be somewhere else entirely.
Picture AP1, AP2, and a station STA1 sitting at the midpoint between them. AP2 hears AP1 weakly, so it decides the medium is reusable and transmits at reduced power. But STA1, the device AP1 was talking to, is close enough to AP2 that AP2's transmission lands on it as real interference. AP2 made a reasonable decision from its own vantage and still corrupted a frame at a station it could not properly account for. The reuse decision is taken at the transmitter while the consequence lands at the destination. That is the structural critique of OBSS_PD-based SR, and it is why aggressive thresholds bite.
OBSS_PD is the default, PSR and SRG are the rest
- Receiver raises its CCA threshold for inter-BSS frames
- Transmits if the OBSS frame is below the raised threshold
- Mandatory TX power back-off scales with the raise
- Decision made unilaterally at the transmitter
- For uplink trigger-based (TB) PPDUs
- The soliciting AP advertises an acceptable interference level
- A nearby station can transmit inside the TB exchange
- More controlled than blind OBSS_PD reuse
Spatial Reuse Groups (SRG) is the third, controlled-coordination variant. APs are grouped and share OBSS_PD parameters so reuse decisions are coordinated rather than unilateral. It is rarely deployed in the field because it needs AP-to-controller coordination that most vendors have not exposed in their management planes. Good in theory, scarce in practice.
Does Spatial Reuse help downlink without client support?
Here is a question the wireless community is genuinely still debating. The AP makes the OBSS_PD CCA-override decision unilaterally on the downlink. That suggests Spatial Reuse could improve downlink throughput even when the clients are legacy and cannot read or set a BSS Color, in the same way RX-SOP improved downlink for years with zero client support. The counter-view is that meaningful SR with BSS coloring needs participating clients, and that ad-hoc testing without them has been inconclusive.
This is presented here as a live open debate rather than a resolved answer, because that is what it is. Engineers with deep field experience disagree, the measured evidence is thin, and it is exactly the kind of question a careful per-frame capture analysis could eventually settle. If you see a confident one-line answer either way, be skeptical.
Wi-Fi 8 Coordinated Spatial Reuse
802.11bn (Wi-Fi 8, Ultra High Reliability) is drafting Coordinated Spatial Reuse (Co-SR), which targets the destination-STA gap directly. Instead of each transmitter deciding alone, neighbouring APs coordinate their reuse decisions and power levels, so the device that would suffer interference is accounted for before the reuse happens. It is the standards body's answer to the structural critique above. The amendment is still in draft, so treat any specific Co-SR behaviour as provisional until TGbn publishes.
What CCC looks like in a PCAP
Co-channel contention leaves five distinct signatures in a PCAP capture. None of them prove the cause in isolation. Together they build a picture. The key diagnostic question is whether high retry rate correlates with visible OBSS traffic - that confirms contention rather than RF noise or driver issues.
Bit 11 of the Frame Control field is set to 1 on retransmitted frames. In a capture with significant OBSS activity, expect elevated retry rates on data frames. Greater than 10% retry on AC_BE is a contention signal. Greater than 5% on AC_VO suggests the VoIP SLA is at risk.
wlan.fc.retry == 1 wlan.fc.retry == 1 && wlan.bssid == aa:bb:cc:dd:ee:ff The BSS Load element (IE tag 11) is included in beacons and probe responses by supporting APs. It carries three fields: Station Count (16-bit), Channel Utilization (8-bit, units of 1/255), and Available Admission Capacity. Channel Utilization above 0.5 (approximately 200/255) suggests the medium is busy more than half the time.
wlan.fc.type_subtype == 8 && wlan.tag.number == 11 In a monitor mode capture, frames from all BSSIDs on the channel are visible. Count the proportion of air time consumed by frames whose BSSID is not your AP. High OBSS frame volume correlates with elevated NAV deferral time for your own stations.
wlan.bssid == your:ap:mac:here !(wlan.bssid == your:ap:mac:here) && wlan.fc.type == 2 The Duration/ID field in bytes 2-3 of the MAC header carries the NAV reservation in microseconds. In a high-contention environment, you will see long Duration values set by frames from OBSS BSSIDs, followed by idle periods where your stations cannot transmit.
wlan.duration > 5000 wlan.duration > 2000 && !(wlan.bssid == your:bssid) In a Wi-Fi 6/6E/7 capture, every HE PPDU carries the BSS Color in the HE SIG-A field. Wireshark decodes this in the WLAN Radiotap or HE Info fields. Cross-referencing BSS Color against retry rate and OBSS_PD threshold can confirm whether spatial reuse is active and whether color collisions are contributing to elevated contention.
wlan.he.bss_color_info.bss_color == 7 wlan.he.bss_color_info.bss_color == X