Make our old BSSID available to iwx_newstate_task() when roaming.
authorstsp <stsp@openbsd.org>
Tue, 12 Oct 2021 10:46:57 +0000 (10:46 +0000)
committerstsp <stsp@openbsd.org>
Tue, 12 Oct 2021 10:46:57 +0000 (10:46 +0000)
commit8e2545bea84e735c0cadb3c679527b651125dd88
treebc49c35a84a7d84bd19566853e5500905f6d6683
parent42c96387bc3ef4ce9c6d46982cbc6c7f5a650937
Make our old BSSID available to iwx_newstate_task() when roaming.

ic_bss->ni_bssid has already been overwritten once we enter
iwx_newstate_task() to perform the state transitions necessary
for roaming to our new access point (RUN->AUTH->ASSOC->RUN).

We do however use the BSSID in commands sent to firmware.
Cache our BSSID in struct iwx_node such that firmware commands
keep using the old BSSID while we are still tearing things down.
Switch to the new BSSID only once we start back up in iwx_auth().
This should be consistent from the firmware's point of view.

Same fix as committed for iwm(4) recently.
sys/dev/pci/if_iwx.c
sys/dev/pci/if_iwxvar.h