#ifndef LINUX_IEEE80211_H
#define LINUX_IEEE80211_H
#include <linux/types.h>
#include <linux/if_ether.h>
#include <linux/etherdevice.h>
#include <linux/bitfield.h>
#include <asm/byteorder.h>
#include <asm/unaligned.h>
#define FCS_LEN …
#define IEEE80211_FCTL_VERS …
#define IEEE80211_FCTL_FTYPE …
#define IEEE80211_FCTL_STYPE …
#define IEEE80211_FCTL_TODS …
#define IEEE80211_FCTL_FROMDS …
#define IEEE80211_FCTL_MOREFRAGS …
#define IEEE80211_FCTL_RETRY …
#define IEEE80211_FCTL_PM …
#define IEEE80211_FCTL_MOREDATA …
#define IEEE80211_FCTL_PROTECTED …
#define IEEE80211_FCTL_ORDER …
#define IEEE80211_FCTL_CTL_EXT …
#define IEEE80211_SCTL_FRAG …
#define IEEE80211_SCTL_SEQ …
#define IEEE80211_FTYPE_MGMT …
#define IEEE80211_FTYPE_CTL …
#define IEEE80211_FTYPE_DATA …
#define IEEE80211_FTYPE_EXT …
#define IEEE80211_STYPE_ASSOC_REQ …
#define IEEE80211_STYPE_ASSOC_RESP …
#define IEEE80211_STYPE_REASSOC_REQ …
#define IEEE80211_STYPE_REASSOC_RESP …
#define IEEE80211_STYPE_PROBE_REQ …
#define IEEE80211_STYPE_PROBE_RESP …
#define IEEE80211_STYPE_BEACON …
#define IEEE80211_STYPE_ATIM …
#define IEEE80211_STYPE_DISASSOC …
#define IEEE80211_STYPE_AUTH …
#define IEEE80211_STYPE_DEAUTH …
#define IEEE80211_STYPE_ACTION …
#define IEEE80211_STYPE_TRIGGER …
#define IEEE80211_STYPE_CTL_EXT …
#define IEEE80211_STYPE_BACK_REQ …
#define IEEE80211_STYPE_BACK …
#define IEEE80211_STYPE_PSPOLL …
#define IEEE80211_STYPE_RTS …
#define IEEE80211_STYPE_CTS …
#define IEEE80211_STYPE_ACK …
#define IEEE80211_STYPE_CFEND …
#define IEEE80211_STYPE_CFENDACK …
#define IEEE80211_STYPE_DATA …
#define IEEE80211_STYPE_DATA_CFACK …
#define IEEE80211_STYPE_DATA_CFPOLL …
#define IEEE80211_STYPE_DATA_CFACKPOLL …
#define IEEE80211_STYPE_NULLFUNC …
#define IEEE80211_STYPE_CFACK …
#define IEEE80211_STYPE_CFPOLL …
#define IEEE80211_STYPE_CFACKPOLL …
#define IEEE80211_STYPE_QOS_DATA …
#define IEEE80211_STYPE_QOS_DATA_CFACK …
#define IEEE80211_STYPE_QOS_DATA_CFPOLL …
#define IEEE80211_STYPE_QOS_DATA_CFACKPOLL …
#define IEEE80211_STYPE_QOS_NULLFUNC …
#define IEEE80211_STYPE_QOS_CFACK …
#define IEEE80211_STYPE_QOS_CFPOLL …
#define IEEE80211_STYPE_QOS_CFACKPOLL …
#define IEEE80211_STYPE_DMG_BEACON …
#define IEEE80211_STYPE_S1G_BEACON …
#define IEEE80211_S1G_BCN_NEXT_TBTT …
#define IEEE80211_S1G_1MHZ_NDP_BITS …
#define IEEE80211_S1G_1MHZ_NDP_BYTES …
#define IEEE80211_S1G_2MHZ_NDP_BITS …
#define IEEE80211_S1G_2MHZ_NDP_BYTES …
#define IEEE80211_NDP_FTYPE_CTS …
#define IEEE80211_NDP_FTYPE_CF_END …
#define IEEE80211_NDP_FTYPE_PS_POLL …
#define IEEE80211_NDP_FTYPE_ACK …
#define IEEE80211_NDP_FTYPE_PS_POLL_ACK …
#define IEEE80211_NDP_FTYPE_BA …
#define IEEE80211_NDP_FTYPE_BF_REPORT_POLL …
#define IEEE80211_NDP_FTYPE_PAGING …
#define IEEE80211_NDP_FTYPE_PREQ …
#define SM64(f, v) …
#define IEEE80211_NDP_FTYPE …
#define IEEE80211_NDP_FTYPE_S …
#define IEEE80211_NDP_1M_PREQ_ANO …
#define IEEE80211_NDP_1M_PREQ_ANO_S …
#define IEEE80211_NDP_1M_PREQ_CSSID …
#define IEEE80211_NDP_1M_PREQ_CSSID_S …
#define IEEE80211_NDP_1M_PREQ_RTYPE …
#define IEEE80211_NDP_1M_PREQ_RTYPE_S …
#define IEEE80211_NDP_1M_PREQ_RSV …
#define IEEE80211_NDP_1M_PREQ_RSV …
#define IEEE80211_NDP_2M_PREQ_ANO …
#define IEEE80211_NDP_2M_PREQ_ANO_S …
#define IEEE80211_NDP_2M_PREQ_CSSID …
#define IEEE80211_NDP_2M_PREQ_CSSID_S …
#define IEEE80211_NDP_2M_PREQ_RTYPE …
#define IEEE80211_NDP_2M_PREQ_RTYPE_S …
#define IEEE80211_ANO_NETTYPE_WILD …
#define IEEE80211_S1G_BCN_NEXT_TBTT …
#define IEEE80211_CTL_EXT_POLL …
#define IEEE80211_CTL_EXT_SPR …
#define IEEE80211_CTL_EXT_GRANT …
#define IEEE80211_CTL_EXT_DMG_CTS …
#define IEEE80211_CTL_EXT_DMG_DTS …
#define IEEE80211_CTL_EXT_SSW …
#define IEEE80211_CTL_EXT_SSW_FBACK …
#define IEEE80211_CTL_EXT_SSW_ACK …
#define IEEE80211_SN_MASK …
#define IEEE80211_MAX_SN …
#define IEEE80211_SN_MODULO …
#define IEEE80211_PV1_FCTL_VERS …
#define IEEE80211_PV1_FCTL_FTYPE …
#define IEEE80211_PV1_FCTL_STYPE …
#define IEEE80211_PV1_FCTL_FROMDS …
#define IEEE80211_PV1_FCTL_MOREFRAGS …
#define IEEE80211_PV1_FCTL_PM …
#define IEEE80211_PV1_FCTL_MOREDATA …
#define IEEE80211_PV1_FCTL_PROTECTED …
#define IEEE80211_PV1_FCTL_END_SP …
#define IEEE80211_PV1_FCTL_RELAYED …
#define IEEE80211_PV1_FCTL_ACK_POLICY …
#define IEEE80211_PV1_FCTL_CTL_EXT …
static inline bool ieee80211_sn_less(u16 sn1, u16 sn2)
{ … }
static inline bool ieee80211_sn_less_eq(u16 sn1, u16 sn2)
{ … }
static inline u16 ieee80211_sn_add(u16 sn1, u16 sn2)
{ … }
static inline u16 ieee80211_sn_inc(u16 sn)
{ … }
static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2)
{ … }
#define IEEE80211_SEQ_TO_SN(seq) …
#define IEEE80211_SN_TO_SEQ(ssn) …
#define IEEE80211_MAX_FRAG_THRESHOLD …
#define IEEE80211_MAX_RTS_THRESHOLD …
#define IEEE80211_MAX_AID …
#define IEEE80211_MAX_AID_S1G …
#define IEEE80211_MAX_TIM_LEN …
#define IEEE80211_MAX_MESH_PEERINGS …
#define IEEE80211_MAX_DATA_LEN …
#define IEEE80211_MAX_DATA_LEN_DMG …
#define IEEE80211_MAX_FRAME_LEN …
#define IEEE80211_MAX_MPDU_LEN_HT_BA …
#define IEEE80211_MAX_MPDU_LEN_HT_3839 …
#define IEEE80211_MAX_MPDU_LEN_HT_7935 …
#define IEEE80211_MAX_MPDU_LEN_VHT_3895 …
#define IEEE80211_MAX_MPDU_LEN_VHT_7991 …
#define IEEE80211_MAX_MPDU_LEN_VHT_11454 …
#define IEEE80211_MAX_SSID_LEN …
#define IEEE80211_MAX_MESH_ID_LEN …
#define IEEE80211_FIRST_TSPEC_TSID …
#define IEEE80211_NUM_TIDS …
#define IEEE80211_NUM_UPS …
#define IEEE80211_NUM_ACS …
#define IEEE80211_QOS_CTL_LEN …
#define IEEE80211_QOS_CTL_TAG1D_MASK …
#define IEEE80211_QOS_CTL_TID_MASK …
#define IEEE80211_QOS_CTL_EOSP …
#define IEEE80211_QOS_CTL_ACK_POLICY_NORMAL …
#define IEEE80211_QOS_CTL_ACK_POLICY_NOACK …
#define IEEE80211_QOS_CTL_ACK_POLICY_NO_EXPL …
#define IEEE80211_QOS_CTL_ACK_POLICY_BLOCKACK …
#define IEEE80211_QOS_CTL_ACK_POLICY_MASK …
#define IEEE80211_QOS_CTL_A_MSDU_PRESENT …
#define IEEE80211_QOS_CTL_MESH_CONTROL_PRESENT …
#define IEEE80211_QOS_CTL_MESH_PS_LEVEL …
#define IEEE80211_QOS_CTL_RSPI …
#define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD …
#define IEEE80211_WMM_IE_AP_QOSINFO_PARAM_SET_CNT_MASK …
#define IEEE80211_WMM_IE_STA_QOSINFO_AC_VO …
#define IEEE80211_WMM_IE_STA_QOSINFO_AC_VI …
#define IEEE80211_WMM_IE_STA_QOSINFO_AC_BK …
#define IEEE80211_WMM_IE_STA_QOSINFO_AC_BE …
#define IEEE80211_WMM_IE_STA_QOSINFO_AC_MASK …
#define IEEE80211_WMM_IE_STA_QOSINFO_SP_ALL …
#define IEEE80211_WMM_IE_STA_QOSINFO_SP_2 …
#define IEEE80211_WMM_IE_STA_QOSINFO_SP_4 …
#define IEEE80211_WMM_IE_STA_QOSINFO_SP_6 …
#define IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK …
#define IEEE80211_WMM_IE_STA_QOSINFO_SP_SHIFT …
#define IEEE80211_HT_CTL_LEN …
#define IEEE80211_TRIGGER_TYPE_MASK …
#define IEEE80211_TRIGGER_TYPE_BASIC …
#define IEEE80211_TRIGGER_TYPE_BFRP …
#define IEEE80211_TRIGGER_TYPE_MU_BAR …
#define IEEE80211_TRIGGER_TYPE_MU_RTS …
#define IEEE80211_TRIGGER_TYPE_BSRP …
#define IEEE80211_TRIGGER_TYPE_GCR_MU_BAR …
#define IEEE80211_TRIGGER_TYPE_BQRP …
#define IEEE80211_TRIGGER_TYPE_NFRP …
#define IEEE80211_TRIGGER_ULBW_MASK …
#define IEEE80211_TRIGGER_ULBW_20MHZ …
#define IEEE80211_TRIGGER_ULBW_40MHZ …
#define IEEE80211_TRIGGER_ULBW_80MHZ …
#define IEEE80211_TRIGGER_ULBW_160_80P80MHZ …
struct ieee80211_hdr { … } __packed __aligned(…);
struct ieee80211_hdr_3addr { … } __packed __aligned(…);
struct ieee80211_qos_hdr { … } __packed __aligned(…);
struct ieee80211_qos_hdr_4addr { … } __packed __aligned(…);
struct ieee80211_trigger { … } __packed __aligned(…);
static inline bool ieee80211_has_tods(__le16 fc)
{ … }
static inline bool ieee80211_has_fromds(__le16 fc)
{ … }
static inline bool ieee80211_has_a4(__le16 fc)
{ … }
static inline bool ieee80211_has_morefrags(__le16 fc)
{ … }
static inline bool ieee80211_has_retry(__le16 fc)
{ … }
static inline bool ieee80211_has_pm(__le16 fc)
{ … }
static inline bool ieee80211_has_moredata(__le16 fc)
{ … }
static inline bool ieee80211_has_protected(__le16 fc)
{ … }
static inline bool ieee80211_has_order(__le16 fc)
{ … }
static inline bool ieee80211_is_mgmt(__le16 fc)
{ … }
static inline bool ieee80211_is_ctl(__le16 fc)
{ … }
static inline bool ieee80211_is_data(__le16 fc)
{ … }
static inline bool ieee80211_is_ext(__le16 fc)
{ … }
static inline bool ieee80211_is_data_qos(__le16 fc)
{ … }
static inline bool ieee80211_is_data_present(__le16 fc)
{ … }
static inline bool ieee80211_is_assoc_req(__le16 fc)
{ … }
static inline bool ieee80211_is_assoc_resp(__le16 fc)
{ … }
static inline bool ieee80211_is_reassoc_req(__le16 fc)
{ … }
static inline bool ieee80211_is_reassoc_resp(__le16 fc)
{ … }
static inline bool ieee80211_is_probe_req(__le16 fc)
{ … }
static inline bool ieee80211_is_probe_resp(__le16 fc)
{ … }
static inline bool ieee80211_is_beacon(__le16 fc)
{ … }
static inline bool ieee80211_is_s1g_beacon(__le16 fc)
{ … }
static inline bool ieee80211_is_s1g_short_beacon(__le16 fc)
{ … }
static inline bool ieee80211_is_atim(__le16 fc)
{ … }
static inline bool ieee80211_is_disassoc(__le16 fc)
{ … }
static inline bool ieee80211_is_auth(__le16 fc)
{ … }
static inline bool ieee80211_is_deauth(__le16 fc)
{ … }
static inline bool ieee80211_is_action(__le16 fc)
{ … }
static inline bool ieee80211_is_back_req(__le16 fc)
{ … }
static inline bool ieee80211_is_back(__le16 fc)
{ … }
static inline bool ieee80211_is_pspoll(__le16 fc)
{ … }
static inline bool ieee80211_is_rts(__le16 fc)
{ … }
static inline bool ieee80211_is_cts(__le16 fc)
{ … }
static inline bool ieee80211_is_ack(__le16 fc)
{ … }
static inline bool ieee80211_is_cfend(__le16 fc)
{ … }
static inline bool ieee80211_is_cfendack(__le16 fc)
{ … }
static inline bool ieee80211_is_nullfunc(__le16 fc)
{ … }
static inline bool ieee80211_is_qos_nullfunc(__le16 fc)
{ … }
static inline bool ieee80211_is_trigger(__le16 fc)
{ … }
static inline bool ieee80211_is_any_nullfunc(__le16 fc)
{ … }
static inline bool ieee80211_is_first_frag(__le16 seq_ctrl)
{ … }
static inline bool ieee80211_is_frag(struct ieee80211_hdr *hdr)
{ … }
static inline u16 ieee80211_get_sn(struct ieee80211_hdr *hdr)
{ … }
struct ieee80211s_hdr { … } __packed __aligned(…);
#define MESH_FLAGS_AE_A4 …
#define MESH_FLAGS_AE_A5_A6 …
#define MESH_FLAGS_AE …
#define MESH_FLAGS_PS_DEEP …
enum ieee80211_preq_flags { … };
enum ieee80211_preq_target_flags { … };
struct ieee80211_quiet_ie { … } __packed;
struct ieee80211_msrment_ie { … } __packed;
struct ieee80211_channel_sw_ie { … } __packed;
struct ieee80211_ext_chansw_ie { … } __packed;
struct ieee80211_sec_chan_offs_ie { … } __packed;
struct ieee80211_mesh_chansw_params_ie { … } __packed;
struct ieee80211_wide_bw_chansw_ie { … } __packed;
struct ieee80211_tim_ie { … } __packed;
struct ieee80211_meshconf_ie { … } __packed;
enum mesh_config_capab_flags { … };
#define IEEE80211_MESHCONF_FORM_CONNECTED_TO_GATE …
#define WLAN_EID_CHAN_SWITCH_PARAM_TX_RESTRICT …
#define WLAN_EID_CHAN_SWITCH_PARAM_INITIATOR …
#define WLAN_EID_CHAN_SWITCH_PARAM_REASON …
struct ieee80211_rann_ie { … } __packed;
enum ieee80211_rann_flags { … };
enum ieee80211_ht_chanwidth_values { … };
enum ieee80211_vht_opmode_bits { … };
enum ieee80211_s1g_chanwidth { … };
#define WLAN_SA_QUERY_TR_ID_LEN …
#define WLAN_MEMBERSHIP_LEN …
#define WLAN_USER_POSITION_LEN …
struct ieee80211_tpc_report_ie { … } __packed;
#define IEEE80211_ADDBA_EXT_FRAG_LEVEL_MASK …
#define IEEE80211_ADDBA_EXT_FRAG_LEVEL_SHIFT …
#define IEEE80211_ADDBA_EXT_NO_FRAG …
#define IEEE80211_ADDBA_EXT_BUF_SIZE_MASK …
#define IEEE80211_ADDBA_EXT_BUF_SIZE_SHIFT …
struct ieee80211_addba_ext_ie { … } __packed;
struct ieee80211_s1g_bcn_compat_ie { … } __packed;
struct ieee80211_s1g_oper_ie { … } __packed;
struct ieee80211_aid_response_ie { … } __packed;
struct ieee80211_s1g_cap { … } __packed;
struct ieee80211_ext { … } __packed __aligned(…);
#define IEEE80211_TWT_CONTROL_NDP …
#define IEEE80211_TWT_CONTROL_RESP_MODE …
#define IEEE80211_TWT_CONTROL_NEG_TYPE_BROADCAST …
#define IEEE80211_TWT_CONTROL_RX_DISABLED …
#define IEEE80211_TWT_CONTROL_WAKE_DUR_UNIT …
#define IEEE80211_TWT_REQTYPE_REQUEST …
#define IEEE80211_TWT_REQTYPE_SETUP_CMD …
#define IEEE80211_TWT_REQTYPE_TRIGGER …
#define IEEE80211_TWT_REQTYPE_IMPLICIT …
#define IEEE80211_TWT_REQTYPE_FLOWTYPE …
#define IEEE80211_TWT_REQTYPE_FLOWID …
#define IEEE80211_TWT_REQTYPE_WAKE_INT_EXP …
#define IEEE80211_TWT_REQTYPE_PROTECTION …
enum ieee80211_twt_setup_cmd { … };
struct ieee80211_twt_params { … } __packed;
struct ieee80211_twt_setup { … } __packed;
#define IEEE80211_TTLM_MAX_CNT …
#define IEEE80211_TTLM_CONTROL_DIRECTION …
#define IEEE80211_TTLM_CONTROL_DEF_LINK_MAP …
#define IEEE80211_TTLM_CONTROL_SWITCH_TIME_PRESENT …
#define IEEE80211_TTLM_CONTROL_EXPECTED_DUR_PRESENT …
#define IEEE80211_TTLM_CONTROL_LINK_MAP_SIZE …
#define IEEE80211_TTLM_DIRECTION_DOWN …
#define IEEE80211_TTLM_DIRECTION_UP …
#define IEEE80211_TTLM_DIRECTION_BOTH …
struct ieee80211_ttlm_elem { … } __packed;
struct ieee80211_bss_load_elem { … } __packed;
struct ieee80211_mgmt { … } __packed __aligned(…);
#define BSS_MEMBERSHIP_SELECTOR_HT_PHY …
#define BSS_MEMBERSHIP_SELECTOR_VHT_PHY …
#define BSS_MEMBERSHIP_SELECTOR_GLK …
#define BSS_MEMBERSHIP_SELECTOR_EPS …
#define BSS_MEMBERSHIP_SELECTOR_SAE_H2E …
#define BSS_MEMBERSHIP_SELECTOR_HE_PHY …
#define BSS_MEMBERSHIP_SELECTOR_EHT_PHY …
#define IEEE80211_MIN_ACTION_SIZE …
struct ieee80211_mmie { … } __packed;
struct ieee80211_mmie_16 { … } __packed;
struct ieee80211_vendor_ie { … } __packed;
struct ieee80211_wmm_ac_param { … } __packed;
struct ieee80211_wmm_param_ie { … } __packed;
struct ieee80211_rts { … } __packed __aligned(…);
struct ieee80211_cts { … } __packed __aligned(…);
struct ieee80211_pspoll { … } __packed __aligned(…);
struct ieee80211_ch_switch_timing { … } __packed;
struct ieee80211_tdls_lnkie { … } __packed;
struct ieee80211_tdls_data { … } __packed;
enum ieee80211_p2p_attr_id { … };
#define IEEE80211_P2P_NOA_DESC_MAX …
struct ieee80211_p2p_noa_desc { … } __packed;
struct ieee80211_p2p_noa_attr { … } __packed;
#define IEEE80211_P2P_OPPPS_ENABLE_BIT …
#define IEEE80211_P2P_OPPPS_CTWINDOW_MASK …
struct ieee80211_bar { … } __packed;
#define IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL …
#define IEEE80211_BAR_CTRL_MULTI_TID …
#define IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA …
#define IEEE80211_BAR_CTRL_TID_INFO_MASK …
#define IEEE80211_BAR_CTRL_TID_INFO_SHIFT …
#define IEEE80211_HT_MCS_MASK_LEN …
struct ieee80211_mcs_info { … } __packed;
#define IEEE80211_HT_MCS_RX_HIGHEST_MASK …
#define IEEE80211_HT_MCS_TX_DEFINED …
#define IEEE80211_HT_MCS_TX_RX_DIFF …
#define IEEE80211_HT_MCS_TX_MAX_STREAMS_MASK …
#define IEEE80211_HT_MCS_TX_MAX_STREAMS_SHIFT …
#define IEEE80211_HT_MCS_TX_MAX_STREAMS …
#define IEEE80211_HT_MCS_TX_UNEQUAL_MODULATION …
#define IEEE80211_HT_MCS_CHAINS(mcs) …
#define IEEE80211_HT_MCS_UNEQUAL_MODULATION_START …
#define IEEE80211_HT_MCS_UNEQUAL_MODULATION_START_BYTE …
struct ieee80211_ht_cap { … } __packed;
#define IEEE80211_HT_CAP_LDPC_CODING …
#define IEEE80211_HT_CAP_SUP_WIDTH_20_40 …
#define IEEE80211_HT_CAP_SM_PS …
#define IEEE80211_HT_CAP_SM_PS_SHIFT …
#define IEEE80211_HT_CAP_GRN_FLD …
#define IEEE80211_HT_CAP_SGI_20 …
#define IEEE80211_HT_CAP_SGI_40 …
#define IEEE80211_HT_CAP_TX_STBC …
#define IEEE80211_HT_CAP_RX_STBC …
#define IEEE80211_HT_CAP_RX_STBC_SHIFT …
#define IEEE80211_HT_CAP_DELAY_BA …
#define IEEE80211_HT_CAP_MAX_AMSDU …
#define IEEE80211_HT_CAP_DSSSCCK40 …
#define IEEE80211_HT_CAP_RESERVED …
#define IEEE80211_HT_CAP_40MHZ_INTOLERANT …
#define IEEE80211_HT_CAP_LSIG_TXOP_PROT …
#define IEEE80211_HT_EXT_CAP_PCO …
#define IEEE80211_HT_EXT_CAP_PCO_TIME …
#define IEEE80211_HT_EXT_CAP_PCO_TIME_SHIFT …
#define IEEE80211_HT_EXT_CAP_MCS_FB …
#define IEEE80211_HT_EXT_CAP_MCS_FB_SHIFT …
#define IEEE80211_HT_EXT_CAP_HTC_SUP …
#define IEEE80211_HT_EXT_CAP_RD_RESPONDER …
#define IEEE80211_HT_AMPDU_PARM_FACTOR …
#define IEEE80211_HT_AMPDU_PARM_DENSITY …
#define IEEE80211_HT_AMPDU_PARM_DENSITY_SHIFT …
enum ieee80211_max_ampdu_length_exp { … };
enum ieee80211_vht_max_ampdu_length_exp { … };
#define IEEE80211_HT_MAX_AMPDU_FACTOR …
enum ieee80211_min_mpdu_spacing { … };
struct ieee80211_ht_operation { … } __packed;
#define IEEE80211_HT_PARAM_CHA_SEC_OFFSET …
#define IEEE80211_HT_PARAM_CHA_SEC_NONE …
#define IEEE80211_HT_PARAM_CHA_SEC_ABOVE …
#define IEEE80211_HT_PARAM_CHA_SEC_BELOW …
#define IEEE80211_HT_PARAM_CHAN_WIDTH_ANY …
#define IEEE80211_HT_PARAM_RIFS_MODE …
#define IEEE80211_HT_OP_MODE_PROTECTION …
#define IEEE80211_HT_OP_MODE_PROTECTION_NONE …
#define IEEE80211_HT_OP_MODE_PROTECTION_NONMEMBER …
#define IEEE80211_HT_OP_MODE_PROTECTION_20MHZ …
#define IEEE80211_HT_OP_MODE_PROTECTION_NONHT_MIXED …
#define IEEE80211_HT_OP_MODE_NON_GF_STA_PRSNT …
#define IEEE80211_HT_OP_MODE_NON_HT_STA_PRSNT …
#define IEEE80211_HT_OP_MODE_CCFS2_SHIFT …
#define IEEE80211_HT_OP_MODE_CCFS2_MASK …
#define IEEE80211_HT_STBC_PARAM_DUAL_BEACON …
#define IEEE80211_HT_STBC_PARAM_DUAL_CTS_PROT …
#define IEEE80211_HT_STBC_PARAM_STBC_BEACON …
#define IEEE80211_HT_STBC_PARAM_LSIG_TXOP_FULLPROT …
#define IEEE80211_HT_STBC_PARAM_PCO_ACTIVE …
#define IEEE80211_HT_STBC_PARAM_PCO_PHASE …
#define IEEE80211_ADDBA_PARAM_AMSDU_MASK …
#define IEEE80211_ADDBA_PARAM_POLICY_MASK …
#define IEEE80211_ADDBA_PARAM_TID_MASK …
#define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK …
#define IEEE80211_DELBA_PARAM_TID_MASK …
#define IEEE80211_DELBA_PARAM_INITIATOR_MASK …
#define IEEE80211_MIN_AMPDU_BUF …
#define IEEE80211_MAX_AMPDU_BUF_HT …
#define IEEE80211_MAX_AMPDU_BUF_HE …
#define IEEE80211_MAX_AMPDU_BUF_EHT …
#define WLAN_HT_CAP_SM_PS_STATIC …
#define WLAN_HT_CAP_SM_PS_DYNAMIC …
#define WLAN_HT_CAP_SM_PS_INVALID …
#define WLAN_HT_CAP_SM_PS_DISABLED …
#define WLAN_HT_SMPS_CONTROL_DISABLED …
#define WLAN_HT_SMPS_CONTROL_STATIC …
#define WLAN_HT_SMPS_CONTROL_DYNAMIC …
struct ieee80211_vht_mcs_info { … } __packed;
#define IEEE80211_VHT_MAX_NSTS_TOTAL_SHIFT …
#define IEEE80211_VHT_MAX_NSTS_TOTAL_MASK …
#define IEEE80211_VHT_EXT_NSS_BW_CAPABLE …
enum ieee80211_vht_mcs_support { … };
struct ieee80211_vht_cap { … } __packed;
enum ieee80211_vht_chanwidth { … };
struct ieee80211_vht_operation { … } __packed;
struct ieee80211_he_cap_elem { … } __packed;
#define IEEE80211_TX_RX_MCS_NSS_DESC_MAX_LEN …
enum ieee80211_he_mcs_support { … };
struct ieee80211_he_mcs_nss_supp { … } __packed;
struct ieee80211_he_operation { … } __packed;
struct ieee80211_he_spr { … } __packed;
struct ieee80211_he_mu_edca_param_ac_rec { … } __packed;
struct ieee80211_mu_edca_param_set { … } __packed;
#define IEEE80211_EHT_MCS_NSS_RX …
#define IEEE80211_EHT_MCS_NSS_TX …
struct ieee80211_eht_mcs_nss_supp_20mhz_only { … };
struct ieee80211_eht_mcs_nss_supp_bw { … };
struct ieee80211_eht_cap_elem_fixed { … } __packed;
struct ieee80211_eht_cap_elem { … } __packed;
#define IEEE80211_EHT_OPER_INFO_PRESENT …
#define IEEE80211_EHT_OPER_DISABLED_SUBCHANNEL_BITMAP_PRESENT …
#define IEEE80211_EHT_OPER_EHT_DEF_PE_DURATION …
#define IEEE80211_EHT_OPER_GROUP_ADDRESSED_BU_IND_LIMIT …
#define IEEE80211_EHT_OPER_GROUP_ADDRESSED_BU_IND_EXP_MASK …
struct ieee80211_eht_operation { … } __packed;
struct ieee80211_eht_operation_info { … } __packed;
#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895 …
#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991 …
#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454 …
#define IEEE80211_VHT_CAP_MAX_MPDU_MASK …
#define IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ …
#define IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ …
#define IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK …
#define IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_SHIFT …
#define IEEE80211_VHT_CAP_RXLDPC …
#define IEEE80211_VHT_CAP_SHORT_GI_80 …
#define IEEE80211_VHT_CAP_SHORT_GI_160 …
#define IEEE80211_VHT_CAP_TXSTBC …
#define IEEE80211_VHT_CAP_RXSTBC_1 …
#define IEEE80211_VHT_CAP_RXSTBC_2 …
#define IEEE80211_VHT_CAP_RXSTBC_3 …
#define IEEE80211_VHT_CAP_RXSTBC_4 …
#define IEEE80211_VHT_CAP_RXSTBC_MASK …
#define IEEE80211_VHT_CAP_RXSTBC_SHIFT …
#define IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE …
#define IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE …
#define IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT …
#define IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK …
#define IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT …
#define IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK …
#define IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE …
#define IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE …
#define IEEE80211_VHT_CAP_VHT_TXOP_PS …
#define IEEE80211_VHT_CAP_HTC_VHT …
#define IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT …
#define IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK …
#define IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_UNSOL_MFB …
#define IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB …
#define IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN …
#define IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN …
#define IEEE80211_VHT_CAP_EXT_NSS_BW_SHIFT …
#define IEEE80211_VHT_CAP_EXT_NSS_BW_MASK …
int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
enum ieee80211_vht_chanwidth bw,
int mcs, bool ext_nss_bw_capable,
unsigned int max_vht_nss);
#define IEEE80211_HE_MAC_CAP0_HTC_HE …
#define IEEE80211_HE_MAC_CAP0_TWT_REQ …
#define IEEE80211_HE_MAC_CAP0_TWT_RES …
#define IEEE80211_HE_MAC_CAP0_DYNAMIC_FRAG_NOT_SUPP …
#define IEEE80211_HE_MAC_CAP0_DYNAMIC_FRAG_LEVEL_1 …
#define IEEE80211_HE_MAC_CAP0_DYNAMIC_FRAG_LEVEL_2 …
#define IEEE80211_HE_MAC_CAP0_DYNAMIC_FRAG_LEVEL_3 …
#define IEEE80211_HE_MAC_CAP0_DYNAMIC_FRAG_MASK …
#define IEEE80211_HE_MAC_CAP0_MAX_NUM_FRAG_MSDU_1 …
#define IEEE80211_HE_MAC_CAP0_MAX_NUM_FRAG_MSDU_2 …
#define IEEE80211_HE_MAC_CAP0_MAX_NUM_FRAG_MSDU_4 …
#define IEEE80211_HE_MAC_CAP0_MAX_NUM_FRAG_MSDU_8 …
#define IEEE80211_HE_MAC_CAP0_MAX_NUM_FRAG_MSDU_16 …
#define IEEE80211_HE_MAC_CAP0_MAX_NUM_FRAG_MSDU_32 …
#define IEEE80211_HE_MAC_CAP0_MAX_NUM_FRAG_MSDU_64 …
#define IEEE80211_HE_MAC_CAP0_MAX_NUM_FRAG_MSDU_UNLIMITED …
#define IEEE80211_HE_MAC_CAP0_MAX_NUM_FRAG_MSDU_MASK …
#define IEEE80211_HE_MAC_CAP1_MIN_FRAG_SIZE_UNLIMITED …
#define IEEE80211_HE_MAC_CAP1_MIN_FRAG_SIZE_128 …
#define IEEE80211_HE_MAC_CAP1_MIN_FRAG_SIZE_256 …
#define IEEE80211_HE_MAC_CAP1_MIN_FRAG_SIZE_512 …
#define IEEE80211_HE_MAC_CAP1_MIN_FRAG_SIZE_MASK …
#define IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_0US …
#define IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_8US …
#define IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US …
#define IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_MASK …
#define IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_1 …
#define IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_2 …
#define IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_3 …
#define IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_4 …
#define IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_5 …
#define IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_6 …
#define IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_7 …
#define IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8 …
#define IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_MASK …
#define IEEE80211_HE_MAC_CAP1_LINK_ADAPTATION …
#define IEEE80211_HE_MAC_CAP2_LINK_ADAPTATION …
#define IEEE80211_HE_MAC_CAP2_ALL_ACK …
#define IEEE80211_HE_MAC_CAP2_TRS …
#define IEEE80211_HE_MAC_CAP2_BSR …
#define IEEE80211_HE_MAC_CAP2_BCAST_TWT …
#define IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP …
#define IEEE80211_HE_MAC_CAP2_MU_CASCADING …
#define IEEE80211_HE_MAC_CAP2_ACK_EN …
#define IEEE80211_HE_MAC_CAP3_OMI_CONTROL …
#define IEEE80211_HE_MAC_CAP3_OFDMA_RA …
#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_0 …
#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_1 …
#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2 …
#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3 …
#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK …
#define IEEE80211_HE_MAC_CAP3_AMSDU_FRAG …
#define IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED …
#define IEEE80211_HE_MAC_CAP3_RX_CTRL_FRAME_TO_MULTIBSS …
#define IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG …
#define IEEE80211_HE_MAC_CAP4_QTP …
#define IEEE80211_HE_MAC_CAP4_BQR …
#define IEEE80211_HE_MAC_CAP4_PSR_RESP …
#define IEEE80211_HE_MAC_CAP4_NDP_FB_REP …
#define IEEE80211_HE_MAC_CAP4_OPS …
#define IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU …
#define IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39 …
#define IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B40 …
#define IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B41 …
#define IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECTIVE_TRANSMISSION …
#define IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU …
#define IEEE80211_HE_MAC_CAP5_OM_CTRL_UL_MU_DATA_DIS_RX …
#define IEEE80211_HE_MAC_CAP5_HE_DYNAMIC_SM_PS …
#define IEEE80211_HE_MAC_CAP5_PUNCTURED_SOUNDING …
#define IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX …
#define IEEE80211_HE_VHT_MAX_AMPDU_FACTOR …
#define IEEE80211_HE_HT_MAX_AMPDU_FACTOR …
#define IEEE80211_HE_6GHZ_MAX_AMPDU_FACTOR …
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G …
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G …
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G …
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G …
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_MASK_ALL …
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_RU_MAPPING_IN_2G …
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_RU_MAPPING_IN_5G …
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_MASK …
#define IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_80MHZ_ONLY_SECOND_20MHZ …
#define IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_80MHZ_ONLY_SECOND_40MHZ …
#define IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_160MHZ_ONLY_SECOND_20MHZ …
#define IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_160MHZ_ONLY_SECOND_40MHZ …
#define IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK …
#define IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A …
#define IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD …
#define IEEE80211_HE_PHY_CAP1_HE_LTF_AND_GI_FOR_HE_PPDUS_0_8US …
#define IEEE80211_HE_PHY_CAP1_MIDAMBLE_RX_TX_MAX_NSTS …
#define IEEE80211_HE_PHY_CAP2_MIDAMBLE_RX_TX_MAX_NSTS …
#define IEEE80211_HE_PHY_CAP2_NDP_4x_LTF_AND_3_2US …
#define IEEE80211_HE_PHY_CAP2_STBC_TX_UNDER_80MHZ …
#define IEEE80211_HE_PHY_CAP2_STBC_RX_UNDER_80MHZ …
#define IEEE80211_HE_PHY_CAP2_DOPPLER_TX …
#define IEEE80211_HE_PHY_CAP2_DOPPLER_RX …
#define IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO …
#define IEEE80211_HE_PHY_CAP2_UL_MU_PARTIAL_MU_MIMO …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_NO_DCM …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_BPSK …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_QPSK …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_16_QAM …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_MASK …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_TX_NSS_1 …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_TX_NSS_2 …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_NO_DCM …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_BPSK …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_QPSK …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_16_QAM …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1 …
#define IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_2 …
#define IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU …
#define IEEE80211_HE_PHY_CAP3_SU_BEAMFORMER …
#define IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE …
#define IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_4 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_5 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_6 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_7 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_8 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_MASK …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_4 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_5 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_6 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_7 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_8 …
#define IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_MASK …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_1 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_2 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_3 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_4 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_5 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_6 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_7 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_8 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_1 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_2 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_3 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_4 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_5 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_6 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_7 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_8 …
#define IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_MASK …
#define IEEE80211_HE_PHY_CAP5_NG16_SU_FEEDBACK …
#define IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK …
#define IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_42_SU …
#define IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU …
#define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB …
#define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB …
#define IEEE80211_HE_PHY_CAP6_TRIG_CQI_FB …
#define IEEE80211_HE_PHY_CAP6_PARTIAL_BW_EXT_RANGE …
#define IEEE80211_HE_PHY_CAP6_PARTIAL_BANDWIDTH_DL_MUMIMO …
#define IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT …
#define IEEE80211_HE_PHY_CAP7_PSR_BASED_SR …
#define IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_SUPP …
#define IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI …
#define IEEE80211_HE_PHY_CAP7_MAX_NC_1 …
#define IEEE80211_HE_PHY_CAP7_MAX_NC_2 …
#define IEEE80211_HE_PHY_CAP7_MAX_NC_3 …
#define IEEE80211_HE_PHY_CAP7_MAX_NC_4 …
#define IEEE80211_HE_PHY_CAP7_MAX_NC_5 …
#define IEEE80211_HE_PHY_CAP7_MAX_NC_6 …
#define IEEE80211_HE_PHY_CAP7_MAX_NC_7 …
#define IEEE80211_HE_PHY_CAP7_MAX_NC_MASK …
#define IEEE80211_HE_PHY_CAP7_STBC_TX_ABOVE_80MHZ …
#define IEEE80211_HE_PHY_CAP7_STBC_RX_ABOVE_80MHZ …
#define IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI …
#define IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G …
#define IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU …
#define IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU …
#define IEEE80211_HE_PHY_CAP8_HE_ER_SU_1XLTF_AND_08_US_GI …
#define IEEE80211_HE_PHY_CAP8_MIDAMBLE_RX_TX_2X_AND_1XLTF …
#define IEEE80211_HE_PHY_CAP8_DCM_MAX_RU_242 …
#define IEEE80211_HE_PHY_CAP8_DCM_MAX_RU_484 …
#define IEEE80211_HE_PHY_CAP8_DCM_MAX_RU_996 …
#define IEEE80211_HE_PHY_CAP8_DCM_MAX_RU_2x996 …
#define IEEE80211_HE_PHY_CAP8_DCM_MAX_RU_MASK …
#define IEEE80211_HE_PHY_CAP9_LONGER_THAN_16_SIGB_OFDM_SYM …
#define IEEE80211_HE_PHY_CAP9_NON_TRIGGERED_CQI_FEEDBACK …
#define IEEE80211_HE_PHY_CAP9_TX_1024_QAM_LESS_THAN_242_TONE_RU …
#define IEEE80211_HE_PHY_CAP9_RX_1024_QAM_LESS_THAN_242_TONE_RU …
#define IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB …
#define IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB …
#define IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_0US …
#define IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_8US …
#define IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_16US …
#define IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_RESERVED …
#define IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_POS …
#define IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_MASK …
#define IEEE80211_HE_PHY_CAP10_HE_MU_M1RU_MAX_LTF …
#define IEEE80211_TX_RX_MCS_NSS_SUPP_HIGHEST_MCS_POS …
#define IEEE80211_TX_RX_MCS_NSS_SUPP_TX_BITMAP_POS …
#define IEEE80211_TX_RX_MCS_NSS_SUPP_RX_BITMAP_POS …
#define IEEE80211_TX_RX_MCS_NSS_SUPP_TX_BITMAP_MASK …
#define IEEE80211_TX_RX_MCS_NSS_SUPP_RX_BITMAP_MASK …
enum ieee80211_he_highest_mcs_supported_subfield_enc { … };
static inline u8
ieee80211_he_mcs_nss_size(const struct ieee80211_he_cap_elem *he_cap)
{ … }
#define IEEE80211_PPE_THRES_NSS_SUPPORT_2NSS …
#define IEEE80211_PPE_THRES_NSS_POS …
#define IEEE80211_PPE_THRES_NSS_MASK …
#define IEEE80211_PPE_THRES_RU_INDEX_BITMASK_2x966_AND_966_RU …
#define IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK …
#define IEEE80211_PPE_THRES_RU_INDEX_BITMASK_POS …
#define IEEE80211_PPE_THRES_INFO_PPET_SIZE …
#define IEEE80211_HE_PPE_THRES_INFO_HEADER_SIZE …
static inline u8
ieee80211_he_ppe_size(u8 ppe_thres_hdr, const u8 *phy_cap_info)
{ … }
static inline bool ieee80211_he_capa_size_ok(const u8 *data, u8 len)
{ … }
#define IEEE80211_HE_OPERATION_DFLT_PE_DURATION_MASK …
#define IEEE80211_HE_OPERATION_TWT_REQUIRED …
#define IEEE80211_HE_OPERATION_RTS_THRESHOLD_MASK …
#define IEEE80211_HE_OPERATION_RTS_THRESHOLD_OFFSET …
#define IEEE80211_HE_OPERATION_VHT_OPER_INFO …
#define IEEE80211_HE_OPERATION_CO_HOSTED_BSS …
#define IEEE80211_HE_OPERATION_ER_SU_DISABLE …
#define IEEE80211_HE_OPERATION_6GHZ_OP_INFO …
#define IEEE80211_HE_OPERATION_BSS_COLOR_MASK …
#define IEEE80211_HE_OPERATION_BSS_COLOR_OFFSET …
#define IEEE80211_HE_OPERATION_PARTIAL_BSS_COLOR …
#define IEEE80211_HE_OPERATION_BSS_COLOR_DISABLED …
#define IEEE80211_6GHZ_CTRL_REG_LPI_AP …
#define IEEE80211_6GHZ_CTRL_REG_SP_AP …
#define IEEE80211_6GHZ_CTRL_REG_VLP_AP …
#define IEEE80211_6GHZ_CTRL_REG_INDOOR_LPI_AP …
#define IEEE80211_6GHZ_CTRL_REG_INDOOR_SP_AP …
struct ieee80211_he_6ghz_oper { … } __packed;
enum ieee80211_tx_power_intrpt_type { … };
enum ieee80211_tx_power_category_6ghz { … };
#define IEEE80211_TPE_MAX_TX_PWR_NO_CONSTRAINT …
#define IEEE80211_TPE_PSD_NO_LIMIT …
struct ieee80211_tx_pwr_env { … } __packed;
#define IEEE80211_TX_PWR_ENV_INFO_COUNT …
#define IEEE80211_TX_PWR_ENV_INFO_INTERPRET …
#define IEEE80211_TX_PWR_ENV_INFO_CATEGORY …
#define IEEE80211_TX_PWR_ENV_EXT_COUNT …
static inline bool ieee80211_valid_tpe_element(const u8 *data, u8 len)
{ … }
static inline u8
ieee80211_he_oper_size(const u8 *he_oper_ie)
{ … }
static inline const struct ieee80211_he_6ghz_oper *
ieee80211_he_6ghz_oper(const struct ieee80211_he_operation *he_oper)
{ … }
#define IEEE80211_HE_SPR_PSR_DISALLOWED …
#define IEEE80211_HE_SPR_NON_SRG_OBSS_PD_SR_DISALLOWED …
#define IEEE80211_HE_SPR_NON_SRG_OFFSET_PRESENT …
#define IEEE80211_HE_SPR_SRG_INFORMATION_PRESENT …
#define IEEE80211_HE_SPR_HESIGA_SR_VAL15_ALLOWED …
static inline u8
ieee80211_he_spr_size(const u8 *he_spr_ie)
{ … }
#define IEEE80211_S1G_CAPABILITY_LEN …
#define S1G_CAP0_S1G_LONG …
#define S1G_CAP0_SGI_1MHZ …
#define S1G_CAP0_SGI_2MHZ …
#define S1G_CAP0_SGI_4MHZ …
#define S1G_CAP0_SGI_8MHZ …
#define S1G_CAP0_SGI_16MHZ …
#define S1G_CAP0_SUPP_CH_WIDTH …
#define S1G_SUPP_CH_WIDTH_2 …
#define S1G_SUPP_CH_WIDTH_4 …
#define S1G_SUPP_CH_WIDTH_8 …
#define S1G_SUPP_CH_WIDTH_16 …
#define S1G_SUPP_CH_WIDTH_MAX(cap) …
#define S1G_CAP1_RX_LDPC …
#define S1G_CAP1_TX_STBC …
#define S1G_CAP1_RX_STBC …
#define S1G_CAP1_SU_BFER …
#define S1G_CAP1_SU_BFEE …
#define S1G_CAP1_BFEE_STS …
#define S1G_CAP2_SOUNDING_DIMENSIONS …
#define S1G_CAP2_MU_BFER …
#define S1G_CAP2_MU_BFEE …
#define S1G_CAP2_PLUS_HTC_VHT …
#define S1G_CAP2_TRAVELING_PILOT …
#define S1G_CAP3_RD_RESPONDER …
#define S1G_CAP3_HT_DELAYED_BA …
#define S1G_CAP3_MAX_MPDU_LEN …
#define S1G_CAP3_MAX_AMPDU_LEN_EXP …
#define S1G_CAP3_MIN_MPDU_START …
#define S1G_CAP4_UPLINK_SYNC …
#define S1G_CAP4_DYNAMIC_AID …
#define S1G_CAP4_BAT …
#define S1G_CAP4_TIME_ADE …
#define S1G_CAP4_NON_TIM …
#define S1G_CAP4_GROUP_AID …
#define S1G_CAP4_STA_TYPE …
#define S1G_CAP5_CENT_AUTH_CONTROL …
#define S1G_CAP5_DIST_AUTH_CONTROL …
#define S1G_CAP5_AMSDU …
#define S1G_CAP5_AMPDU …
#define S1G_CAP5_ASYMMETRIC_BA …
#define S1G_CAP5_FLOW_CONTROL …
#define S1G_CAP5_SECTORIZED_BEAM …
#define S1G_CAP6_OBSS_MITIGATION …
#define S1G_CAP6_FRAGMENT_BA …
#define S1G_CAP6_NDP_PS_POLL …
#define S1G_CAP6_RAW_OPERATION …
#define S1G_CAP6_PAGE_SLICING …
#define S1G_CAP6_TXOP_SHARING_IMP_ACK …
#define S1G_CAP6_VHT_LINK_ADAPT …
#define S1G_CAP7_TACK_AS_PS_POLL …
#define S1G_CAP7_DUP_1MHZ …
#define S1G_CAP7_MCS_NEGOTIATION …
#define S1G_CAP7_1MHZ_CTL_RESPONSE_PREAMBLE …
#define S1G_CAP7_NDP_BFING_REPORT_POLL …
#define S1G_CAP7_UNSOLICITED_DYN_AID …
#define S1G_CAP7_SECTOR_TRAINING_OPERATION …
#define S1G_CAP7_TEMP_PS_MODE_SWITCH …
#define S1G_CAP8_TWT_GROUPING …
#define S1G_CAP8_BDT …
#define S1G_CAP8_COLOR …
#define S1G_CAP8_TWT_REQUEST …
#define S1G_CAP8_TWT_RESPOND …
#define S1G_CAP8_PV1_FRAME …
#define S1G_CAP9_LINK_ADAPT_PER_CONTROL_RESPONSE …
#define S1G_OPER_CH_WIDTH_PRIMARY_1MHZ …
#define S1G_OPER_CH_WIDTH_OPER …
#define IEEE80211_EHT_MAC_CAP0_EPCS_PRIO_ACCESS …
#define IEEE80211_EHT_MAC_CAP0_OM_CONTROL …
#define IEEE80211_EHT_MAC_CAP0_TRIG_TXOP_SHARING_MODE1 …
#define IEEE80211_EHT_MAC_CAP0_TRIG_TXOP_SHARING_MODE2 …
#define IEEE80211_EHT_MAC_CAP0_RESTRICTED_TWT …
#define IEEE80211_EHT_MAC_CAP0_SCS_TRAFFIC_DESC …
#define IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_MASK …
#define IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_3895 …
#define IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_7991 …
#define IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_11454 …
#define IEEE80211_EHT_MAC_CAP1_MAX_AMPDU_LEN_MASK …
#define IEEE80211_EHT_PHY_CAP0_320MHZ_IN_6GHZ …
#define IEEE80211_EHT_PHY_CAP0_242_TONE_RU_GT20MHZ …
#define IEEE80211_EHT_PHY_CAP0_NDP_4_EHT_LFT_32_GI …
#define IEEE80211_EHT_PHY_CAP0_PARTIAL_BW_UL_MU_MIMO …
#define IEEE80211_EHT_PHY_CAP0_SU_BEAMFORMER …
#define IEEE80211_EHT_PHY_CAP0_SU_BEAMFORMEE …
#define IEEE80211_EHT_PHY_CAP0_BEAMFORMEE_SS_80MHZ_MASK …
#define IEEE80211_EHT_PHY_CAP1_BEAMFORMEE_SS_80MHZ_MASK …
#define IEEE80211_EHT_PHY_CAP1_BEAMFORMEE_SS_160MHZ_MASK …
#define IEEE80211_EHT_PHY_CAP1_BEAMFORMEE_SS_320MHZ_MASK …
#define IEEE80211_EHT_PHY_CAP2_SOUNDING_DIM_80MHZ_MASK …
#define IEEE80211_EHT_PHY_CAP2_SOUNDING_DIM_160MHZ_MASK …
#define IEEE80211_EHT_PHY_CAP2_SOUNDING_DIM_320MHZ_MASK …
#define IEEE80211_EHT_PHY_CAP3_SOUNDING_DIM_320MHZ_MASK …
#define IEEE80211_EHT_PHY_CAP3_NG_16_SU_FEEDBACK …
#define IEEE80211_EHT_PHY_CAP3_NG_16_MU_FEEDBACK …
#define IEEE80211_EHT_PHY_CAP3_CODEBOOK_4_2_SU_FDBK …
#define IEEE80211_EHT_PHY_CAP3_CODEBOOK_7_5_MU_FDBK …
#define IEEE80211_EHT_PHY_CAP3_TRIG_SU_BF_FDBK …
#define IEEE80211_EHT_PHY_CAP3_TRIG_MU_BF_PART_BW_FDBK …
#define IEEE80211_EHT_PHY_CAP3_TRIG_CQI_FDBK …
#define IEEE80211_EHT_PHY_CAP4_PART_BW_DL_MU_MIMO …
#define IEEE80211_EHT_PHY_CAP4_PSR_SR_SUPP …
#define IEEE80211_EHT_PHY_CAP4_POWER_BOOST_FACT_SUPP …
#define IEEE80211_EHT_PHY_CAP4_EHT_MU_PPDU_4_EHT_LTF_08_GI …
#define IEEE80211_EHT_PHY_CAP4_MAX_NC_MASK …
#define IEEE80211_EHT_PHY_CAP5_NON_TRIG_CQI_FEEDBACK …
#define IEEE80211_EHT_PHY_CAP5_TX_LESS_242_TONE_RU_SUPP …
#define IEEE80211_EHT_PHY_CAP5_RX_LESS_242_TONE_RU_SUPP …
#define IEEE80211_EHT_PHY_CAP5_PPE_THRESHOLD_PRESENT …
#define IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_MASK …
#define IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_0US …
#define IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_8US …
#define IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_16US …
#define IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_20US …
#define IEEE80211_EHT_PHY_CAP5_MAX_NUM_SUPP_EHT_LTF_MASK …
#define IEEE80211_EHT_PHY_CAP5_SUPP_EXTRA_EHT_LTF …
#define IEEE80211_EHT_PHY_CAP6_MAX_NUM_SUPP_EHT_LTF_MASK …
#define IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_80MHZ …
#define IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_160MHZ …
#define IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_320MHZ …
#define IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_MASK …
#define IEEE80211_EHT_PHY_CAP6_EHT_DUP_6GHZ_SUPP …
#define IEEE80211_EHT_PHY_CAP7_20MHZ_STA_RX_NDP_WIDER_BW …
#define IEEE80211_EHT_PHY_CAP7_NON_OFDMA_UL_MU_MIMO_80MHZ …
#define IEEE80211_EHT_PHY_CAP7_NON_OFDMA_UL_MU_MIMO_160MHZ …
#define IEEE80211_EHT_PHY_CAP7_NON_OFDMA_UL_MU_MIMO_320MHZ …
#define IEEE80211_EHT_PHY_CAP7_MU_BEAMFORMER_80MHZ …
#define IEEE80211_EHT_PHY_CAP7_MU_BEAMFORMER_160MHZ …
#define IEEE80211_EHT_PHY_CAP7_MU_BEAMFORMER_320MHZ …
#define IEEE80211_EHT_PHY_CAP7_TB_SOUNDING_FDBK_RATE_LIMIT …
#define IEEE80211_EHT_PHY_CAP8_RX_1024QAM_WIDER_BW_DL_OFDMA …
#define IEEE80211_EHT_PHY_CAP8_RX_4096QAM_WIDER_BW_DL_OFDMA …
#define IEEE80211_EHT_OPER_CHAN_WIDTH …
#define IEEE80211_EHT_OPER_CHAN_WIDTH_20MHZ …
#define IEEE80211_EHT_OPER_CHAN_WIDTH_40MHZ …
#define IEEE80211_EHT_OPER_CHAN_WIDTH_80MHZ …
#define IEEE80211_EHT_OPER_CHAN_WIDTH_160MHZ …
#define IEEE80211_EHT_OPER_CHAN_WIDTH_320MHZ …
static inline u8
ieee80211_eht_mcs_nss_size(const struct ieee80211_he_cap_elem *he_cap,
const struct ieee80211_eht_cap_elem_fixed *eht_cap,
bool from_ap)
{ … }
#define IEEE80211_EHT_PPE_THRES_NSS_POS …
#define IEEE80211_EHT_PPE_THRES_NSS_MASK …
#define IEEE80211_EHT_PPE_THRES_RU_INDEX_BITMASK_MASK …
#define IEEE80211_EHT_PPE_THRES_INFO_PPET_SIZE …
#define IEEE80211_EHT_PPE_THRES_INFO_HEADER_SIZE …
static inline u8
ieee80211_eht_ppe_size(u16 ppe_thres_hdr, const u8 *phy_cap_info)
{ … }
static inline bool
ieee80211_eht_capa_size_ok(const u8 *he_capa, const u8 *data, u8 len,
bool from_ap)
{ … }
static inline bool
ieee80211_eht_oper_size_ok(const u8 *data, u8 len)
{ … }
static inline u16
ieee80211_eht_oper_dis_subchan_bitmap(const struct ieee80211_eht_operation *eht_oper)
{ … }
#define IEEE80211_BW_IND_DIS_SUBCH_PRESENT …
struct ieee80211_bandwidth_indication { … } __packed;
static inline bool
ieee80211_bandwidth_indication_size_ok(const u8 *data, u8 len)
{ … }
#define LISTEN_INT_USF …
#define LISTEN_INT_UI …
#define IEEE80211_MAX_USF …
#define IEEE80211_MAX_UI …
#define WLAN_AUTH_OPEN …
#define WLAN_AUTH_SHARED_KEY …
#define WLAN_AUTH_FT …
#define WLAN_AUTH_SAE …
#define WLAN_AUTH_FILS_SK …
#define WLAN_AUTH_FILS_SK_PFS …
#define WLAN_AUTH_FILS_PK …
#define WLAN_AUTH_LEAP …
#define WLAN_AUTH_CHALLENGE_LEN …
#define WLAN_CAPABILITY_ESS …
#define WLAN_CAPABILITY_IBSS …
#define WLAN_CAPABILITY_IS_STA_BSS(cap) …
#define WLAN_CAPABILITY_CF_POLLABLE …
#define WLAN_CAPABILITY_CF_POLL_REQUEST …
#define WLAN_CAPABILITY_PRIVACY …
#define WLAN_CAPABILITY_SHORT_PREAMBLE …
#define WLAN_CAPABILITY_PBCC …
#define WLAN_CAPABILITY_CHANNEL_AGILITY …
#define WLAN_CAPABILITY_SPECTRUM_MGMT …
#define WLAN_CAPABILITY_QOS …
#define WLAN_CAPABILITY_SHORT_SLOT_TIME …
#define WLAN_CAPABILITY_APSD …
#define WLAN_CAPABILITY_RADIO_MEASURE …
#define WLAN_CAPABILITY_DSSS_OFDM …
#define WLAN_CAPABILITY_DEL_BACK …
#define WLAN_CAPABILITY_IMM_BACK …
#define WLAN_CAPABILITY_DMG_TYPE_MASK …
#define WLAN_CAPABILITY_DMG_TYPE_IBSS …
#define WLAN_CAPABILITY_DMG_TYPE_PBSS …
#define WLAN_CAPABILITY_DMG_TYPE_AP …
#define WLAN_CAPABILITY_DMG_CBAP_ONLY …
#define WLAN_CAPABILITY_DMG_CBAP_SOURCE …
#define WLAN_CAPABILITY_DMG_PRIVACY …
#define WLAN_CAPABILITY_DMG_ECPAC …
#define WLAN_CAPABILITY_DMG_SPECTRUM_MGMT …
#define WLAN_CAPABILITY_DMG_RADIO_MEASURE …
#define IEEE80211_SPCT_MSR_RPRT_MODE_LATE …
#define IEEE80211_SPCT_MSR_RPRT_MODE_INCAPABLE …
#define IEEE80211_SPCT_MSR_RPRT_MODE_REFUSED …
#define IEEE80211_SPCT_MSR_RPRT_TYPE_BASIC …
#define IEEE80211_SPCT_MSR_RPRT_TYPE_CCA …
#define IEEE80211_SPCT_MSR_RPRT_TYPE_RPI …
#define IEEE80211_SPCT_MSR_RPRT_TYPE_LCI …
#define IEEE80211_SPCT_MSR_RPRT_TYPE_CIVIC …
#define WLAN_ERP_NON_ERP_PRESENT …
#define WLAN_ERP_USE_PROTECTION …
#define WLAN_ERP_BARKER_PREAMBLE …
enum { … };
enum { … };
enum ieee80211_statuscode { … };
enum ieee80211_reasoncode { … };
enum ieee80211_eid { … };
enum ieee80211_eid_ext { … };
enum ieee80211_category { … };
enum ieee80211_spectrum_mgmt_actioncode { … };
enum ieee80211_ht_actioncode { … };
enum ieee80211_vht_actioncode { … };
enum ieee80211_self_protected_actioncode { … };
enum ieee80211_mesh_actioncode { … };
enum ieee80211_unprotected_wnm_actioncode { … };
enum ieee80211_protected_eht_actioncode { … };
enum ieee80211_key_len { … };
enum ieee80211_s1g_actioncode { … };
#define IEEE80211_WEP_IV_LEN …
#define IEEE80211_WEP_ICV_LEN …
#define IEEE80211_CCMP_HDR_LEN …
#define IEEE80211_CCMP_MIC_LEN …
#define IEEE80211_CCMP_PN_LEN …
#define IEEE80211_CCMP_256_HDR_LEN …
#define IEEE80211_CCMP_256_MIC_LEN …
#define IEEE80211_CCMP_256_PN_LEN …
#define IEEE80211_TKIP_IV_LEN …
#define IEEE80211_TKIP_ICV_LEN …
#define IEEE80211_CMAC_PN_LEN …
#define IEEE80211_GMAC_PN_LEN …
#define IEEE80211_GCMP_HDR_LEN …
#define IEEE80211_GCMP_MIC_LEN …
#define IEEE80211_GCMP_PN_LEN …
#define FILS_NONCE_LEN …
#define FILS_MAX_KEK_LEN …
#define FILS_ERP_MAX_USERNAME_LEN …
#define FILS_ERP_MAX_REALM_LEN …
#define FILS_ERP_MAX_RRK_LEN …
#define PMK_MAX_LEN …
#define SAE_PASSWORD_MAX_LEN …
enum ieee80211_pub_actioncode { … };
enum ieee80211_tdls_actioncode { … };
#define WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING …
#define WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT …
#define WLAN_EXT_CAPA3_TIMING_MEASUREMENT_SUPPORT …
#define WLAN_EXT_CAPA4_TDLS_BUFFER_STA …
#define WLAN_EXT_CAPA4_TDLS_PEER_PSM …
#define WLAN_EXT_CAPA4_TDLS_CHAN_SWITCH …
#define WLAN_EXT_CAPA4_INTERWORKING_ENABLED …
#define WLAN_EXT_CAPA5_TDLS_ENABLED …
#define WLAN_EXT_CAPA5_TDLS_PROHIBITED …
#define WLAN_EXT_CAPA5_TDLS_CH_SW_PROHIBITED …
#define WLAN_EXT_CAPA8_TDLS_WIDE_BW_ENABLED …
#define WLAN_EXT_CAPA8_OPMODE_NOTIF …
#define WLAN_EXT_CAPA8_MAX_MSDU_IN_AMSDU_LSB …
#define WLAN_EXT_CAPA9_MAX_MSDU_IN_AMSDU_MSB …
#define WLAN_EXT_CAPA9_FTM_INITIATOR …
#define WLAN_EXT_CAPA10_TWT_REQUESTER_SUPPORT …
#define WLAN_EXT_CAPA10_TWT_RESPONDER_SUPPORT …
#define WLAN_EXT_CAPA10_OBSS_NARROW_BW_RU_TOLERANCE_SUPPORT …
#define WLAN_EXT_CAPA11_EMA_SUPPORT …
#define WLAN_TDLS_SNAP_RFTYPE …
#define WLAN_BSS_COEX_INFORMATION_REQUEST …
enum ieee80211_mesh_sync_method { … };
enum ieee80211_mesh_path_protocol { … };
enum ieee80211_mesh_path_metric { … };
enum ieee80211_root_mode_identifier { … };
#define IEEE80211_COUNTRY_IE_MIN_LEN …
#define IEEE80211_COUNTRY_STRING_LEN …
#define IEEE80211_COUNTRY_EXTENSION_ID …
struct ieee80211_country_ie_triplet { … } __packed;
enum ieee80211_timeout_interval_type { … };
struct ieee80211_timeout_interval_ie { … } __packed;
enum ieee80211_idle_options { … };
struct ieee80211_bss_max_idle_period_ie { … } __packed;
enum ieee80211_back_actioncode { … };
enum ieee80211_back_parties { … };
enum ieee80211_sa_query_action { … };
struct ieee80211_bssid_index { … };
struct ieee80211_multiple_bssid_configuration { … };
#define SUITE(oui, id) …
#define WLAN_CIPHER_SUITE_USE_GROUP …
#define WLAN_CIPHER_SUITE_WEP40 …
#define WLAN_CIPHER_SUITE_TKIP …
#define WLAN_CIPHER_SUITE_CCMP …
#define WLAN_CIPHER_SUITE_WEP104 …
#define WLAN_CIPHER_SUITE_AES_CMAC …
#define WLAN_CIPHER_SUITE_GCMP …
#define WLAN_CIPHER_SUITE_GCMP_256 …
#define WLAN_CIPHER_SUITE_CCMP_256 …
#define WLAN_CIPHER_SUITE_BIP_GMAC_128 …
#define WLAN_CIPHER_SUITE_BIP_GMAC_256 …
#define WLAN_CIPHER_SUITE_BIP_CMAC_256 …
#define WLAN_CIPHER_SUITE_SMS4 …
#define WLAN_AKM_SUITE_8021X …
#define WLAN_AKM_SUITE_PSK …
#define WLAN_AKM_SUITE_FT_8021X …
#define WLAN_AKM_SUITE_FT_PSK …
#define WLAN_AKM_SUITE_8021X_SHA256 …
#define WLAN_AKM_SUITE_PSK_SHA256 …
#define WLAN_AKM_SUITE_TDLS …
#define WLAN_AKM_SUITE_SAE …
#define WLAN_AKM_SUITE_FT_OVER_SAE …
#define WLAN_AKM_SUITE_AP_PEER_KEY …
#define WLAN_AKM_SUITE_8021X_SUITE_B …
#define WLAN_AKM_SUITE_8021X_SUITE_B_192 …
#define WLAN_AKM_SUITE_FT_8021X_SHA384 …
#define WLAN_AKM_SUITE_FILS_SHA256 …
#define WLAN_AKM_SUITE_FILS_SHA384 …
#define WLAN_AKM_SUITE_FT_FILS_SHA256 …
#define WLAN_AKM_SUITE_FT_FILS_SHA384 …
#define WLAN_AKM_SUITE_OWE …
#define WLAN_AKM_SUITE_FT_PSK_SHA384 …
#define WLAN_AKM_SUITE_PSK_SHA384 …
#define WLAN_AKM_SUITE_WFA_DPP …
#define WLAN_MAX_KEY_LEN …
#define WLAN_PMK_NAME_LEN …
#define WLAN_PMKID_LEN …
#define WLAN_PMK_LEN_EAP_LEAP …
#define WLAN_PMK_LEN …
#define WLAN_PMK_LEN_SUITE_B_192 …
#define WLAN_OUI_WFA …
#define WLAN_OUI_TYPE_WFA_P2P …
#define WLAN_OUI_TYPE_WFA_DPP …
#define WLAN_OUI_MICROSOFT …
#define WLAN_OUI_TYPE_MICROSOFT_WPA …
#define WLAN_OUI_TYPE_MICROSOFT_WMM …
#define WLAN_OUI_TYPE_MICROSOFT_WPS …
#define WLAN_OUI_TYPE_MICROSOFT_TPC …
#define IEEE80211_WMM_IE_TSPEC_TID_MASK …
#define IEEE80211_WMM_IE_TSPEC_TID_SHIFT …
enum ieee80211_tspec_status_code { … };
struct ieee80211_tspec_ie { … } __packed;
struct ieee80211_he_6ghz_capa { … } __packed;
#define IEEE80211_HE_6GHZ_CAP_MIN_MPDU_START …
#define IEEE80211_HE_6GHZ_CAP_MAX_AMPDU_LEN_EXP …
#define IEEE80211_HE_6GHZ_CAP_MAX_MPDU_LEN …
#define IEEE80211_HE_6GHZ_CAP_SM_PS …
#define IEEE80211_HE_6GHZ_CAP_RD_RESPONDER …
#define IEEE80211_HE_6GHZ_CAP_RX_ANTPAT_CONS …
#define IEEE80211_HE_6GHZ_CAP_TX_ANTPAT_CONS …
static inline u8 *ieee80211_get_qos_ctl(struct ieee80211_hdr *hdr)
{ … }
static inline u8 ieee80211_get_tid(struct ieee80211_hdr *hdr)
{ … }
static inline u8 *ieee80211_get_SA(struct ieee80211_hdr *hdr)
{ … }
static inline u8 *ieee80211_get_DA(struct ieee80211_hdr *hdr)
{ … }
static inline bool ieee80211_is_bufferable_mmpdu(struct sk_buff *skb)
{ … }
static inline bool _ieee80211_is_robust_mgmt_frame(struct ieee80211_hdr *hdr)
{ … }
static inline bool ieee80211_is_robust_mgmt_frame(struct sk_buff *skb)
{ … }
static inline bool ieee80211_is_public_action(struct ieee80211_hdr *hdr,
size_t len)
{ … }
static inline bool
ieee80211_is_protected_dual_of_public_action(struct sk_buff *skb)
{ … }
static inline bool _ieee80211_is_group_privacy_action(struct ieee80211_hdr *hdr)
{ … }
static inline bool ieee80211_is_group_privacy_action(struct sk_buff *skb)
{ … }
static inline unsigned long ieee80211_tu_to_usec(unsigned long tu)
{ … }
static inline bool ieee80211_check_tim(const struct ieee80211_tim_ie *tim,
u8 tim_len, u16 aid)
{ … }
static inline int ieee80211_get_tdls_action(struct sk_buff *skb)
{ … }
#define TU_TO_JIFFIES(x) …
#define TU_TO_EXP_TIME(x) …
#define MHZ_TO_KHZ(freq) …
#define KHZ_TO_MHZ(freq) …
#define PR_KHZ(f) …
#define KHZ_F …
#define DBI_TO_MBI(gain) …
#define MBI_TO_DBI(gain) …
#define DBM_TO_MBM(gain) …
#define MBM_TO_DBM(gain) …
static inline bool ieee80211_action_contains_tpc(struct sk_buff *skb)
{ … }
static inline bool ieee80211_is_timing_measurement(struct sk_buff *skb)
{ … }
static inline bool ieee80211_is_ftm(struct sk_buff *skb)
{ … }
struct element { … } __packed;
#define for_each_element(_elem, _data, _datalen) …
#define for_each_element_id(element, _id, data, datalen) …
#define for_each_element_extid(element, extid, _data, _datalen) …
#define for_each_subelement(sub, element) …
#define for_each_subelement_id(sub, id, element) …
#define for_each_subelement_extid(sub, extid, element) …
static inline bool for_each_element_completed(const struct element *element,
const void *data, size_t datalen)
{ … }
#define WLAN_RSNX_CAPA_PROTECTED_TWT …
#define WLAN_RSNX_CAPA_SAE_H2E …
#define IEEE80211_AP_INFO_TBTT_HDR_TYPE …
#define IEEE80211_AP_INFO_TBTT_HDR_FILTERED …
#define IEEE80211_AP_INFO_TBTT_HDR_COLOC …
#define IEEE80211_AP_INFO_TBTT_HDR_COUNT …
#define IEEE80211_TBTT_INFO_TYPE_TBTT …
#define IEEE80211_TBTT_INFO_TYPE_MLD …
#define IEEE80211_RNR_TBTT_PARAMS_OCT_RECOMMENDED …
#define IEEE80211_RNR_TBTT_PARAMS_SAME_SSID …
#define IEEE80211_RNR_TBTT_PARAMS_MULTI_BSSID …
#define IEEE80211_RNR_TBTT_PARAMS_TRANSMITTED_BSSID …
#define IEEE80211_RNR_TBTT_PARAMS_COLOC_ESS …
#define IEEE80211_RNR_TBTT_PARAMS_PROBE_ACTIVE …
#define IEEE80211_RNR_TBTT_PARAMS_COLOC_AP …
#define IEEE80211_RNR_TBTT_PARAMS_PSD_NO_LIMIT …
#define IEEE80211_RNR_TBTT_PARAMS_PSD_RESERVED …
struct ieee80211_neighbor_ap_info { … } __packed;
enum ieee80211_range_params_max_total_ltf { … };
struct ieee80211_rnr_mld_params { … } __packed;
#define IEEE80211_RNR_MLD_PARAMS_LINK_ID …
#define IEEE80211_RNR_MLD_PARAMS_BSS_CHANGE_COUNT …
#define IEEE80211_RNR_MLD_PARAMS_UPDATES_INCLUDED …
#define IEEE80211_RNR_MLD_PARAMS_DISABLED_LINK …
struct ieee80211_tbtt_info_7_8_9 { … } __packed;
struct ieee80211_tbtt_info_ge_11 { … } __packed;
#define IEEE80211_MLD_MAX_NUM_LINKS …
#define IEEE80211_ML_CONTROL_TYPE …
#define IEEE80211_ML_CONTROL_TYPE_BASIC …
#define IEEE80211_ML_CONTROL_TYPE_PREQ …
#define IEEE80211_ML_CONTROL_TYPE_RECONF …
#define IEEE80211_ML_CONTROL_TYPE_TDLS …
#define IEEE80211_ML_CONTROL_TYPE_PRIO_ACCESS …
#define IEEE80211_ML_CONTROL_PRESENCE_MASK …
struct ieee80211_multi_link_elem { … } __packed;
#define IEEE80211_MLC_BASIC_PRES_LINK_ID …
#define IEEE80211_MLC_BASIC_PRES_BSS_PARAM_CH_CNT …
#define IEEE80211_MLC_BASIC_PRES_MED_SYNC_DELAY …
#define IEEE80211_MLC_BASIC_PRES_EML_CAPA …
#define IEEE80211_MLC_BASIC_PRES_MLD_CAPA_OP …
#define IEEE80211_MLC_BASIC_PRES_MLD_ID …
#define IEEE80211_MED_SYNC_DELAY_DURATION …
#define IEEE80211_MED_SYNC_DELAY_SYNC_OFDM_ED_THRESH …
#define IEEE80211_MED_SYNC_DELAY_SYNC_MAX_NUM_TXOPS …
#define IEEE80211_MED_SYNC_DELAY_DEFAULT …
#define IEEE80211_EML_CAP_EMLSR_SUPP …
#define IEEE80211_EML_CAP_EMLSR_PADDING_DELAY …
#define IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_0US …
#define IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_32US …
#define IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_64US …
#define IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_128US …
#define IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_256US …
#define IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY …
#define IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_0US …
#define IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_16US …
#define IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_32US …
#define IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_64US …
#define IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_128US …
#define IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_256US …
#define IEEE80211_EML_CAP_EMLMR_SUPPORT …
#define IEEE80211_EML_CAP_EMLMR_DELAY …
#define IEEE80211_EML_CAP_EMLMR_DELAY_0US …
#define IEEE80211_EML_CAP_EMLMR_DELAY_32US …
#define IEEE80211_EML_CAP_EMLMR_DELAY_64US …
#define IEEE80211_EML_CAP_EMLMR_DELAY_128US …
#define IEEE80211_EML_CAP_EMLMR_DELAY_256US …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_0 …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_128US …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_256US …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_512US …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_1TU …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_2TU …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_4TU …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_8TU …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_16TU …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_32TU …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_64TU …
#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT_128TU …
#define IEEE80211_MLD_CAP_OP_MAX_SIMUL_LINKS …
#define IEEE80211_MLD_CAP_OP_SRS_SUPPORT …
#define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_SUPP …
#define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_NO_SUPP …
#define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_SUPP_SAME …
#define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_RESERVED …
#define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_SUPP_DIFF …
#define IEEE80211_MLD_CAP_OP_FREQ_SEP_TYPE_IND …
#define IEEE80211_MLD_CAP_OP_AAR_SUPPORT …
struct ieee80211_mle_basic_common_info { … } __packed;
#define IEEE80211_MLC_PREQ_PRES_MLD_ID …
struct ieee80211_mle_preq_common_info { … } __packed;
#define IEEE80211_MLC_RECONF_PRES_MLD_MAC_ADDR …
struct ieee80211_mle_tdls_common_info { … } __packed;
#define IEEE80211_MLC_PRIO_ACCESS_PRES_AP_MLD_MAC_ADDR …
static inline u8 ieee80211_mle_common_size(const u8 *data)
{ … }
static inline int ieee80211_mle_get_link_id(const u8 *data)
{ … }
static inline int
ieee80211_mle_get_bss_param_ch_cnt(const u8 *data)
{ … }
static inline u16 ieee80211_mle_get_eml_med_sync_delay(const u8 *data)
{ … }
static inline u16 ieee80211_mle_get_eml_cap(const u8 *data)
{ … }
static inline u16 ieee80211_mle_get_mld_capa_op(const u8 *data)
{ … }
static inline u8 ieee80211_mle_get_mld_id(const u8 *data)
{ … }
static inline bool ieee80211_mle_size_ok(const u8 *data, size_t len)
{ … }
static inline bool ieee80211_mle_type_ok(const u8 *data, u8 type, size_t len)
{ … }
enum ieee80211_mle_subelems { … };
#define IEEE80211_MLE_STA_CONTROL_LINK_ID …
#define IEEE80211_MLE_STA_CONTROL_COMPLETE_PROFILE …
#define IEEE80211_MLE_STA_CONTROL_STA_MAC_ADDR_PRESENT …
#define IEEE80211_MLE_STA_CONTROL_BEACON_INT_PRESENT …
#define IEEE80211_MLE_STA_CONTROL_TSF_OFFS_PRESENT …
#define IEEE80211_MLE_STA_CONTROL_DTIM_INFO_PRESENT …
#define IEEE80211_MLE_STA_CONTROL_NSTR_LINK_PAIR_PRESENT …
#define IEEE80211_MLE_STA_CONTROL_NSTR_BITMAP_SIZE …
#define IEEE80211_MLE_STA_CONTROL_BSS_PARAM_CHANGE_CNT_PRESENT …
struct ieee80211_mle_per_sta_profile { … } __packed;
static inline bool ieee80211_mle_basic_sta_prof_size_ok(const u8 *data,
size_t len)
{ … }
static inline u8
ieee80211_mle_basic_sta_prof_bss_param_ch_cnt(const struct ieee80211_mle_per_sta_profile *prof)
{ … }
#define IEEE80211_MLE_STA_RECONF_CONTROL_LINK_ID …
#define IEEE80211_MLE_STA_RECONF_CONTROL_COMPLETE_PROFILE …
#define IEEE80211_MLE_STA_RECONF_CONTROL_STA_MAC_ADDR_PRESENT …
#define IEEE80211_MLE_STA_RECONF_CONTROL_AP_REM_TIMER_PRESENT …
#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_UPDATE_TYPE …
#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_PARAMS_PRESENT …
static inline bool ieee80211_mle_reconf_sta_prof_size_ok(const u8 *data,
size_t len)
{ … }
static inline bool ieee80211_tid_to_link_map_size_ok(const u8 *data, size_t len)
{ … }
#define for_each_mle_subelement(_elem, _data, _len) …
#endif