Analysis: what the sensor can detect and attribute¶
Date: 2026-10-20; the table updated on 2026-10-21.
Question: how far the goal holds after the first week with the hardware and ten testlab scenarios: detecting a client's problem and attributing it to one outcome (AP side, client side, RF environment, upstream / not Wi-Fi, measurement limit, undecided).
Sources: docs/measurements/, the testlab recordings (testlab.md, test data), the hint rules (rules) and the code of BlockAckTracker and HintRules.
Labels: [B] measured or in the code · [W] likely · [O] uncertain.
The actions that follow from it are in the plan (docs/status.md), the scorecard in test data.
Summary¶
- Problems made of events (login, disconnect, roam) are detectable and attributable over the air: the testlab scenarios with a wrong PSK, a refused SAE group, a client leaving, an AP kick and an AP reboot came out as caused [B]. With PMF the reasons, BTM and 11k are encrypted and move to Mist; the sender of a frame stays visible [B].
- Performance complaints are detectable: BA success per direction works where the data decode does not [B]. Their side is often not attributable from beside the client: the sensor hears the client's surroundings, not the AP's. Without Mist or a second vantage point an uplink loss stays undecided [B, by design]. In the first cases undecided is likely the most common outcome for a performance complaint [W]; that is honest, not a failure.
- Upstream is a conclusion by elimination ("Wi-Fi looks fine", on a quiet channel). It is as good as BA success, which has no ground truth yet and counts a PPDU lost whole and delivered on a retry as delivered [B, code]; the TXOPs that start with an RTS show part of that (txop-loss.md) [B].
- Mist turns from an addition into a prerequisite: for the encrypted evidence, for the side of an uplink loss and for a positive upstream finding.
- The rules fit the home testlab: ten of the sixteen scenario recordings came out right only after a rule change, and no recording was held out [B]. The false alarm rate in dense campus RF is unknown [B].
What holds¶
- The capture chain: rule 1 verified by cross-capture, the truncation enforced in the kernel, no drops at the testlab's rates [B].
- BA success survives the sensor's limits. With the monitor at 20 MHz next to a 160 MHz BSS it still came out at 99.7 % down and 98.0 % up from 55,000 BAs (
eht-6g-20-Ain eht-capture.md) [B]. The primary metric therefore holds where data frames are not decoded: EHT MCS 13 [B], 320 MHz and puncturing [W, untested]. - The sensor misses data mainly at a high MCS, when the link is good; at a low MCS it decodes it (
eht-6g-160-B: every downlink MPDU at MCS 4–6) [B]. The blind spot of the rates shrinks where the rates matter. - The decision model separates tested from untested, and an observation without a side does not decide [B]. With one expert user that matters more for trust than any further rule.
Per problem class¶
| Class | Detection | Attribution | What limits it |
|---|---|---|---|
| Login with PSK or SAE | high [B] | high [B] | M2 without M3 and the SAE status are near unambiguous (testlab-wrong-psk, testlab-sae-group) |
| Login with 802.1X (eduroam) | high [B] | medium [W] | The EAP timeline is visible (testlab-ap-kick-eduroam); why the RADIUS server refuses is inside the TLS tunnel, and the truncation stops at the EAP type: an EAP-Failure alone does not tell a wrong password from a rejected certificate, an expired account or a policy at the home institution. A failed login is untested |
| Disconnect | high [B] | high without PMF or with Mist, medium with PMF alone [B] | The sender stays visible, the reason is encrypted (testlab-client-leaves-sae); Mist's reason_code gives it back (testlab-ap-kick-eduroam) |
| Roaming | medium [B] | medium [W] | Visible between the channels of capA and capB only; BTM encrypted with PMF; sticky client and weaker roam need the sensor beside the client |
| Loss towards the client (interference at the client, coverage) | high, with the BAR bound [B] | medium [W] | The reference client on the same BSS separates the client from its surroundings (testlab-power-save-second-client); the kind of interferer only with the ath9k |
| Loss towards the AP, asymmetric link | medium [B] | low without Mist [B] | The sensor hears the client's surroundings, not the AP's |
| Busy channel | medium [B] | high [B] | QBSS or at least three co-channel radios; no busy time of its own until the ath9k; the AP45 sends QBSS on every band [B] |
| Power save, latency, jitter | power save medium [B], latency and jitter low | low without a reference client on the BSS [B] | Wakes and the bursts after them are counted (WakeBurst); a loss mostly right after wakes has no side of its own. Latency and jitter are not built: data is encrypted and at a high MCS mostly not decoded |
| Upstream (DHCP, DNS, the WAN, slow RADIUS) | by elimination | medium | As good as "Wi-Fi looks fine"; only RADIUS latency is a finding of its own. Mist's DHCP and DNS events would make upstream one |
| Measurement limit | high [B] | high [B] | Drops and the capture share per direction |