]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Add QCA vendor definitions for BSS transition status
authorKanchanapally, Vidyullatha <vkanchan@qti.qualcomm.com>
Tue, 24 Jan 2017 07:35:23 +0000 (13:05 +0530)
committerJouni Malinen <j@w1.fi>
Mon, 30 Jan 2017 20:31:46 +0000 (22:31 +0200)
Introduce definitions for QCA vendor specific subcommands and attributes
for fetching BSS transition status.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/common/qca-vendor.h

index 25800d4a4267c65a1bbcb6eb85b69569620da1a0..e7493c99ffee75fe0e49323ccc5d64a5de410ab6 100644 (file)
@@ -267,6 +267,19 @@ enum qca_radiotap_vendor_ids {
  * @QCA_NL80211_VENDOR_SUBCMD_NUD_STATS_GET: Get the NUD statistics. These
  *     statistics are represented by the enum qca_attr_nud_stats_get
  *     attributes.
+ *
+ * @QCA_NL80211_VENDOR_SUBCMD_FETCH_BSS_TRANSITION_STATUS: Sub-command to fetch
+ *     the BSS transition status, whether accept or reject, for a list of
+ *     candidate BSSIDs provided by the userspace. This uses the vendor
+ *     attributes QCA_WLAN_VENDOR_ATTR_BTM_MBO_TRANSITION_REASON and
+ *     QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO. The userspace shall specify
+ *     the attributes QCA_WLAN_VENDOR_ATTR_BTM_MBO_TRANSITION_REASON and an
+ *     array of QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_BSSID nested in
+ *     QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO in the request. In the response
+ *     the driver shall specify array of
+ *     QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_BSSID and
+ *     QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_STATUS pairs nested in
+ *     QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO.
  */
 enum qca_nl80211_vendor_subcmds {
        QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
@@ -392,6 +405,7 @@ enum qca_nl80211_vendor_subcmds {
        QCA_NL80211_VENDOR_SUBCMD_CHIP_PWRSAVE_FAILURE = 148,
        QCA_NL80211_VENDOR_SUBCMD_NUD_STATS_SET = 149,
        QCA_NL80211_VENDOR_SUBCMD_NUD_STATS_GET = 150,
+       QCA_NL80211_VENDOR_SUBCMD_FETCH_BSS_TRANSITION_STATUS = 151,
 };
 
 
@@ -534,6 +548,22 @@ enum qca_wlan_vendor_attr {
         */
        QCA_WLAN_VENDOR_ATTR_RX_AGGREGATION_STATS_HOLES_NUM = 34,
        QCA_WLAN_VENDOR_ATTR_RX_AGGREGATION_STATS_HOLES_INFO = 35,
+       /* Unsigned 8-bit value representing MBO transition reason code as
+        * provided by the AP used by subcommand
+        * QCA_NL80211_VENDOR_SUBCMD_FETCH_BSS_TRANSITION_STATUS. This is
+        * specified by the userspace in the request to the driver.
+        */
+       QCA_WLAN_VENDOR_ATTR_BTM_MBO_TRANSITION_REASON = 36,
+       /* Array of nested attributes, BSSID and status code, used by subcommand
+        * QCA_NL80211_VENDOR_SUBCMD_FETCH_BSS_TRANSITION_STATUS, where each
+        * entry is taken from enum qca_wlan_vendor_attr_btm_candidate_info.
+        * The userspace space specifies the list/array of candidate BSSIDs in
+        * the order of preference in the request. The driver specifies the
+        * status code, for each BSSID in the list, in the response. The
+        * acceptable candidates are listed in the order preferred by the
+        * driver.
+        */
+       QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO = 37,
 
        /* keep last */
        QCA_WLAN_VENDOR_ATTR_AFTER_LAST,
@@ -3304,4 +3334,34 @@ enum qca_attr_nud_stats_get {
                QCA_ATTR_NUD_STATS_GET_LAST - 1,
 };
 
+enum qca_wlan_btm_candidate_status {
+       QCA_STATUS_ACCEPT = 0,
+       QCA_STATUS_REJECT_EXCESSIVE_FRAME_LOSS_EXPECTED = 1,
+       QCA_STATUS_REJECT_EXCESSIVE_DELAY_EXPECTED = 2,
+       QCA_STATUS_REJECT_INSUFFICIENT_QOS_CAPACITY = 3,
+       QCA_STATUS_REJECT_LOW_RSSI = 4,
+       QCA_STATUS_REJECT_HIGH_INTERFERENCE = 5,
+       QCA_STATUS_REJECT_UNKNOWN = 6,
+};
+
+enum qca_wlan_vendor_attr_btm_candidate_info {
+       QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_INVALID = 0,
+
+       /* 6-byte MAC address representing the BSSID of transition candidate */
+       QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_BSSID = 1,
+       /* Unsigned 32-bit value from enum qca_wlan_btm_candidate_status
+        * returned by the driver. It says whether the BSSID provided in
+        * QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_BSSID is acceptable by
+        * the driver, if not it specifies the reason for rejection.
+        * Note that the user-space can overwrite the transition reject reason
+        * codes provided by driver based on more information.
+        */
+       QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_STATUS = 2,
+
+       /* keep last */
+       QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_AFTER_LAST,
+       QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_MAX =
+       QCA_WLAN_VENDOR_ATTR_BTM_CANDIDATE_INFO_AFTER_LAST - 1,
+};
+
 #endif /* QCA_VENDOR_H */