ath10k/ath10k-ct: support multicast and management rate control #1644
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Drivers with software rate control can directly use the selected multicast rate for multicast/broadcast frames and the minimal basic rate for management frames. But drivers with offloaded rate control algorithms must be informed about such upper layer decisions to configure the hardware/firmware.
A new BSS_CHANGED_MCAST_RATE is introduced in mac80211 to automatically inform all drivers. ath10k can detect this event and forward it via WMI to the driver. The already existing BSS_CHANGED_BASIC_RATES can be used to select the management rate.
Without the WMI commands, a low rate (not necessarily one from the basic rates) is used for bcast/mcast/management frames. This means that the /etc/config/wireless settings basic_rate and mcast_rate would have no effect on the rates selected by this driver for the mentioned frames.
The ath10k-ct and mac80211 packages in OpenWrt master already support the broadcast/multicast interface (because they are using ath10k from 4.19 as their base). The management frame changes where part of 4.20 and are not yet part of OpenWrt master. But I have forwarded backports of these changes as OpenWrt PR: