Updates standard references to 802.11-2012 (except for crypto).
Also adds some new symbols from 802.11-2012.
Index: ieee80211.h
===================================================================
RCS file: /cvs/src/sys/net80211/ieee80211.h,v
retrieving revision 1.51
diff -u -p -r1.51 ieee80211.h
--- ieee80211.h 8 Apr 2015 21:35:57 -0000 1.51
+++ ieee80211.h 14 Jul 2015 18:45:57 -0000
@@ -167,7 +167,7 @@ struct ieee80211_htframe_addr4 { /* 11n
"\07PROTECTED\08ORDER"
/*
- * Sequence Control field (see 7.1.3.4).
+ * Sequence Control field (see 802.11-2012 8.2.4.4).
*/
#define IEEE80211_SEQ_FRAG_MASK 0x000f
#define IEEE80211_SEQ_FRAG_SHIFT 0
@@ -178,7 +178,7 @@ struct ieee80211_htframe_addr4 { /* 11n
#define IEEE80211_MMIE_LEN 18 /* 11w */
/*
- * QoS Control field (see 7.1.3.5).
+ * QoS Control field (see 802.11-2012 8.2.4.5).
*/
#define IEEE80211_QOS_TXOP 0xff00
#define IEEE80211_QOS_AMSDU 0x0080 /* 11n */
@@ -287,7 +287,7 @@ ieee80211_get_qos(const struct ieee80211
#endif /* _KERNEL */
/*
- * Capability Information field (see 7.3.1.4).
+ * Capability Information field (see 802.11-2012 8.4.1.4).
*/
#define IEEE80211_CAPINFO_ESS 0x0001
#define IEEE80211_CAPINFO_IBSS 0x0002
@@ -301,7 +301,7 @@ ieee80211_get_qos(const struct ieee80211
#define IEEE80211_CAPINFO_QOS 0x0200
#define IEEE80211_CAPINFO_SHORT_SLOTTIME 0x0400
#define IEEE80211_CAPINFO_APSD 0x0800
-/* bit 12 is reserved */
+#define IEEE80211_CAPINFO_RADIO_MEASUREMENT 0x1000
#define IEEE80211_CAPINFO_DSSSOFDM 0x2000
#define IEEE80211_CAPINFO_DELAYED_B_ACK 0x4000
#define IEEE80211_CAPINFO_IMMEDIATE_B_ACK 0x8000
@@ -309,10 +309,10 @@ ieee80211_get_qos(const struct ieee80211
"\10\01ESS\02IBSS\03CF_POLLABLE\04CF_POLLREQ" \
"\05PRIVACY\06SHORT_PREAMBLE\07PBCC\10CHNL_AGILITY" \
"\11SPECTRUM_MGMT\12QOS\13SHORT_SLOTTIME\14APSD" \
- "\16DSSSOFDM\17DELAYED_B_ACK\20IMMEDIATE_B_ACK"
+ "\15RADIO_MEASUREMENT\16DSSSOFDM\17DELAYED_B_ACK\20IMMEDIATE_B_ACK"
/*
- * Information elements (see Table 7-26).
+ * Information element IDs (see 802.11-2012 Table 8.4.2).
*/
enum {
IEEE80211_ELEMID_SSID = 0,
@@ -323,53 +323,181 @@ enum {
IEEE80211_ELEMID_TIM = 5,
IEEE80211_ELEMID_IBSSPARMS = 6,
IEEE80211_ELEMID_COUNTRY = 7,
+ IEEE80211_ELEMID_HOPPING_PARMS = 8,
+ IEEE80211_ELEMID_HOPPING_PATTERN = 9,
+ IEEE80211_ELEMID_REQUEST = 10,
IEEE80211_ELEMID_QBSS_LOAD = 11,
IEEE80211_ELEMID_EDCAPARMS = 12,
+ IEEE80211_ELEMID_TSPEC = 13,
+ IEEE80211_ELEMID_TCLASS = 14,
+ IEEE80211_ELEMID_SCHEDULE = 15,
IEEE80211_ELEMID_CHALLENGE = 16,
/* 17-31 reserved for challenge text extension */
+ IEEE80211_ELEMID_POWER_CONSTRAINT = 32,
+ IEEE80211_ELEMID_POWER_CAP = 33,
+ IEEE80211_ELEMID_TPC_REQUEST = 34,
+ IEEE80211_ELEMID_TPC_REPORT = 35,
+ IEEE80211_ELEMID_SUPP_CHNLS = 35,
IEEE80211_ELEMID_CSA = 37, /* 11h */
+ IEEE80211_ELEMID_MEASUREMENT_REQUEST = 38, /* DFS */
+ IEEE80211_ELEMID_MEASUREMENT_REPORT = 39, /* DFS */
+ IEEE80211_ELEMID_QUIET = 40,
+ IEEE80211_ELEMID_IBSS_DFS = 41,
IEEE80211_ELEMID_ERP = 42,
+ IEEE80211_ELEMID_TS_DELAY = 43,
+ IEEE80211_ELEMID_TCLAS = 44,
IEEE80211_ELEMID_HTCAPS = 45, /* 11n */
IEEE80211_ELEMID_QOS_CAP = 46,
+ /* 47 reserved */
IEEE80211_ELEMID_RSN = 48,
+ /* 49 reserved */
IEEE80211_ELEMID_XRATES = 50,
+ IEEE80211_ELEMID_AP_CHNL_REPORT = 51,
+ IEEE80211_ELEMID_NBR_REPORT = 52,
+ IEEE80211_ELEMID_RCPI = 53,
+ IEEE80211_ELEMID_MDE = 54,
+ IEEE80211_ELEMID_FTE = 55,
IEEE80211_ELEMID_TIE = 56, /* 11r */
+ IEEE80211_ELEMID_RDE = 57,
+ IEEE80211_ELEMID_DSE = 58,
+ IEEE80211_ELEMID_SUPP_OPCLASS = 59,
+ IEEE80211_ELEMID_XCSA = 60,
IEEE80211_ELEMID_HTOP = 61, /* 11n */
+ IEEE80211_ELEMID_SECONDARY_CHANL_OFFSET = 62, /* 11n */
+ IEEE80211_ELEMID_AVG_ACCESS_DELAY = 63,
+ IEEE80211_ELEMID_ANTENNA = 64,
+ IEEE80211_ELEMID_RSNI = 65,
+ IEEE80211_ELEMID_MEASUREMENT_PILOT_TX = 66,
+ IEEE80211_ELEMID_AVAIL_CAPACITY = 67,
+ IEEE80211_ELEMID_AC_ACCESS_DELAY = 68,
+ IEEE80211_ELEMID_TIME_ADVERT = 69,
+ IEEE80211_ELEMID_RM = 70,
+ IEEE80211_ELEMID_MULTI_BSSID = 71,
+ IEEE80211_ELEMID_20_40_CBW_COEX = 72, /* 11n */
+ IEEE80211_ELEMID_20_40_CBW_INTOLERANT = 73, /* 11n */
+ IEEE80211_ELEMID_SCAN_PARAM_OVERLAP = 74,
+ IEEE80211_ELEMID_RIC = 75,
IEEE80211_ELEMID_MMIE = 76, /* 11w */
- IEEE80211_ELEMID_TPC = 150,
- IEEE80211_ELEMID_CCKM = 156,
+ IEEE80211_ELEMID_EVENT_REQUEST = 78,
+ IEEE80211_ELEMID_EVENT_REPORT = 79,
+ IEEE80211_ELEMID_DIAG_REQUEST = 80,
+ IEEE80211_ELEMID_DIAG_REPORT = 81,
+ IEEE80211_ELEMID_LOCATION_PARMS = 82,
+ IEEE80211_ELEMID_NONTX_BSSID = 83,
+ IEEE80211_ELEMID_SSID_LIST = 84,
+ IEEE80211_ELEMID_MULTI_BSSID_IDX = 85,
+ IEEE80211_ELEMID_FMS_DESC = 86,
+ IEEE80211_ELEMID_FMS_REQUEST = 87,
+ IEEE80211_ELEMID_FMS_RESPONSE = 88,
+ IEEE80211_ELEMID_QOS_TRAFFIC_CAP = 89,
+ IEEE80211_ELEMID_MAX_IDLE_PERIOD = 90,
+ IEEE80211_ELEMID_TFS_REQUEST = 91,
+ IEEE80211_ELEMID_TFS_RESPONSE = 92,
+ IEEE80211_ELEMID_WNM_SLEEP = 93,
+ IEEE80211_ELEMID_TIM_BCAST_REQUEST = 94,
+ IEEE80211_ELEMID_TIM_BCAST_RESPONSE = 95,
+ IEEE80211_ELEMID_INTERFERENCE_REPORT = 96,
+ IEEE80211_ELEMID_CHNL_USAGE = 97,
+ IEEE80211_ELEMID_TIME_ZONE = 98,
+ IEEE80211_ELEMID_DMS_REQUEST = 99,
+ IEEE80211_ELEMID_DMS_RESPONSE = 100,
+ IEEE80211_ELEMID_LINK_ID = 101,
+ IEEE80211_ELEMID_WAKE_SCHED = 102,
+ /* 103 undefined */
+ IEEE80211_ELEMID_CHNL_SWITCH_TIMING = 104,
+ IEEE80211_ELEMID_PTI_CTRL = 105,
+ IEEE80211_ELEMID_TPU_BUF_STATUS = 106,
+ IEEE80211_ELEMID_INTERWORKING = 107,
+ IEEE80211_ELEMID_ADVERT_PROTOCOL = 108,
+ IEEE80211_ELEMID_EXPEDITED_BW_REQUEST = 109,
+ IEEE80211_ELEMID_QOS_MAP_SET = 110,
+ IEEE80211_ELEMID_ROAMING_CONSORTIUM = 111,
+ IEEE80211_ELEMID_EMERGENCY_ALERT_ID = 112,
+ IEEE80211_ELEMID_MESH_CONFIG = 113,
+ IEEE80211_ELEMID_MESH_ID = 114,
+ IEEE80211_ELEMID_MESH_LINK_METRIC = 115,
+ IEEE80211_ELEMID_CONGESTION_NOTIF = 116,
+ IEEE80211_ELEMID_MESH_PEERING = 117,
+ IEEE80211_ELEMID_MESH_CHNL_SWITCH_PARMS = 118,
+ IEEE80211_ELEMID_MESH_ACK_WINDOW = 119,
+ IEEE80211_ELEMID_BEACON_TIMING = 120,
+ IEEE80211_ELEMID_MCCAOP_SETUP_REQUEST = 121,
+ IEEE80211_ELEMID_MCCAOP_SETUP_REPLY = 122,
+ IEEE80211_ELEMID_MCCAOP_ADVERT = 123,
+ IEEE80211_ELEMID_MCCAOP_TEARDOWN = 124,
+ IEEE80211_ELEMID_GANN = 125,
+ IEEE80211_ELEMID_RANN = 126,
+ IEEE80211_ELEMID_XCAPS = 127,
+ /* 128-129 reserved */
+ IEEE80211_ELEMID_PREQ = 130,
+ IEEE80211_ELEMID_PREP = 131,
+ IEEE80211_ELEMID_PERR = 132,
+ /* 133-136 reserved */
+ IEEE80211_ELEMID_PXU = 137,
+ IEEE80211_ELEMID_PXUC = 138,
+ IEEE80211_ELEMID_AUTH_MESH_PEERING_XCHG = 139,
+ IEEE80211_ELEMID_MIC = 140,
+ IEEE80211_ELEMID_DEST_URI = 141,
+ IEEE80211_ELEMID_U_APSD_COEX = 142,
+ /* 143-174 reserved */
+ IEEE80211_ELEMID_MCCAOP_ADVERT_OVIEW = 174,
+ /* 175-220 reserved */
IEEE80211_ELEMID_VENDOR = 221 /* vendor private */
+ /* 222-255 reserved */
};
/*
- * Action field category values (see Table 7-24).
+ * Action field category values (see 802.11-2012 8.4.1.11 Table 8-38).
*/
enum {
- IEEE80211_CATEG_SPECTRUM = 0,
- IEEE80211_CATEG_QOS = 1,
- IEEE80211_CATEG_DLS = 2,
- IEEE80211_CATEG_BA = 3,
- IEEE80211_CATEG_HT = 7, /* 11n */
- IEEE80211_CATEG_SA_QUERY = 8 /* 11w */
+ IEEE80211_CATEG_SPECTRUM = 0,
+ IEEE80211_CATEG_QOS = 1,
+ IEEE80211_CATEG_DLS = 2,
+ IEEE80211_CATEG_BA = 3,
+ IEEE80211_CATEG_PUB = 4,
+ IEEE80211_CATEG_RADIO_MSRMNT = 5,
+ IEEE80211_CATEG_FAST_BSS_TRANS = 6,
+ IEEE80211_CATEG_HT = 7, /* 11n */
+ IEEE80211_CATEG_SA_QUERY = 8, /* 11w */
+ IEEE80211_CATEG_PROT_DUAL_PUBLIC_ACTION = 9,
+ IEEE80211_CATEG_WNM = 10,
+ IEEE80211_CATEG_UNPROT_WNM = 11,
+ IEEE80211_CATEG_TDLS = 12,
+ IEEE80211_CATEG_MESH = 13,
+ IEEE80211_CATEG_MULTIHOP = 14,
+ IEEE80211_CATEG_SELF_PROT = 15,
+ /* 16-125 reserved */
+ IEEE80211_CATEG_PROT_VENDOR = 126,
+ IEEE80211_CATEG_VENDOR = 127,
+ /* 128-255 error */
};
/*
- * Block Ack Action field values (see Table 7-54).
+ * Block Ack Action field values (see 802.11-2012 8.5.5 Table 8-202).
*/
#define IEEE80211_ACTION_ADDBA_REQ 0
#define IEEE80211_ACTION_ADDBA_RESP 1
#define IEEE80211_ACTION_DELBA 2
+/* 3-255 reserved */
/*
- * SA Query Action field values (see Table 7-57l).
+ * SA Query Action field values (see 802.11-2012 8.5.10 Table 8-227).
*/
#define IEEE80211_ACTION_SA_QUERY_REQ 0
#define IEEE80211_ACTION_SA_QUERY_RESP 1
/*
- * HT Action field values (see Table 7-57m).
+ * HT Action field values (see 802.11-2012 8.5.12 Table 8-229).
*/
-#define IEEE80211_ACTION_NOTIFYCW 0
+#define IEEE80211_ACTION_NOTIFYCW 0
+#define IEEE80211_ACTION_SM_PWRSAVE 1
+#define IEEE80211_ACTION_PSMP 2
+#define IEEE80211_ACTION_SET_PCO_PHASE 3
+#define IEEE80211_ACTION_CSI 4
+#define IEEE80211_ACTION_NONCOMPRESSED_BF 5
+#define IEEE80211_ACTION_COMPRESSED_BF 6
+#define IEEE80211_ACTION_ASEL_IDX_FEEDBACK 7
+/* 8-255 reserved */
#define IEEE80211_RATE_BASIC 0x80
#define IEEE80211_RATE_VAL 0x7f
@@ -377,7 +505,7 @@ enum {
#define IEEE80211_RATE_MAXSIZE 15 /* max rates
we'll handle */
/*
- * BlockAck/BlockAckReq Control field (see Figure 7-13).
+ * BlockAck/BlockAckReq Control field (see 802.11-2012 8.3.1.9 Figure 8-25).
*/
#define IEEE80211_BA_ACK_POLICY 0x0001
#define IEEE80211_BA_MULTI_TID 0x0002
@@ -386,19 +514,21 @@ enum {
#define IEEE80211_BA_TID_INFO_SHIFT 12
/*
- * DELBA Parameter Set field (see Figure 7-34).
+ * DELBA Parameter Set field (see 802.11-2012 8.4.1.16 Figure 8-50).
*/
#define IEEE80211_DELBA_INITIATOR 0x0800
+#define IEEE80211_DELBA_TID_INFO_MASK 0xf000
+#define IEEE80211_DELBA_TID_INFO_SHIFT 12
/*
- * ERP information element (see 7.3.2.13).
+ * ERP information element parameters (see 802.11-2012 8.4.2.14 Figure 8-95).
*/
#define IEEE80211_ERP_NON_ERP_PRESENT 0x01
#define IEEE80211_ERP_USE_PROTECTION 0x02
#define IEEE80211_ERP_BARKER_MODE 0x04
/*
- * RSN capabilities (see 7.3.2.25.3).
+ * RSN capabilities (see 802.11-2012 8.4.2.27.4).
*/
#define IEEE80211_RSNCAP_PREAUTH 0x0001
#define IEEE80211_RSNCAP_NOPAIRWISE 0x0002
@@ -416,9 +546,10 @@ enum {
#define IEEE80211_RSNCAP_SPPAMSDUC 0x0400 /* 11n */
#define IEEE80211_RSNCAP_SPPAMSDUR 0x0800 /* 11n */
#define IEEE80211_RSNCAP_PBAC 0x1000 /* 11n */
+#define IEEE80211_RSNCAP_EXTENDED_KEYID 0x2000
/*
- * HT Capabilities Info (see 7.3.2.57.2).
+ * HT Capabilities Info (see 802.11-2012 8.4.2.58.2).
*/
#define IEEE80211_HTCAP_LDPC 0x00000001
#define IEEE80211_HTCAP_CBW20_40 0x00000002
@@ -441,7 +572,7 @@ enum {
#define IEEE80211_HTCAP_LSIGTXOPPROT 0x00008000
/*
- * HT Extended Capabilities (see 7.3.2.57.5).
+ * HT Extended Capabilities (see 802.11-2012 8.4.2.58.5).
*/
#define IEEE80211_HTXCAP_PCO 0x0001
#define IEEE80211_HTXCAP_PCOTT_MASK 0x0006
@@ -460,27 +591,52 @@ enum {
/* Bits 12-15 are reserved. */
/*
- * Transmit Beamforming (TxBF) Capabilities (see 7.3.2.57.6).
+ * Transmit Beamforming (TxBF) Capabilities (see 802.11-2012 8.4.2.58.6).
*/
-#define IEEE80211_TXBFCAP_IMPLICIT_RX 0x00000001
-#define IEEE80211_TXBFCAP_RSSC 0x00000002
-#define IEEE80211_TXBFCAP_TSSC 0x00000004
-#define IEEE80211_TXBFCAP_RNDP 0x00000008
-#define IEEE80211_TXBFCAP_TNDP 0x00000010
-#define IEEE80211_TXBFCAP_IMPLICIT_TX 0x00000020
-#define IEEE80211_TXBFCAP_CALIB_MASK 0x000000c0
-#define IEEE80211_TXBFCAP_CALIB_SHIFT 6
-#define IEEE80211_TXBFCAP_TX_CSI 0x00000100
+#define IEEE80211_TXBFCAP_IMPLICIT_RX 0x00000001
+#define IEEE80211_TXBFCAP_RSSC 0x00000002
+#define IEEE80211_TXBFCAP_TSSC 0x00000004
+#define IEEE80211_TXBFCAP_RNDP 0x00000008
+#define IEEE80211_TXBFCAP_TNDP 0x00000010
+#define IEEE80211_TXBFCAP_IMPLICIT_TX 0x00000020
+#define IEEE80211_TXBFCAP_CALIB_MASK 0x000000c0
+#define IEEE80211_TXBFCAP_CALIB_SHIFT 6
+#define IEEE80211_TXBFCAP_TX_CSI 0x00000100
+#define IEEE80211_TXBFCAP_EXPLICIT_NSC 0x00000200
+#define IEEE80211_TXBFCAP_EXPLICIT_CSC 0x00000400
+#define IEEE80211_TXBFCAP_CSI_FB_DELAYED 0x00000800
+#define IEEE80211_TXBFCAP_CSI_FB_IMMEDIATE 0x00001000
+#define IEEE80211_TXBFCAP_EXPLICIT_NB_FB_DELAYED 0x00002000
+#define IEEE80211_TXBFCAP_EXPLICIT_NB_FB_IMMEDIATE 0x00004000
+#define IEEE80211_TXBFCAP_EXPLICIT_CB_FB_DELAYED 0x00008000
+#define IEEE80211_TXBFCAP_EXPLICIT_CB_FB_IMMEDIATE 0x00010000
+#define IEEE80211_TXBFCAP_MINIMAL_GROUPING_1_2 0x00020000
+#define IEEE80211_TXBFCAP_MINIMAL_GROUPING_1_4 0x00040000
+#define IEEE80211_TXBFCAP_CSI_NUM_ANT_MASK 0x00180000
+#define IEEE80211_TXBFCAP_CSI_NUM_ANT_SHIFT 19
+#define IEEE80211_TXBFCAP_NS_NUM_ANT_MASK 0x00600000
+#define IEEE80211_TXBFCAP_NS_NUM_ANT_SHIFT 21
+#define IEEE80211_TXBFCAP_CS_NUM_ANT_MASK 0x01800000
+#define IEEE80211_TXBFCAP_CS_NUM_ANT_SHIFT 23
+#define IEEE80211_TXBFCAP_CSI_NUM_ROWS_MASK 0x06000000
+#define IEEE80211_TXBFCAP_CSI_NUM_ROWS_SHIFT 25
+#define IEEE80211_TXBFCAP_CHANL_ESTIMATE_MASK 0x18000000
+#define IEEE80211_TXBFCAP_CHANL_ESTIMATE_SHIFT 27
/*
- * Antenna Selection (ASEL) Capability (see 7.3.2.57.7).
+ * Antenna Selection (ASEL) Capability (see 802.11-2012 8.4.2.58.7).
*/
#define IEEE80211_ASELCAP_ASEL 0x01
-#define IEEE80211_ASELCAP_CSIFB 0x02
+#define IEEE80211_ASELCAP_CSIFB_TX 0x02
+#define IEEE80211_ASELCAP_ANT_IDX_FB_TX 0x04
+#define IEEE80211_ASELCAP_CSIFB 0x08
+#define IEEE80211_ASELCAP_ANT_IDX_FB 0x10
+#define IEEE80211_ASELCAP_ASEL_RX 0x20
+#define IEEE80211_ASELCAP_TX_SOUND_PPDU 0x20
/* Bit 7 is reserved. */
/*
- * HT Operation element (see 7.3.2.58).
+ * HT Operation element (see 802.11-2012 8.4.2.59).
*/
/* Byte 1. */
#define IEEE80211_HTOP0_SCO_MASK 0x03
@@ -490,15 +646,13 @@ enum {
#define IEEE80211_HTOP0_SCO_SCB 3
#define IEEE80211_HTOP0_CHW 0x04
#define IEEE80211_HTOP0_RIFS 0x08
-#define IEEE80211_HTOP0_SPSMP 0x10
-#define IEEE80211_HTOP0_SIG_MASK 0xe0
-#define IEEE80211_HTOP0_SIG_SHIFT 5
+/* bits 4-7 reserved */
/* Bytes 2-3. */
#define IEEE80211_HTOP1_PROT_MASK 0x0003
#define IEEE80211_HTOP1_PROT_SHIFT 0
-#define IEEE80211_HTOP1_NONGTSTA 0x0004
+#define IEEE80211_HTOP1_NONGF_STA 0x0004
/* Bit 3 is reserved. */
-#define IEEE80211_HTOP1_OBSS_NONHTSTA 0x0010
+#define IEEE80211_HTOP1_OBSS_NONHT_STA 0x0010
/* Bits 5-15 are reserved. */
/* Bytes 4-5. */
/* Bits 0-5 are reserved. */