ath12k & ath11k beacon miss detection
Nicolas Escande
nico.escande at gmail.com
Tue Feb 20 09:11:37 PST 2024
Hi there,
I found that when using QCN9274 iun station mode, we never get disconnected from
the AP even if it stops beaconning. Using iw I can see the "inactive time"
increasing without supplicant ever getting a beacon miss event.
>From what I gathered, given we set the flag CONNECTION_MONITOR using
ieee80211_hw_set in __ath12k_mac_register (mac.c) we should detect the
connection loss and call ieee80211_connection_loss() at some point. Right now,
there is no such mecanism in ath12k.
So looking at ath11k code I found out that in that driver we have a specific
WMI event "WMI_ROAM_EVENTID" that can report a WMI_ROAM_REASON_BEACON_MISS that
in turn ends up calling ieee80211_beacon_loss after some time.
But trying ath11k & qcn9074 in station mode yielded the same result, we never
get the roam event and never get disconnected either.
So going back to ath10k this time, the code isn't exactly the same but even then
we had the same wmi event, with the same WMI_ROAM_REASON_BEACON_MISS and we'd
call ath10k_mac_handle_beacon_miss which in turn ends up calling
ieee80211_beacon_loss via a work item.
And using ath10k on qca9888 works well for me.
So I have a few questions:
- is this supposed to work on ath11k ? Does it not work for me specifically
because of my chipset ? Or are we missing some wmi config ?
- as the code to handle the roam event is missing/commented out in ath12k will
it be a different mecanism to detect connection loss ? Or it'll be the same
and you guys just did not have time yet to tackle this ?
I'm happy to add the missing code to fix that use case in both drivers but I'll
need some insight from you ath folks on this.
Thanks
More information about the ath11k
mailing list