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
Reviewed by:	adrian
Differential Revision: https://reviews.freebsd.org/D50674

(cherry picked from commit fa02d9fceab7d452d5b3312a89b4e7b95529edcd)
This commit is contained in:
Bjoern A. Zeeb 2025-06-02 16:00:37 +00:00 committed by Franco Fichtner
parent 51da2f5873
commit 3de5f52e35

View file

@ -1302,6 +1302,7 @@ struct ieee80211_he_6ghz_capa {
* Management information element payloads.
*
* 802.11-2020 Table 9-92 (Element IDs).
* 802.11ax-2021
*/
enum {
@ -1543,6 +1544,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;