nl80211: vendor-cmd: intel: add more details for IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Wed, 20 Oct 2021 05:11:47 +0000 (08:11 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 21 Oct 2021 15:25:17 +0000 (17:25 +0200)
Explain more the expected flow for this command.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Link: https://lore.kernel.org/r/20211020051147.29297-1-emmanuel.grumbach@intel.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/uapi/linux/nl80211-vnd-intel.h

index 0bf177b84fd9264f5e602e9d3b19abc6e380d031..4ed7d0b245122175af9f9d38ad1ee397a3814c1b 100644 (file)
  * enum iwl_mvm_vendor_cmd - supported vendor commands
  * @IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO: reports CSME connection info.
  * @IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP: asks for ownership on the device.
+ *     This is useful when the CSME firmware owns the device and the kernel
+ *     wants to use it. In case the CSME firmware has no connection active the
+ *     kernel will manage on its own to get ownership of the device.
+ *     When the CSME firmware has an active connection, the user space
+ *     involvement is required. The kernel will assert the RFKILL signal with
+ *     the "device not owned" reason so that nobody can touch the device. Then
+ *     the user space can run the following flow to be able to get connected
+ *     to the very same AP the CSME firmware is currently connected to:
+ *
+ *     1) The user space (NetworkManager) boots and sees that the device is
+ *         in RFKILL because the host doesn't own the device
+ *     2) The user space asks the kernel what AP the CSME firmware is
+ *        connected to (with %IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO)
+ *     3) The user space checks if it has a profile that matches the reply
+ *        from the CSME firmware
+ *     4) The user space installs a network to the wpa_supplicant with a
+ *        specific BSSID and a specific frequency
+ *     5) The user space prevents any type of full scan
+ *     6) The user space asks iwlmei to request ownership on the device (with
+ *        this command)
+ *     7) iwlmei requests ownership from the CSME firmware
+ *     8) The CSME firmware grants ownership
+ *     9) iwlmei tells iwlwifi to lift the RFKILL
+ *     10) RFKILL OFF is reported to user space
+ *     11) The host boots the device, loads the firwmare, and connects to a
+ *         specific BSSID without scanning including IP as fast as it can
+ *     12) The host reports to the CSME firmware that there is a connection
+ *     13) The TCP connection is preserved and the host has connectivity
+ *
  * @IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT: notifies if roaming is allowed.
  *     It contains a &IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN and a
  *     &IWL_MVM_VENDOR_ATTR_VIF_ADDR attributes.