Skip to content

ieee80211: start scan dwell after channel and probe completion - #1209

Draft
mgonzalezlopezudc wants to merge 3 commits into
inet-framework:masterfrom
mgonzalezlopezudc:fix/ieee80211-audit-scan-completion
Draft

mgonzalezlopezudc wants to merge 3 commits into
inet-framework:masterfrom
mgonzalezlopezudc:fix/ieee80211-audit-scan-completion

Conversation

@mgonzalezlopezudc

Copy link
Copy Markdown
Contributor

Summary

Active dwell started when Probe Request was queued, and a deferred passive retune could stall after the medium became idle. Wait for matching own-radio retune and tagged probe completion, scope busy observations, and retry pending configuration at guarded idle points.

Scope

STA scan state, transaction tags, MAC retry timer, contention and Tx pending-state contract; BSSID prerequisite first.

Dependencies and merge order

Depends on #1199 (management BSSID and Capability Information). Merge that PR first.

This branch currently carries the BSSID prerequisite, but not the capability changes. The prerequisite commit is already covered by the management PR. After it merges, rebase this branch onto updated master, drop the equivalent BSSID prerequisite, resolve overlapping management/MAC changes, and rerun this PR’s focused tests. This PR is not ready to merge before that reconciliation.

Scan-result filtering is a separate PR and is not a prerequisite. If it lands first, preserve its result filtering when rebasing.

Validation

Pinned test base: 7287f347aaca36e557c708d6930a6f5a450b2833.

The isolated topic head passed an assertions-enabled debug build (-O0 -Wall -g0; debug symbols omitted for storage) and the focused checks below. The larger integration source tree also passed debug and release compilation; no separate release build is claimed for this topic.

Executed focused test commands, from the repository root after source setenv -q:

inet_run_unit_tests -m debug -f 'Ieee80211ScanEventScope_1\.test'
inet_run_module_tests -m debug -f 'Ieee80211ScanCompletion(Qos)?_1\.test'

Results: 1 unit, 2 module cases passed.

Limits and review status

Specific old-channel active-probe ordering remains unproven. Physical dual-NIC, pending-SIFS and lifecycle campaigns remain broader coverage.

Draft pending final independent review and reconciliation with current upstream. Live PR overlap has not been reverified against the pinned test base.

STA management frames built before association omitted Address3. Carry the procedure-selected BSSID in a typed request tag and honor it at MAC header construction, preserving the AP fallback and keeping receiver address distinct from BSSID.

A real STA scan/authentication/association test checks management Address3 at the MAC boundary, including wildcard probes.

Change: src.ieee80211.management | behavior.change.fix | test | wifi-audit
Active dwell could expire before the queued Probe Request finished, and a passive retune parked during reception could remain pending after the medium became idle. Wait for the matching radio channel event, correlate probe completion through its management transaction, and retry deferred configuration only outside active exchanges and pending transmissions.

Observe busy indications on the scanning radio instead of the entire host. Clear scan listeners and retry state on teardown. DCF and HCF regressions verify probe completion before minimum dwell and exact passive dwell after the deferred retune applies. The separately proposed old-channel active-probe ordering was not reproduced.

Change: src.ieee80211.scanning | behavior.change.fix | test | wifi-audit
A busy indication from another component must not extend the scanning radio dwell, and completion of an older probe must not advance a new scan. Exercise these handlers directly alongside the DCF/HCF exchange timing tests.

Change: tests | behavior.add | test | wifi-audit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant