History

wifi: cfg80211: Add support for link reconfiguration negotiation offload to driver

In the case of SME-in-driver, the driver can internally choose to update the links based on the AP MLD recommendation and do link reconfiguration negotiation with AP MLD. (e.g., After the driver processing the BSS Transition Management request frame received from the AP MLD with Neighbor Report containing Multi-Link element with recommended links information chooses to do link reconfiguration negotiation with AP MLD). To support this, extend cfg80211_mlo_reconf_add_done() and NL80211_CMD_ASSOC_MLO_RECONF to indicate added links information for driver-initiated link reconfiguration requests. For removed links, the driver indicates links information using the NL80211_CMD_LINKS_REMOVED event for driver-initiated cases, the same as supplicant initiated cases. For the driver-initiated case, cfg80211 will receive link reconfiguration result asynchronously from driver so holding BSSes of the accepted add links is needed in the event path. Also, no need of unhold call for the rejected add link BSSes since there was no hold call happened previously. Once the supplicant receives the NL80211_CMD_ASSOC_MLO_RECONF event, it needs to process the information about newly added links and install per-link group keys (e.g., GTK/IGTK/BIGTK etc.). In case of the SME-in-driver, using a vendor interface etc. to notify the supplicant to initiate a link reconfiguration request and then supplicant sending command to the cfg80211 can lead to race conditions. The correct design to avoid this is that the driver indicates the cfg80211 directly with the results of the link reconfiguration negotiation.

Kavita Kavita committed 1 year ago

Commit 7c598c61 parent 5ae1fc44 files · +25 −7Browse files

Showing the changes to include/uapi (1 of 4 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+5−1
@@ -1334,7 +1334,11 @@ · 1333 unmodified lines
13341334 * reconfiguration request results from the driver, this command is also
13351335 * used as an event to notify userspace about the added links information.
13361336 * For notifying the removed links information, the existing
1337− * %NL80211_CMD_LINKS_REMOVED command is used.
1337+ * %NL80211_CMD_LINKS_REMOVED command is used. This command is also used to
1338+ * notify userspace about newly added links for the current connection in
1339+ * case of AP-initiated link recommendation requests, received via
1340+ * a BTM (BSS Transition Management) request or a link reconfig notify
1341+ * frame, where the driver handles the link recommendation offload.
13381342 *
13391343 * @NL80211_CMD_EPCS_CFG: EPCS configuration for a station. Used by userland to
13401344 * control EPCS configuration. Used to notify userland on the current state