Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F116036896
D36410.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D36410.diff
View Options
diff --git a/sys/net80211/ieee80211.h b/sys/net80211/ieee80211.h
--- a/sys/net80211/ieee80211.h
+++ b/sys/net80211/ieee80211.h
@@ -117,52 +117,80 @@
#define IEEE80211_FC0_VERSION_0 0x00
#define IEEE80211_FC0_TYPE_MASK 0x0c
#define IEEE80211_FC0_TYPE_SHIFT 2
-#define IEEE80211_FC0_TYPE_MGT 0x00
-#define IEEE80211_FC0_TYPE_CTL 0x04
-#define IEEE80211_FC0_TYPE_DATA 0x08
+#define IEEE80211_FC0_TYPE_MGT 0x00 /* Management */
+#define IEEE80211_FC0_TYPE_CTL 0x04 /* Control */
+#define IEEE80211_FC0_TYPE_DATA 0x08 /* Data */
+#define IEEE80211_FC0_TYPE_EXT 0x0c /* Extension */
#define IEEE80211_FC0_SUBTYPE_MASK 0xf0
#define IEEE80211_FC0_SUBTYPE_SHIFT 4
-/* for TYPE_MGT */
-#define IEEE80211_FC0_SUBTYPE_ASSOC_REQ 0x00
-#define IEEE80211_FC0_SUBTYPE_ASSOC_RESP 0x10
-#define IEEE80211_FC0_SUBTYPE_REASSOC_REQ 0x20
-#define IEEE80211_FC0_SUBTYPE_REASSOC_RESP 0x30
-#define IEEE80211_FC0_SUBTYPE_PROBE_REQ 0x40
-#define IEEE80211_FC0_SUBTYPE_PROBE_RESP 0x50
-#define IEEE80211_FC0_SUBTYPE_TIMING_ADV 0x60
-#define IEEE80211_FC0_SUBTYPE_BEACON 0x80
-#define IEEE80211_FC0_SUBTYPE_ATIM 0x90
-#define IEEE80211_FC0_SUBTYPE_DISASSOC 0xa0
-#define IEEE80211_FC0_SUBTYPE_AUTH 0xb0
-#define IEEE80211_FC0_SUBTYPE_DEAUTH 0xc0
-#define IEEE80211_FC0_SUBTYPE_ACTION 0xd0
-#define IEEE80211_FC0_SUBTYPE_ACTION_NOACK 0xe0
-/* for TYPE_CTL */
-#define IEEE80211_FC0_SUBTYPE_TRIGGER 0x20
-#define IEEE80211_FC0_SUBTYPE_CONTROL_WRAP 0x70
-#define IEEE80211_FC0_SUBTYPE_BAR 0x80
-#define IEEE80211_FC0_SUBTYPE_BA 0x90
-#define IEEE80211_FC0_SUBTYPE_PS_POLL 0xa0
-#define IEEE80211_FC0_SUBTYPE_RTS 0xb0
-#define IEEE80211_FC0_SUBTYPE_CTS 0xc0
-#define IEEE80211_FC0_SUBTYPE_ACK 0xd0
-#define IEEE80211_FC0_SUBTYPE_CF_END 0xe0
-#define IEEE80211_FC0_SUBTYPE_CF_END_ACK 0xf0
-/* for TYPE_DATA (bit combination) */
-#define IEEE80211_FC0_SUBTYPE_DATA 0x00
-#define IEEE80211_FC0_SUBTYPE_CF_ACK 0x10
-#define IEEE80211_FC0_SUBTYPE_CF_POLL 0x20
-#define IEEE80211_FC0_SUBTYPE_CF_ACPL 0x30
-#define IEEE80211_FC0_SUBTYPE_NODATA 0x40
-#define IEEE80211_FC0_SUBTYPE_CFACK 0x50
-#define IEEE80211_FC0_SUBTYPE_CFPOLL 0x60
-#define IEEE80211_FC0_SUBTYPE_CF_ACK_CF_ACK 0x70
-#define IEEE80211_FC0_SUBTYPE_QOS_DATA 0x80
-#define IEEE80211_FC0_SUBTYPE_QOS_DATA_CFACK 0x90
-#define IEEE80211_FC0_SUBTYPE_QOS_DATA_CFPOLL 0xa0
-#define IEEE80211_FC0_SUBTYPE_QOS_DATA_CFACKPOLL 0xb0
-#define IEEE80211_FC0_SUBTYPE_QOS_NULL 0xc0
+/* 802.11-2020 Table 9-1-Valid type and subtype combinations */
+/* For type 00 Management (IEEE80211_FC0_TYPE_MGT) */
+#define IEEE80211_FC0_SUBTYPE_ASSOC_REQ 0x00 /* Association Request */
+#define IEEE80211_FC0_SUBTYPE_ASSOC_RESP 0x10 /* Association Response */
+#define IEEE80211_FC0_SUBTYPE_REASSOC_REQ 0x20 /* Reassociation Request */
+#define IEEE80211_FC0_SUBTYPE_REASSOC_RESP 0x30 /* Reassociation Response */
+#define IEEE80211_FC0_SUBTYPE_PROBE_REQ 0x40 /* Probe Request */
+#define IEEE80211_FC0_SUBTYPE_PROBE_RESP 0x50 /* Probe Response */
+#define IEEE80211_FC0_SUBTYPE_TIMING_ADV 0x60 /* Timing Advertisement */
+/* 0111 Reserved 0x70 */
+#define IEEE80211_FC0_SUBTYPE_BEACON 0x80 /* Beacon */
+#define IEEE80211_FC0_SUBTYPE_ATIM 0x90 /* ATIM */
+#define IEEE80211_FC0_SUBTYPE_DISASSOC 0xa0 /* Disassociation */
+#define IEEE80211_FC0_SUBTYPE_AUTH 0xb0 /* Authentication */
+#define IEEE80211_FC0_SUBTYPE_DEAUTH 0xc0 /* Deauthentication */
+#define IEEE80211_FC0_SUBTYPE_ACTION 0xd0 /* Action */
+#define IEEE80211_FC0_SUBTYPE_ACTION_NOACK 0xe0 /* Action No Ack */
+/* 1111 Reserved 0xf0 */
+/* For type 01 Control (IEEE80211_FC0_TYPE_CTL) */
+/* 0000-0001 Reserved 0x00-0x10 */
+#define IEEE80211_FC0_SUBTYPE_TRIGGER 0x20 /* Trigger, 80211ax-2021 */
+#define IEEE80211_FC0_SUBTYPE_TACK 0x30 /* TACK */
+#define IEEE80211_FC0_SUBTYPE_BF_REPORT_POLL 0x40 /* Beamforming Report Poll */
+#define IEEE80211_FC0_SUBTYPE_VHT_HE_NDP 0x50 /* VHT/HE NDP Announcement, 80211ac/ax-2013/2021 */
+#define IEEE80211_FC0_SUBTYPE_CTL_EXT 0x60 /* Control Frame Extension */
+#define IEEE80211_FC0_SUBTYPE_CONTROL_WRAP 0x70 /* Control Wrapper */
+#define IEEE80211_FC0_SUBTYPE_BAR 0x80 /* Block Ack Request (BlockAckReq) */
+#define IEEE80211_FC0_SUBTYPE_BA 0x90 /* Block Ack (BlockAck) */
+#define IEEE80211_FC0_SUBTYPE_PS_POLL 0xa0 /* PS-Poll */
+#define IEEE80211_FC0_SUBTYPE_RTS 0xb0 /* RTS */
+#define IEEE80211_FC0_SUBTYPE_CTS 0xc0 /* CTS */
+#define IEEE80211_FC0_SUBTYPE_ACK 0xd0 /* Ack */
+#define IEEE80211_FC0_SUBTYPE_CF_END 0xe0 /* CF-End */
+#define IEEE80211_FC0_SUBTYPE_CF_END_ACK 0xf0 /* 1111 Reserved - what was CF_END_ACK? */
+/* For type 10 Data (IEEE80211_FC0_TYPE_DATA) */
+#define IEEE80211_FC0_SUBTYPE_DATA 0x00 /* Data */
+/* 0001-0011 Reserved 0x10-0x30 */ /* Were: CF_ACK, CF_POLL, CF_ACPL */
+#define IEEE80211_FC0_SUBTYPE_NODATA 0x40 /* Null */
+/* 0101-0111 Reserved 0x50-0x70 */ /* Were: CFACK, CFPOLL, CF_ACK_CF_ACK */
+#define IEEE80211_FC0_SUBTYPE_QOS_DATA 0x80 /* QoS Data */
+#define IEEE80211_FC0_SUBTYPE_QOS_DATA_CFACK 0x90 /* QoS Data +CF-Ack */
+#define IEEE80211_FC0_SUBTYPE_QOS_DATA_CFPOLL 0xa0 /* QoS Data +CF-Poll */
+#define IEEE80211_FC0_SUBTYPE_QOS_DATA_CFACKPOLL 0xb0 /* QoS Data +CF-Ack +CF-Poll */
+#define IEEE80211_FC0_SUBTYPE_QOS_NULL 0xc0 /* QoS Null */
+/* 1101 Reserved 0xd0 */
+#define IEEE80211_FC0_SUBTYPE_QOS_CFPOLL 0xe0 /* QoS CF-Poll */
+#define IEEE80211_FC0_SUBTYPE_QOS_CFACKPOLL 0xf0 /* QoS CF-Ack +CF-Poll */
+/* For type 11 Extension (IEEE80211_FC0_TYPE_EXT) */
+#define IEEE80211_FC0_SUBTYPE_DMG_BEACON 0x00 /* DMG Beacon */
+#define IEEE80211_FC0_SUBTYPE_S1G_BEACON 0x10 /* S1G Beacon */
+/* 0010-1111 Reserved 0x20-0xff */
+
+/* 802.11-2020 Table 9-2-Control Frame Extension */
+/* Reusing B11..B8, part of FC1 */
+#define IEEE80211_CTL_EXT_SECTOR_ACK 0x00 /* Sector Ack, 80211ay-2021 */
+#define IEEE80211_CTL_EXT_BA_SCHED 0x01 /* Block Ack Schedule, 80211ay-2021 */
+#define IEEE80211_CTL_EXT_POLL 0x02 /* Poll */
+#define IEEE80211_CTL_EXT_SPR 0x03 /* SPR */
+#define IEEE80211_CTL_EXT_GRANT 0x04 /* Grant */
+#define IEEE80211_CTL_EXT_DMG_CTS 0x05 /* DMG CTS */
+#define IEEE80211_CTL_EXT_DMG_DTS 0x06 /* DMG DTS */
+#define IEEE80211_CTL_EXT_GRANT_ACK 0x07 /* Grant Ack */
+#define IEEE80211_CTL_EXT_SSW 0x08 /* SSW */
+#define IEEE80211_CTL_EXT_SSW_FBACK 0x09 /* SSW-Feedback */
+#define IEEE80211_CTL_EXT_SSW_ACK 0x0a /* SSW-Ack */
+#define IEEE80211_CTL_EXT_TDD_BF 0x0b /* TDD Beamforming, 80211ay-2021 */
+/* 1100-1111 Reserved 0xc-0xf */
#define IEEE80211_IS_MGMT(wh) \
(!! (((wh)->i_fc[0] & IEEE80211_FC0_TYPE_MASK) \
@@ -173,6 +201,9 @@
#define IEEE80211_IS_DATA(wh) \
(!! (((wh)->i_fc[0] & IEEE80211_FC0_TYPE_MASK) \
== IEEE80211_FC0_TYPE_DATA))
+#define IEEE80211_IS_EXT(wh) \
+ (!! (((wh)->i_fc[0] & IEEE80211_FC0_TYPE_MASK) \
+ == IEEE80211_FC0_TYPE_EXT))
#define IEEE80211_FC0_QOSDATA \
(IEEE80211_FC0_TYPE_DATA|IEEE80211_FC0_SUBTYPE_QOS_DATA|IEEE80211_FC0_VERSION_0)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, May 2, 10:11 PM (13 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17913269
Default Alt Text
D36410.diff (6 KB)
Attached To
Mode
D36410: net80211: update (parts of) frame types and subtypes and annotate
Attached
Detach File
Event Timeline
Log In to Comment