From f131196319a2d08cc815140ca55092647ab3a072 Mon Sep 17 00:00:00 2001 From: Sunil Dutt Date: Tue, 6 Aug 2019 15:43:29 +0530 Subject: [PATCH] Document the attributes used by QCA_NL80211_VENDOR_SUBCMD_ROAM This commit documents the attributes used by QCA_NL80211_VENDOR_SUBCMD_ROAM. Signed-off-by: Jouni Malinen --- src/common/qca-vendor.h | 120 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 2 deletions(-) diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h index ff8c22a75..baff71c7b 100644 --- a/src/common/qca-vendor.h +++ b/src/common/qca-vendor.h @@ -3359,6 +3359,97 @@ enum qca_wlan_vendor_attr_logger_results { QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_AFTER_LAST - 1, }; +/* + * enum qca_wlan_vendor_attr_roaming_config_params: Attributes for data used by + * QCA_NL80211_VENDOR_SUBCMD_ROAM sub command. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_SUBCMD: Unsigned 32-bit value. + * Represents the different roam sub commands referred by + * enum qca_wlan_vendor_attr_roam_subcmd. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_REQ_ID: Unsigned 32-bit value. + * Represents the Request ID for the specific set of commands. + * This also helps to map specific set of commands to the respective + * ID / client. e.g., helps to identify the user entity configuring the + * Blacklist BSSID and accordingly clear the respective ones with the + * matching ID. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID_NUM_NETWORKS: Unsigned + * 32-bit value.Represents the number of whitelist SSIDs configured. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID_LIST: Nested attribute + * to carry the list of Whitelist SSIDs. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID: SSID (binary attribute, + * 0..32 octets). Represents the white list SSID. Whitelist SSIDs + * represent the list of SSIDs to which the firmware/driver can consider + * to roam to. + * + * The following PARAM_A_BAND_XX attributes are applied to 5GHz BSSIDs when + * comparing with a 2.4GHz BSSID. They are not applied when comparing two + * 5GHz BSSIDs.The following attributes are set through the Roaming SUBCMD - + * QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_GSCAN_ROAM_PARAMS. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_BOOST_THRESHOLD: Signed 32-bit + * value, RSSI threshold above which 5GHz RSSI is favored. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_PENALTY_THRESHOLD: Signed 32-bit + * value, RSSI threshold below which 5GHz RSSI is penalized. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_BOOST_FACTOR: Unsigned 32-bit + * value, factor by which 5GHz RSSI is boosted. + * boost=(RSSI_measured-5GHz_boost_threshold)*5GHz_boost_factor + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_PENALTY_FACTOR: Unsigned 32-bit + * value, factor by which 5GHz RSSI is penalized. + * penalty=(5GHz_penalty_threshold-RSSI_measured)*5GHz_penalty_factor + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_MAX_BOOST: Unsigned 32-bit + * value, maximum boost that can be applied to a 5GHz RSSI. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_LAZY_ROAM_HISTERESYS: Unsigned 32-bit + * value, boost applied to current BSSID to ensure the currently + * associated BSSID is favored so as to prevent ping-pong situations. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_ALERT_ROAM_RSSI_TRIGGER: Signed 32-bit + * value, RSSI below which "Alert" roam is enabled. + * "Alert" mode roaming - firmware is "urgently" hunting for another BSSID + * because the RSSI is low, or because many successive beacons have been + * lost or other bad link conditions. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_ENABLE: Unsigned 32-bit + * value. 1-Enable, 0-Disable. Represents "Lazy" mode, where + * firmware is hunting for a better BSSID or white listed SSID even though + * the RSSI of the link is good. The parameters enabling the roaming are + * configured through the PARAM_A_BAND_XX attrbutes. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PREFS: Nested attribute, + * represents the BSSIDs preferred over others while evaluating them + * for the roaming. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_NUM_BSSID: Unsigned + * 32-bit value. Represents the number of preferred BSSIDs set. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_BSSID: 6-byte MAC + * address representing the BSSID to be preferred. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_RSSI_MODIFIER: Signed + * 32-bit value, representing the modifier to be applied to the RSSI of + * the BSSID for the purpose of comparing it with other roam candidate. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS: Nested attribute, + * represents the BSSIDs to get blacklisted for roaming. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS_NUM_BSSID: Unsigned + * 32-bit value, represents the number of blacklisted BSSIDs. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS_BSSID: 6-byte MAC + * address representing the Blacklisted BSSID. + * + * @QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS_HINT: Flag attribute, + * indicates this BSSID blacklist as a hint to the driver. The driver can + * select this BSSID in the worst case (when no other BSSIDs are better). + */ enum qca_wlan_vendor_attr_roaming_config_params { QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_INVALID = 0, @@ -3402,8 +3493,33 @@ enum qca_wlan_vendor_attr_roaming_config_params { }; /* - * enum qca_wlan_vendor_attr_roam_subcmd: Attributes for data used by - * QCA_NL80211_VENDOR_SUBCMD_ROAM sub command. + * enum qca_wlan_vendor_attr_roam_subcmd: Referred by + * QCA_WLAN_VENDOR_ATTR_ROAMING_SUBCMD. + * + * @QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SSID_WHITE_LIST: Sub command to + * configure the white list SSIDs. These are configured through + * the following attributes. + * QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID_NUM_NETWORKS, + * QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID_LIST, + * QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID + * + * @QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_GSCAN_ROAM_PARAMS: Sub command to + * configure the Roam params. These parameters are evaluated on the GScan + * results. Refers the attributes PARAM_A_BAND_XX above to configure the + * params. + * + * @QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_LAZY_ROAM: Sets the Lazy roam. Uses + * the attribute QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_ENABLE + * to enable/disable Lazy roam. + * + * @QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BSSID_PREFS: Sets the BSSID + * preference. Contains the attribute + * QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PREFS to set the BSSID + * preference. + * + * @QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BLACKLIST_BSSID: Sets the Blacklist + * BSSIDs. Refers QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS to + * set the same. */ enum qca_wlan_vendor_attr_roam_subcmd { QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_INVALID = 0,