Patchwork [1/3] wpa_supplicant: Define 20/40 BSS Coexistence IEs

login
register
mail settings
Submitter Rajkumar Manoharan
Date April 24, 2012, 1:08 p.m.
Message ID <1335272917-7503-1-git-send-email-rmanohar@qca.qualcomm.com>
Download mbox | patch
Permalink /patch/154673/
State Accepted
Headers show

Comments

Rajkumar Manoharan - April 24, 2012, 1:08 p.m.
This patch defines 20/40 BSS Intolerant Channel Report IE
(IEEE 802.11-2012 8.4.2.60) and 20/40 BSS Coexistence element
(IEEE 802.11-2012 8.4.2.62).

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
---
 src/common/ieee802_11_defs.h |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
Jouni Malinen - May 3, 2012, 1 p.m.
On Tue, Apr 24, 2012 at 06:38:35PM +0530, Rajkumar Manoharan wrote:
> This patch defines 20/40 BSS Intolerant Channel Report IE
> (IEEE 802.11-2012 8.4.2.60) and 20/40 BSS Coexistence element
> (IEEE 802.11-2012 8.4.2.62).

Thanks! I applied these patches. I merged the second and third patch
into a single commit to avoid leaving a step where coex reports are sent
too frequently. In addition, I did number of changes to fix couple of
issues as discussed in irc.

Patch

diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h
index 3bef006..b66017c 100644
--- a/src/common/ieee802_11_defs.h
+++ b/src/common/ieee802_11_defs.h
@@ -254,6 +254,7 @@ 
 #define WLAN_ACTION_VENDOR_SPECIFIC 127
 
 /* Public action codes */
+#define WLAN_PA_20_40_BSS_COEX 0
 #define WLAN_PA_VENDOR_SPECIFIC 9
 #define WLAN_PA_GAS_INITIAL_REQ 10
 #define WLAN_PA_GAS_INITIAL_RESP 11
@@ -915,4 +916,24 @@  enum wnm_action {
 #define WNM_BSS_TM_REQ_BSS_TERMINATION_INCLUDED BIT(3)
 #define WNM_BSS_TM_REQ_ESS_DISASSOC_IMMINENT BIT(4)
 
+/* IEEE Std 802.11-2012, 8.4.2.62 20/40 BSS Coexistence element */
+#define WLAN_20_40_BSS_COEX_INFO_REQ            BIT(0)
+#define WLAN_20_40_BSS_COEX_40MHZ_INTOL         BIT(1)
+#define WLAN_20_40_BSS_COEX_20MHZ_WIDTH_REQ     BIT(2)
+#define WLAN_20_40_BSS_COEX_OBSS_EXEMPT_REQ     BIT(3)
+#define WLAN_20_40_BSS_COEX_OBSS_EXEMPT_GRNT    BIT(4)
+
+struct ieee80211_2040_bss_coex_ie {
+	u8 element_id;
+	u8 length;
+	u8 coex_param;
+} STRUCT_PACKED;
+
+struct ieee80211_2040_intol_chan_report {
+	u8 element_id;
+	u8 length;
+	u8 op_class;
+	u8 variable[0];	/* Channel List */
+} STRUCT_PACKED;
+
 #endif /* IEEE802_11_DEFS_H */