Hi Johannes,
FW is doing the below additional changes on beacon, that requires to get
the critical and BPCC values from FW.
1. Host driver sets critical bit on beacon template WMI command in
impacted link, but FW is taking care of synchronization among partner
links like updating critical bits and BPCC on partner link BMLE perSTA
profile.
If hostapd and mac80211 does CU and BPCC count changes on beacons,
then synchronization of the same across links is cumbersome since FW
knows when next beacon on partner link will be sent.
After sending beacon template, host is not aware of when actually the
beacon sent out with updated critical/BPCC values on all links
and if probe/assoc request frame received in between time, hostapd
generated probe/assoc response frame could have different
values compared to that of values in beacon. To avoid this issue, these
values are obtained from FW.
2. In some cases like Target Wake Time (TWT), FW will add TWT element IE
on beacon and it is a critical update that hostapd is not aware of.
3. Critical bit should be cleared after DTIM interval and currently
hostapd is not running any timer for DTIM period to clear these flags.
4. In case of Channel switch /BSS color code change, kernel should have
switch counts, but hostapd has to provide multiple offsets to update
the count on CSA/BCCA element added on BMLE perSTA profile of partner
links and RNR element. To avoid adding multiple offsets , these values
are passed to hostapd.
Thanks,
Rathees Kumar
On 3/18/2024 3:25 PM, Johannes Berg wrote:
On Mon, 2024-03-18 at 11:06 +0530, Rathees Kumar R Chinannan wrote:
Add an ieee80211_critical_update() API to send the parameters to cfg80211
and call it when event received from firmware to update critical
parameters to user space.
I'm confused, _why_? What does the firmware do that changes the beacon
that doesn't _already_ need hostapd to know about it?!
johannes