[PATCH 01/15] defs: Add RRM definitions for beacon report measurement

Andrei Otcheretianski andrei.otcheretianski at intel.com
Wed Dec 28 05:06:33 PST 2016


From: Avraham Stern <avraham.stern at intel.com>

Signed-off-by: Avraham Stern <avraham.stern at intel.com>
---
 src/common/ieee802_11_defs.h | 74 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h
index 259862d..0e3a5ac 100644
--- a/src/common/ieee802_11_defs.h
+++ b/src/common/ieee802_11_defs.h
@@ -589,6 +589,9 @@
 /* byte 1 (out of 5) */
 #define WLAN_RRM_CAPS_LINK_MEASUREMENT BIT(0)
 #define WLAN_RRM_CAPS_NEIGHBOR_REPORT BIT(1)
+#define WLAN_RRM_CAPS_BEACON_REPORT_PASSIVE BIT(4)
+#define WLAN_RRM_CAPS_BEACON_REPORT_ACTIVE BIT(5)
+#define WLAN_RRM_CAPS_BEACON_REPORT_TABLE BIT(6)
 /* byte 2 (out of 5) */
 #define WLAN_RRM_CAPS_LCI_MEASUREMENT BIT(4)
 /* byte 5 (out of 5) */
@@ -1798,6 +1801,77 @@ struct rrm_link_measurement_report {
 	u8 variable[0];
 } STRUCT_PACKED;
 
+/* IEEE Std 802.11-2012, 8.4.2.23.1 - Measurement Request element */
+struct rrm_measurement_request_element {
+	u8 eid;
+	u8 len;
+	u8 token;
+	u8 mode;
+	u8 type;
+	u8 variable[0];
+} STRUCT_PACKED;
+
+/* IEEE Std 802.11-2012, 8.4.2.23.7 - Beacon Request */
+struct rrm_measurement_beacon_request {
+	u8 oper_class;
+	u8 channel;
+	le16 rand_interval; /* in TUs */
+	le16 duration;	/* in TUs */
+	u8 mode;
+	u8 bssid[ETH_ALEN];
+	u8 variable[0];
+} STRUCT_PACKED;
+
+/* IEEE Std 802.11-2012, 8.4.2.24.1 - Measurement Report element */
+struct rrm_measurement_report_element {
+	u8 eid;
+	u8 len;
+	u8 token;
+	u8 mode;
+	u8 type;
+	u8 variable[0];
+} STRUCT_PACKED;
+
+/* IEEE Std 802.11-2012, 8.4.2.24.7 - Beacon Report */
+struct rrm_measurement_beacon_report {
+	u8 op_class;
+	u8 channel;
+	le64 start_time; /* in TSF of the BSS requesting the measurement */
+	le16 duration;	/* in TUs */
+	u8 report_info;
+	u8 rcpi;
+	u8 rsni;
+	u8 bssid[ETH_ALEN];
+	u8 antenna_id;
+	le32 parent_tsf;
+	u8 variable[0];
+} STRUCT_PACKED;
+
+/* IEEE Std 802.11-2012, Table 8-65 - Beacon Request subelement IDs */
+#define WLAN_BEACON_REQUEST_SUBELEM_SSID	0
+#define WLAN_BEACON_REQUEST_SUBELEM_INFO	1
+#define WLAN_BEACON_REQUEST_SUBELEM_DETAIL	2
+#define WLAN_BEACON_REQUEST_SUBELEM_REQUEST	10
+#define WLAN_BEACON_REQUEST_SUBELEM_AP_CHANNEL	51
+#define WLAN_BEACON_REQUEST_SUBELEM_VENDOR	221
+
+/* IEEE Std 802.11-2012, Table 8-86 - Beacon Report Subelement IDs */
+#define WLAN_BEACON_REPORT_SUBELEM_FRAME_BODY	1
+#define WLAN_BEACON_REPORT_SUBELEM_VENDOR	221
+
+/* IEEE Std 802.11-2012, Figure 8-104 - Measurement Request element format */
+#define MEASUREMENT_REQUEST_MODE_PARALLEL BIT(0)
+#define MEASUREMENT_REQUEST_MODE_ENABLE BIT(1)
+#define MEASUREMENT_REQUEST_MODE_REQUEST BIT(2)
+#define MEASUREMENT_REQUEST_MODE_REPORT BIT(3)
+#define MEASUREMENT_REQUEST_MODE_DURATION_MANDATORY BIT(4)
+
+/* IEEE Std 802.11-2012 Figure 8-141 - Measurement Report Mode field */
+#define MEASUREMENT_REPORT_MODE_ACCEPT 0
+#define MEASUREMENT_REPORT_MODE_REJECT_LATE BIT(0)
+#define MEASUREMENT_REPORT_MODE_REJECT_INCAPABLE BIT(1)
+#define MEASUREMENT_REPORT_MODE_REJECT_REFUSE BIT(2)
+
 /* IEEE Std 802.11ad-2012 - Multi-band element */
 struct multi_band_ie {
 	u8 eid; /* WLAN_EID_MULTI_BAND */
-- 
1.9.1




More information about the Hostap mailing list