// reference · 802.11 wireshark filters
The filter reference I wish existed when I started
Every filter I've typed more than 10 times in 15 years. Searchable. Copyable. With notes on what each one actually tells you - not just what the spec says it does.
— Shankar K., Wi-Fi engineer, Irving TX
⌕
// my daily drivers - filters I open Wireshark with
wlan.fc.retry == 1 First thing I apply. High retry count = RF problem or driver issue. Never roam before checking this.
eapol Isolates the 4-way handshake immediately. If you see <4 frames, the auth failed. Frame 2 missing = PMKID issue.
wlan.fc.type_subtype == 0x0c || wlan.fc.type_subtype == 0x0a Deauth OR disassoc. If you see a burst of these for one client - you have a roaming storm or an evil twin.
wlan.fc.type_subtype == 0x02 || wlan.fc.type_subtype == 0x03 Reassoc req + resp. This is what roaming looks like. Count the time between them - that's your roam latency.
addresses
wlan.addr == XX:XX:XX:XX:XX:XXcopyAll frames for a device
Catches SA, DA, TA, RA - the safest way to follow a single client. More complete than wlan.sa alone.
wlan.ta == XX:XX:XX:XX:XX:XXcopyTransmitter address
Uplink traffic from this device specifically. Use this in Wi-Fi 7 MLO - the L-MAC address you see in frames, not the U-MAC shown in monitoring tools.
wlan.bssid == XX:XX:XX:XX:XX:XXcopyAll traffic on a BSSID
Everything associated with one AP radio. Critical for multi-AP captures - isolates a single cell.
wlan_mgt.ssid == "YourSSID"copyFilter by SSID name
Shows beacons, probe responses for a specific SSID. Useful for rogue AP detection - if you see two BSSIDs with the same SSID, investigate.
management frames
wlan.fc.type == 0copyAll management frames
Start here when troubleshooting association failures. Hides data and control clutter immediately.
wlan.fc.type_subtype == 0x08copyBeacon frames
Every beacon = 100ms interval. Missing beacons from an AP = RF issue or AP crash. Also where BSS Color, HE/EHT capabilities live.
wlan.fc.type_subtype == 0x04copyProbe requests
Shows client scanning behavior. Excessive probe requests = sticky client that won't roam. MAC randomization makes this harder to track by address.
wlan.fc.type_subtype == 0x05copyProbe responses
APs answering client scans. Lots of probe responses to one client = client is being courted by multiple APs but refusing to roam.
wlan.fc.type_subtype == 0x0bcopyAuthentication frames
Open system auth (2 frames) or SAE (multiple). Check the status code in frame 2 - anything non-zero is a rejection. Status 53 = PMKID invalid (802.11r failure).
wlan.fc.type_subtype == 0x00copyAssociation requests
Client's first formal join request. Contains RSN IE, HT/VHT/HE/EHT capabilities. The RSN IE here tells you exactly what the client actually supports - critical for WPA3 mismatch diagnosis.
wlan.fc.type_subtype == 0x01copyAssociation responses
Status code 0 = success. Anything else = rejection with a reason. Check wlan_mgt.fixed.status_code in the frame details.
wlan.fc.type_subtype == 0x02 || wlan.fc.type_subtype == 0x03copyReassociation req + resp
The heartbeat of roaming. Delta time between req and resp = roam latency. Over 50ms = problem. Over 100ms = voice call dropped.
wlan.fc.type_subtype == 0x0ccopyDeauthentication
Check the reason code. Reason 3 = client left. Reason 23 = 802.1X auth failed. Reason 15 = 4-way handshake timeout. A flood of deauths from a non-AP BSSID = deauth attack.
wlan.fc.type_subtype == 0x0acopyDisassociation
Softer disconnect than deauth. Reason 4 = AP kicked client for inactivity. If PMF is disabled, these can be forged - check with WiFi Analyser's evil twin detector.
wlan.fc.type_subtype == 0x0dcopyAction frames
Where 802.11k neighbor reports, 802.11v BTM requests, and 802.11r FT actions live. High-value frames - if these are missing, your roaming stack is broken at the protocol level.
security / eapol
eapolcopyAll EAPOL frames (4-way handshake)
Should see exactly 4 frames per successful association. Message 1 = AP sends ANonce. Message 2 = client responds with SNonce + MIC. Message 3 = AP sends GTK. Message 4 = client ACKs. Missing frame 2 = PMKID rejected.
wlan.rsn.iecopyRSN Information Element present
Filter all frames containing the RSN IE. Compare beacon RSN IE vs AssocReq RSN IE - if client's cipher list doesn't include what AP advertises, that's your downgrade.
wlan_mgt.rsn.capabilities.mfpc == 1copyPMF capable (MFPC bit)
Management Frame Protection Capable. If this bit is 0 in beacons, deauth frames can be forged. CVE-2019-15126 exploits exactly this. Check with WiFi Analyser's security audit.
wlan_mgt.rsn.capabilities.mfpr == 1copyPMF required (MFPR bit)
Mandatory for WPA3. If MFPR=1 in beacon but MFPC=0 in client AssocReq, that client cannot join. This is a common enterprise WPA3 migration failure.
eapcopyEAP frames (802.1X enterprise)
EAP-TLS, EAP-PEAP, EAP-TTLS all show here. Count the exchanges - EAP-TLS has more frames than PEAP. A sudden EAP-Failure frame = cert issue or RADIUS rejection.
wlan_mgt.rsn.akms.type == 2copyAKM type 2 = PSK (WPA2-Personal)
AKM suite selector in RSN IE. Type 1=802.1X, 2=PSK, 3=FT-802.1X, 4=FT-PSK, 8=SAE (WPA3), 12=FT-SAE. Compare AKM in beacon vs AssocReq - mismatch means negotiation failed silently.
eapol.keydes.replay_countercopyEAPOL replay counter
Must increment M1→M2→M3→M4. If M3 replay counter equals M1 replay counter (same value resent), that is a KRACK retransmission trigger - CVE-2017-13077. Patched clients reject the reinstallation. Unpatched clients reinstall the PTK, resetting the nonce.
roaming · 802.11r / k / v
wlan_mgt.fixed.capabilities.spec_man == 1copyFT capability advertised
AP is advertising 802.11r Fast Transition support. Cross-check that the client's AssocReq also shows FT support - mismatch = full re-auth on every roam.
wlan_mgt.fixed.action_code == 7copyBTM Request (802.11v)
AP nudging client to roam. If you see these and the client ignores them, that's your sticky client problem. BTM Reject response = client refused the nudge.
wlan_mgt.fixed.action_code == 4copyNeighbor Report Request (802.11k)
Client asking AP for a list of neighbor APs. If this frame is present but response is empty, your 802.11k configuration is broken. Client has to scan blind = slow roaming.
control frames
wlan.fc.type_subtype == 0x1dcopyACK frames
Every unicast data frame should have an ACK. Missing ACKs with retries = RF link quality problem at the receiver end.
wlan.fc.type_subtype == 0x1b || wlan.fc.type_subtype == 0x1ccopyRTS + CTS frames
Hidden node protection. Lots of RTS/CTS = collision avoidance overhead. In dense Wi-Fi 7 deployments with MRU, seeing more RTS/CTS than expected = OFDMA scheduling issue.
wlan.fc.type_subtype == 0x18 || wlan.fc.type_subtype == 0x19copyBlock ACK Request + Block ACK
A-MPDU aggregation acknowledgement. High Block ACK count = good, aggregation is working. Absence of Block ACKs on a modern client = aggregation disabled, throughput is degraded.
retries / errors
wlan.fc.retry == 1copyAll retry frames
The single most important health indicator. Over 10% retries = RF problem. Over 20% = critical. Check which client or AP is generating them - that tells you the direction of the problem.
wlan.fc.retry == 1 && wlan.addr == XX:XX:XX:XX:XX:XXcopyRetries for one device
Isolate retry behavior to a specific client or AP. If only one device is retrying while others aren't - it's a driver, NIC, or position issue, not the AP.
wlan.fc.pwrmgt == 1copyPower management bit set
Client telling AP it's going to doze. If this flips rapidly, client is in aggressive power save mode. Can cause timing issues with latency-sensitive apps like VoIP.
wlan.fcs.status == "Bad"copyFCS errors (bad frames)
Corrupted frames at the physical layer. FCS errors with high RSSI = co-channel interference, not signal strength. This is a common misdiagnosis - engineers blame distance when it's actually a neighbour AP on the same channel.
wi-fi 7 / 6 ghz / bss color
wlan_mgt.eht_capabilitiescopyEHT Capabilities IE (Wi-Fi 7)
Present only in 802.11be frames. If you're qualifying a Wi-Fi 7 gateway and this IE is missing from beacons, the AP is falling back to HE mode. That's a misconfiguration, not a client issue.
wlan_mgt.he.operation.bss_colorcopyBSS Color value
6-bit value (1–63). If two overlapping APs share the same BSS Color, spatial reuse is disabled between them. That's a BSS Color collision - exactly what WiFi Analyser's BSSCOLOR_COLLISION anomaly flags.
wlan_mgt.he.operation.bss_color_disabled == 1copyBSS Color disabled
AP has turned off BSS Color. This kills 6 GHz spatial reuse completely. Usually happens after a collision detection event. Look for a BSS Color Change Announcement frame shortly before this.
wlan_mgt.mlo.common.link_idcopyMLO Link ID
Identifies which link in an MLO setup this frame belongs to. Critical note: always filter MLO traffic by the link-specific MAC (L-MAC), NOT the MLD MAC (U-MAC) that monitoring tools show you. That's the most common MLO PCAP mistake.
daily combinations
(wlan.fc.type_subtype == 0x0c || wlan.fc.type_subtype == 0x0a) && wlan.addr == XX:XX:XX:XX:XX:XXcopyAll disconnects for one client
First combo I run when a user says "keeps dropping." If you see deauth storms from the AP side, it's kicking the client. From the client side, client is leaving voluntarily (and often immediately re-associating elsewhere).
wlan.addr == XX && (wlan.fc.type_subtype == 0x04 || wlan.fc.type_subtype == 0x0b || wlan.fc.type_subtype == 0x00 || wlan.fc.type_subtype == 0x01 || eapol)copyComplete join sequence for one client
Probe → Auth → Assoc → EAPOL. Everything a client does to join. This is my go-to for diagnosing "client can't connect" tickets. Step through each stage and find where it stops.
wlan.fc.type_subtype == 0x02 || wlan.fc.type_subtype == 0x03 || wlan.fc.type_subtype == 0x0ccopyRoaming events overview
Reassoc req + resp + deauths. This gives you a timeline of every roam event in the capture. Sort by time and look for overlapping deauths and reassocs - that's where roaming latency hides.
radiotap / RF layer
radiotap.dbm_antsignal >= -70copyStrong signal frames only
-70 dBm or better = healthy signal. Invert with < -80 to isolate weak-signal frames where retries are likely. RadioTap RSSI is the signal at the sniffer adapter - not the client or AP. Note which adapter captured when comparing values.
radiotap.dbm_antsignal < -80copyWeak signal frames
Frames received below -80 dBm are in the marginal zone. Combine with wlan.fc.retry == 1 to confirm RF is the cause of retries rather than congestion.
radiotap.channel.freq == 5240copyFilter by channel frequency
Replace 5240 with your channel. 2.4 GHz: 2412-2484. 5 GHz: 5180-5825. 6 GHz: 5945-7125. Use >= 5945 to isolate all 6 GHz traffic in a multi-band capture.
radiotap.mcs.index == 0copyMCS 0 frames (lowest rate fallback)
MCS 0 = BPSK 1/2 - the lowest HT/VHT rate. A client falling back to MCS 0 is telling you it's at the edge of coverage or fighting severe interference. Use != 0 to hide legacy fallback frames and see what the healthy traffic looks like.
radiotap.datarate <= 12copyLegacy rate frames (6 Mbps or lower)
RadioTap datarate is in 500 Kbps units - divide by 2 for Mbps. Value 12 = 6 Mbps. Management frames often appear at 6 Mbps (mandatory basic rate). Data frames at 6 Mbps = severe rate degradation.
wlan.fc.type_subtype == 0x12copyTrigger Frame (802.11ax OFDMA uplink)
AP scheduling uplink MU-OFDMA transmissions. Presence of Trigger Frames confirms OFDMA is active. Absence on a Wi-Fi 6 network = AP has OFDMA disabled or clients don't support it. In dense deployments this should be common - if you never see it, your AP config needs checking.
wlan.fcs.status == "Bad"copyFCS errors (corrupted frames)
FCS errors with strong RSSI = co-channel interference, not weak signal. This is the most common misdiagnosis in RF troubleshooting. Engineers blame coverage when the real cause is an overlapping AP on the same channel destroying frames mid-transmission.
radiotap.he.data_3.bss_colorcopyBSS Color in RadioTap (HE frames)
6-bit BSS Color value from the HE PPDU's RadioTap header. If two neighboring APs share the same BSS Color value, spatial reuse is disabled between them - they treat each other as same-BSS and defer unnecessarily. This is a BSS Color collision.
Find these automatically in WiFi Analyser
Upload a PCAP and get 212+ protocol checks - no filter typing required. The tool applies all of the above automatically and flags anomalies for you.
SK
- Shankar K., Wi-Fi engineer, Irving TX
Building WiFi Analyser V2 · CWNA-109 in progress · one post every two weeks
Building WiFi Analyser V2 · CWNA-109 in progress · one post every two weeks
// share this page
// also on this site
SK
— Shankar K., Wi-Fi engineer, Irving TX
Building WiFi Analyser V2 · CWNA-109 in progress · one post every two weeks
Building WiFi Analyser V2 · CWNA-109 in progress · one post every two weeks