Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

nl80211: vendor-cmd: intel: add more details for IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP

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>

authored by

Emmanuel Grumbach and committed by
Johannes Berg
1add667d a6e34fde

+29
+29
include/uapi/linux/nl80211-vnd-intel.h
··· 13 13 * enum iwl_mvm_vendor_cmd - supported vendor commands 14 14 * @IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO: reports CSME connection info. 15 15 * @IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP: asks for ownership on the device. 16 + * This is useful when the CSME firmware owns the device and the kernel 17 + * wants to use it. In case the CSME firmware has no connection active the 18 + * kernel will manage on its own to get ownership of the device. 19 + * When the CSME firmware has an active connection, the user space 20 + * involvement is required. The kernel will assert the RFKILL signal with 21 + * the "device not owned" reason so that nobody can touch the device. Then 22 + * the user space can run the following flow to be able to get connected 23 + * to the very same AP the CSME firmware is currently connected to: 24 + * 25 + * 1) The user space (NetworkManager) boots and sees that the device is 26 + * in RFKILL because the host doesn't own the device 27 + * 2) The user space asks the kernel what AP the CSME firmware is 28 + * connected to (with %IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO) 29 + * 3) The user space checks if it has a profile that matches the reply 30 + * from the CSME firmware 31 + * 4) The user space installs a network to the wpa_supplicant with a 32 + * specific BSSID and a specific frequency 33 + * 5) The user space prevents any type of full scan 34 + * 6) The user space asks iwlmei to request ownership on the device (with 35 + * this command) 36 + * 7) iwlmei requests ownership from the CSME firmware 37 + * 8) The CSME firmware grants ownership 38 + * 9) iwlmei tells iwlwifi to lift the RFKILL 39 + * 10) RFKILL OFF is reported to user space 40 + * 11) The host boots the device, loads the firwmare, and connects to a 41 + * specific BSSID without scanning including IP as fast as it can 42 + * 12) The host reports to the CSME firmware that there is a connection 43 + * 13) The TCP connection is preserved and the host has connectivity 44 + * 16 45 * @IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT: notifies if roaming is allowed. 17 46 * It contains a &IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN and a 18 47 * &IWL_MVM_VENDOR_ATTR_VIF_ADDR attributes.