git: fa02d9fceab7 - main - net80211: add the beginning of the extfield information elements (IE ext)
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 05 Jun 2025 14:34:13 UTC
The branch main has been updated by bz:
URL: https://cgit.FreeBSD.org/src/commit/?id=fa02d9fceab7d452d5b3312a89b4e7b95529edcd
commit fa02d9fceab7d452d5b3312a89b4e7b95529edcd
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-06-02 16:00:37 +0000
Commit: Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-06-05 14:33:50 +0000
net80211: add the beginning of the extfield information elements (IE ext)
The original list of IEs got expanded from TLV to TLextTV.
If the T matches 255 then we have a second list of IEs where the
meaning of TL stays the same. That means the 1 octet extT is part
of the length and the value starts at ie+3.
Start populating the list with IEEE802.11-2020 and 802.11ax-2021
values.
They will be initially used to start decoding some of the announced IEs
for ifconfig [-v] list (scan|sta). That should help users with
AX-enabled APs to see this (rather than no or UNKNOWN_ELEMID_255 and
make debugging easier once we implement 11ax.
Sposored by: The FreeBSD Foundation
MFC after: 3 days
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D50674
---
sys/net80211/ieee80211.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
diff --git a/sys/net80211/ieee80211.h b/sys/net80211/ieee80211.h
index bab74d0ca41c..cca721e6b54e 100644
--- a/sys/net80211/ieee80211.h
+++ b/sys/net80211/ieee80211.h
@@ -1102,6 +1102,7 @@ struct ieee80211_ie_vht_txpwrenv {
* Management information element payloads.
*
* 802.11-2020 Table 9-92 (Element IDs).
+ * 802.11ax-2021
*/
enum {
@@ -1343,6 +1344,74 @@ enum {
IEEE80211_ELEMID_EXTFIELD = 255
};
+enum ieee80211_elemid_ext {
+ IEEE80211_ELEMID_EXT_ASSOC_DELAY_INFO = 1,
+ IEEE80211_ELEMID_EXT_FILS_REQ_PARAMS = 2,
+ IEEE80211_ELEMID_EXT_FILS_KEY_CONFIRM = 3,
+ IEEE80211_ELEMID_EXT_FILS_SESSION = 4,
+ IEEE80211_ELEMID_EXT_FILS_HLP_CONTAINER = 5,
+ IEEE80211_ELEMID_EXT_FILS_IP_ADDR_ASSIGNMENT = 6,
+ IEEE80211_ELEMID_EXT_KEY_DELIVERY = 7,
+ IEEE80211_ELEMID_EXT_FILS_WRAPPED_DATA = 8,
+ IEEE80211_ELEMID_EXT_FTM_SYNC_INFO = 9,
+ IEEE80211_ELEMID_EXT_EXT_REQ = 10,
+ IEEE80211_ELEMID_EXT_EST_SERVICE_PARAM_INBOUND = 11,
+ IEEE80211_ELEMID_EXT_FILS_PUBLIC_KEY = 12,
+ IEEE80211_ELEMID_EXT_FILS_NONCE = 13,
+ IEEE80211_ELEMID_EXT_FUTURE_CHAN_GUIDANCE = 14,
+ IEEE80211_ELEMID_EXT_SERVICE_HINT = 15,
+ IEEE80211_ELEMID_EXT_SERVICE_HASH = 16,
+ IEEE80211_ELEMID_EXT_CDMG_CAPA = 17,
+ IEEE80211_ELEMID_EXT_DYN_BW_CTRL = 18,
+ IEEE80211_ELEMID_EXT_CDMG_EXT_SCHEDULE = 19,
+ IEEE80211_ELEMID_EXT_SSW_REPORT = 20,
+ IEEE80211_ELEMID_EXT_CLUSTER_PROBE = 21,
+ IEEE80211_ELEMID_EXT_EXT_CLUSTER_REPORT = 22,
+ IEEE80211_ELEMID_EXT_CLUSTER_SW_ANNOUNCEMENT = 23,
+ IEEE80211_ELEMID_EXT_ENHANCED_BEAM_TRACKING = 24,
+ IEEE80211_ELEMID_EXT_SPSH_REPORT = 25,
+ IEEE80211_ELEMID_EXT_CLUSTER_INTERF_ASSESS = 26,
+ IEEE80211_ELEMID_EXT_CMMG_CAPA = 27,
+ IEEE80211_ELEMID_EXT_CMMG_OPER = 28,
+ IEEE80211_ELEMID_EXT_CMMG_OPMODE_NOTIF = 29,
+ IEEE80211_ELEMID_EXT_CMMG_LINK_MARGIN = 30,
+ IEEE80211_ELEMID_EXT_CMMG_LINK_ADAP_ACK = 31,
+ /* 32 reserved. */
+ IEEE80211_ELEMID_EXT_PASSWORD_ID = 33,
+ IEEE80211_ELEMID_EXT_GLK_GCR_PARAM_SET = 34,
+ IEEE80211_ELEMID_EXT_HE_CAPA = 35,
+ IEEE80211_ELEMID_EXT_HE_OPER = 36,
+ IEEE80211_ELEMID_EXT_UORA_PARAM_SET = 37,
+ IEEE80211_ELEMID_EXT_MU_EDCA_PARAM_SET = 38,
+ IEEE80211_ELEMID_EXT_SPATIAL_REUSE_PARAM_SET = 39,
+ IEEE80211_ELEMID_EXT_GAS_EXTENSION = 40,
+ IEEE80211_ELEMID_EXT_NDP_FEEDB_REPORT_PARAM = 41,
+ IEEE80211_ELEMID_EXT_BSS_COLOR_CHG_ANNOUNCE = 42,
+ IEEE80211_ELEMID_EXT_QUIET_TIMME_PERIOD = 43,
+ IEEE80211_ELEMID_EXT_VENDOR_SPECIFIC_REQ_ELEM = 44,
+ IEEE80211_ELEMID_EXT_ESS_REPORT = 45,
+ IEEE80211_ELEMID_EXT_OPS = 46,
+ IEEE80211_ELEMID_EXT_HE_BSS_LOAD = 47,
+ /* 48-51 reserved. */
+ IEEE80211_ELEMID_EXT_MAC_CH_SW_TIME = 52,
+ IEEE80211_ELEMID_EXT_EST_SERVICE_PARAM_OUTBOUND = 53,
+ IEEE80211_ELEMID_EXT_OCI = 54,
+ IEEE80211_ELEMID_EXT_MULTI_BSSID_CONFIG = 55,
+ IEEE80211_ELEMID_EXT_NON_INHERITANCE = 56,
+ IEEE80211_ELEMID_EXT_KNOWN_BSSID = 57,
+ IEEE80211_ELEMID_EXT_SHORT_SSID_LIST = 58,
+ IEEE80211_ELEMID_EXT_HE_6GHZ_BAND_CAPA = 59,
+ IEEE80211_ELEMID_EXT_ULMU_POWER_CAAP = 60,
+ /* 61-87 reserved. */
+ IEEE80211_ELEMID_EXT_MSCS_DESCRIPTOR = 88,
+ IEEE80211_ELEMID_EXT_TCLAS_MASK = 89,
+ IEEE80211_ELEMID_EXT_SUPPL_CLASS_2_CAPA = 90,
+ IEEE80211_ELEMID_EXT_OCT_SOURCE = 91,
+ IEEE80211_ELEMID_EXT_REJECTED_GROUPS = 92,
+ IEEE80211_ELEMID_EXT_ANTI_CLOGGING_TAOKEN_CONTAINER = 93,
+ /* 94-255 reserved. */
+};
+
struct ieee80211_tim_ie {
uint8_t tim_ie; /* IEEE80211_ELEMID_TIM */
uint8_t tim_len;