hostapd: Extend the configuration of RRM capabilities
[mech_eap.git] / src / common / ieee802_11_defs.h
index 9b06dad..2c1d5a8 100644 (file)
@@ -453,6 +453,48 @@ enum nai_realm_eap_cred_type {
        NAI_REALM_CRED_TYPE_VENDOR_SPECIFIC = 10
 };
 
+/*
+ * IEEE P802.11-REVmc/D5.0 Table 9-81 - Measurement type definitions for
+ * measurement requests
+ */
+enum measure_type {
+       MEASURE_TYPE_BASIC = 0,
+       MEASURE_TYPE_CCA = 1,
+       MEASURE_TYPE_RPI_HIST = 2,
+       MEASURE_TYPE_CHANNEL_LOAD = 3,
+       MEASURE_TYPE_NOISE_HIST = 4,
+       MEASURE_TYPE_BEACON = 5,
+       MEASURE_TYPE_FRAME = 6,
+       MEASURE_TYPE_STA_STATISTICS = 7,
+       MEASURE_TYPE_LCI = 8,
+       MEASURE_TYPE_TRANSMIT_STREAM = 9,
+       MEASURE_TYPE_MULTICAST_DIAG = 10,
+       MEASURE_TYPE_LOCATION_CIVIC = 11,
+       MEASURE_TYPE_LOCATION_ID = 12,
+       MEASURE_TYPE_DIRECTIONAL_CHAN_QUALITY = 13,
+       MEASURE_TYPE_DIRECTIONAL_MEASURE = 14,
+       MEASURE_TYPE_DIRECTIONAL_STATS = 15,
+       MEASURE_TYPE_FTM_RANGE = 16,
+       MEASURE_TYPE_MEASURE_PAUSE = 255,
+};
+
+/* IEEE Std 802.11-2012 Table 8-71 - Location subject definition */
+enum location_subject {
+       LOCATION_SUBJECT_LOCAL = 0,
+       LOCATION_SUBJECT_REMOTE = 1,
+       LOCATION_SUBJECT_3RD_PARTY = 2,
+};
+
+/*
+ * IEEE P802.11-REVmc/D5.0 Table 9-94 - Optional subelement IDs for LCI request
+ */
+enum lci_req_subelem {
+       LCI_REQ_SUBELEM_AZIMUTH_REQ = 1,
+       LCI_REQ_SUBELEM_ORIGINATOR_MAC_ADDR = 2,
+       LCI_REQ_SUBELEM_TARGET_MAC_ADDR = 3,
+       LCI_REQ_SUBELEM_MAX_AGE = 4,
+};
+
 #ifdef _MSC_VER
 #pragma pack(push, 1)
 #endif /* _MSC_VER */
@@ -527,10 +569,7 @@ struct ieee80211_mgmt {
                         * FH Params, DS Params, CF Params, IBSS Params, TIM */
                        u8 variable[];
                } STRUCT_PACKED beacon;
-               struct {
-                       /* only variable items: SSID, Supported rates */
-                       u8 variable[0];
-               } STRUCT_PACKED probe_req;
+               /* probe_req: only variable items: SSID, Supported rates */
                struct {
                        u8 timestamp[8];
                        le16 beacon_int;
@@ -1113,6 +1152,12 @@ enum mbo_transition_reject_reason {
        MBO_TRANSITION_REJECT_REASON_SERVICES = 6,
 };
 
+/* MBO v0.0_r19, 4.4: WNM-Notification vendor subelements */
+enum wfa_wnm_notif_subelem_id {
+       WFA_WNM_NOTIF_SUBELEM_NON_PREF_CHAN_REPORT = 2,
+       WFA_WNM_NOTIF_SUBELEM_CELL_DATA_CAPA = 3,
+};
+
 /* Wi-Fi Direct (P2P) */
 
 #define P2P_OUI_TYPE 9
@@ -1372,14 +1417,25 @@ enum bss_trans_mgmt_status_code {
        WNM_BSS_TM_REJECT_LEAVING_ESS = 8
 };
 
+/*
+ * IEEE P802.11-REVmc/D5.0 Table 9-150 - Optional subelement IDs for
+ * neighbor report
+ */
 #define WNM_NEIGHBOR_TSF                         1
 #define WNM_NEIGHBOR_CONDENSED_COUNTRY_STRING    2
 #define WNM_NEIGHBOR_BSS_TRANSITION_CANDIDATE    3
 #define WNM_NEIGHBOR_BSS_TERMINATION_DURATION    4
 #define WNM_NEIGHBOR_BEARING                     5
+#define WNM_NEIGHBOR_WIDE_BW_CHAN                6
+#define WNM_NEIGHBOR_MEASUREMENT_REPORT         39
+#define WNM_NEIGHBOR_HT_CAPAB                   45
+#define WNM_NEIGHBOR_HT_OPER                    61
+#define WNM_NEIGHBOR_SEC_CHAN_OFFSET            62
 #define WNM_NEIGHBOR_MEASUREMENT_PILOT          66
 #define WNM_NEIGHBOR_RRM_ENABLED_CAPABILITIES   70
 #define WNM_NEIGHBOR_MULTIPLE_BSSID             71
+#define WNM_NEIGHBOR_VHT_CAPAB                 191
+#define WNM_NEIGHBOR_VHT_OPER                  192
 
 /* QoS action */
 enum qos_action {
@@ -1448,6 +1504,8 @@ struct tpc_report {
        u8 link_margin;
 } STRUCT_PACKED;
 
+#define RRM_CAPABILITIES_IE_LEN 5
+
 /* IEEE Std 802.11-2012, 8.5.7.4 - Link Measurement Request frame format */
 struct rrm_link_measurement_request {
        u8 dialog_token;
@@ -1467,8 +1525,6 @@ struct rrm_link_measurement_report {
        u8 variable[0];
 } STRUCT_PACKED;
 
-#define SSID_MAX_LEN 32
-
 /* IEEE Std 802.11ad-2012 - Multi-band element */
 struct multi_band_ie {
        u8 eid; /* WLAN_EID_MULTI_BAND */
@@ -1539,7 +1595,7 @@ enum phy_type {
        PHY_TYPE_VHT = 9,
 };
 
-/* IEEE Std 802.11-2012, 8.4.2.39 - Neighbor Report element */
+/* IEEE P802.11-REVmc/D5.0, 9.4.2.37 - Neighbor Report element */
 /* BSSID Information Field */
 #define NEI_REP_BSSID_INFO_AP_NOT_REACH BIT(0)
 #define NEI_REP_BSSID_INFO_AP_UNKNOWN_REACH BIT(1)
@@ -1554,5 +1610,20 @@ enum phy_type {
 #define NEI_REP_BSSID_INFO_IMM_BA BIT(9)
 #define NEI_REP_BSSID_INFO_MOBILITY_DOMAIN BIT(10)
 #define NEI_REP_BSSID_INFO_HT BIT(11)
+#define NEI_REP_BSSID_INFO_VHT BIT(12)
+#define NEI_REP_BSSID_INFO_FTM BIT(13)
+
+/*
+ * IEEE P802.11-REVmc/D5.0 Table 9-152 - HT/VHT Operation Information
+ * subfields.
+ * Note: These definitions are not the same as other VHT_CHANWIDTH_*.
+ */
+enum nr_chan_width {
+       NR_CHAN_WIDTH_20 = 0,
+       NR_CHAN_WIDTH_40 = 1,
+       NR_CHAN_WIDTH_80 = 2,
+       NR_CHAN_WIDTH_160 = 3,
+       NR_CHAN_WIDTH_80P80 = 4,
+};
 
 #endif /* IEEE802_11_DEFS_H */