From 3d1ec9d0afb53fc44234b75f4904c933afd23cf9 Mon Sep 17 00:00:00 2001 From: Veerendranath Jakkam Date: Thu, 22 Jun 2023 10:51:21 +0530 Subject: [PATCH] Add QCA vendor interface to support per-MLO link configurations Add support for per-MLO link configurations in QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION and QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION commands. Additionally, add documentation for QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION and QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION commands. Signed-off-by: Veerendranath Jakkam --- src/common/qca-vendor.h | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h index f674ed161..47f680faf 100644 --- a/src/common/qca-vendor.h +++ b/src/common/qca-vendor.h @@ -142,6 +142,32 @@ enum qca_radiotap_vendor_ids { * @QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_INFO: Get information from the driver. * Attributes defined in enum qca_wlan_vendor_attr_get_wifi_info. * + * @QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION: This command is used to + * configure various wiphy or interface level configurations. Attributes + * are defined in enum qca_wlan_vendor_attr_config. Userspace can send one + * or more configuration attributes with a single command. The driver + * accepts the command only if all the configurations are known, otherwise + * it rejects the command. The driver returns success only if processing of + * all the configurations succeeds. The driver continues to process all the + * configurations even if processing of some configurations failed and + * returns the last error occurred while processing the failed + * configurations. + * + * @QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION: This command is used to + * get the current values of the various wiphy or interface level + * configurations. Attributes are defined in enum + * qca_wlan_vendor_attr_config. Userspace needs to specify the + * configuration attributes for which it wants to get the values in the + * command, there is no significance for the value sent in the attribute + * unless explicitly specified in the corresponding configuration + * attribute documentation. The driver accepts the command only if all the + * configurations are known, otherwise it rejects the command. The driver + * returns success only if fetching of all configuration values succeeds + * and indicates the configuration values in corresponding attributes in + * the response. The driver continues to process all the configurations + * even if processing of some configurations failed and returns the last + * error occurred while processing the failed configurations. + * * @QCA_NL80211_VENDOR_SUBCMD_GET_LOGGER_FEATURE_SET: Get the feature bitmap * based on enum wifi_logger_supported_features. Attributes defined in * enum qca_wlan_vendor_attr_get_logger_features. @@ -3136,6 +3162,40 @@ enum qca_wlan_vendor_attr_config { */ QCA_WLAN_VENDOR_ATTR_CONFIG_EPCS_FUNCTION = 98, + /* 8-bit unsigned value. Used only for representing MLO link ID of a + * link inside %QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINKS. + */ + QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINK_ID = 99, + + /* Array of nested links each identified by + * %QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINK_ID. This uses values defined in + * enum qca_wlan_vendor_attr_config, explicit documentation shall be + * added for the attributes in enum qca_wlan_vendor_attr_config to + * support per-MLO link configuration through + * %QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINKS. + * + * Userspace can configure a single link or multiple links with this + * attribute by nesting the corresponding configuration attributes and + * %QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINK_ID for each link. + * + * Userspace can fetch the configuration attribute values for a single + * link or multiple links with this attribute by nesting the + * corresponding configuration attributes and + * %QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINK_ID for each link. + * + * For STA interface, this attribute is applicable only in connected + * state when the current connection is MLO capable. The valid values of + * %QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINK_ID are the link IDs of the + * connected AP MLD links. + * + * For AP interface, this configuration applicable only after adding + * MLO links to the AP interface with %NL80211_CMD_ADD_LINK and the + * valid values of %QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINK_ID are the link + * IDs specified in %NL80211_CMD_ADD_LINK while adding the MLO links to + * the AP interface. + */ + QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINKS = 100, + /* keep last */ QCA_WLAN_VENDOR_ATTR_CONFIG_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_CONFIG_MAX =