aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2020-09-24 17:17:52 +0300
committerDmitry Vyukov <dvyukov@google.com>2020-10-01 10:08:58 +0200
commit03d10b2b77cd1d4dde5b0028a6849c9d10427386 (patch)
treeb040e60a807ccc7b44111f45a6d2ff847a04f3be /sys/linux
parenta9767fb2a6393444e871a02e79a14ccfa2aef52b (diff)
sys/linux: enhance nl80211 descriptions
Completed netlink descriptions for nl80211. Verified by executing syzkaller locally and exploring coverage of the corresponding code.
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/net_80211.txt204
-rw-r--r--sys/linux/net_80211.txt.const119
-rw-r--r--sys/linux/socket_netlink_generic_80211.txt876
-rw-r--r--sys/linux/socket_netlink_generic_80211.txt.const378
4 files changed, 1433 insertions, 144 deletions
diff --git a/sys/linux/net_80211.txt b/sys/linux/net_80211.txt
index d7c5490a5..a3bc9139f 100644
--- a/sys/linux/net_80211.txt
+++ b/sys/linux/net_80211.txt
@@ -1,8 +1,12 @@
# Copyright 2020 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+# This file contains descriptions of fields, structs and frames that are necessary to generate and inject 802.11 frames.
+# Descriptions specified here follow the IEEE 802.11-2016 standard. It can be accessed here: https://ieeexplore.ieee.org/document/7786995 (the document is freely available through the IEEE GET program™).
+
include <linux/ieee80211.h>
+# Mac addresses of virtual wifi devices created during executor initialization
type ieee80211_fixed_mac_addr[LAST] {
byte0 const[0x8, int8]
byte1 const[0x2, int8]
@@ -21,6 +25,11 @@ ieee80211_mac_addr [
ieee80211_ssid [
random array[int8, 0:IEEE80211_MAX_SSID_LEN]
default_ibss_ssid array[const[0x1, int8], 6]
+ default_ap_ssid array[const[0x2, int8], 6]
+] [varlen]
+
+ieee80211_mesh_id [
+ default array[const[0x3, int8], 6]
] [varlen]
type ieee80211_frame array[int8]
@@ -55,3 +64,198 @@ define JOIN_IBSS_BG_SCAN 0x1
define JOIN_IBSS_BG_NO_SCAN 0x2
join_ibss_modes = JOIN_IBSS_NO_SCAN, JOIN_IBSS_BG_SCAN, JOIN_IBSS_BG_NO_SCAN
+
+################################################################################
+# Common fields and enums
+################################################################################
+
+# As defined in drivers/net/wireless/mac80211_hwsim.c
+ieee80211_channel_freq_mhz = 2412, 2417, 2422, 2427, 2432, 2437, 2442, 2447, 2452, 2457, 2462, 2467, 2472, 2484, 5180, 5200, 5220, 5240, 5260, 5280, 5300, 5320, 5500, 5520, 5540, 5560, 5580, 5600, 5620, 5640, 5660, 5680, 5700, 5745, 5765, 5785, 5805, 5825, 5845, 5855, 5860, 5865, 5870, 5875, 5880, 5885, 5890, 5895, 5900, 5905, 5910, 5915, 5920, 5925
+
+ieee80211_raw_rates = 10, 20, 55, 60, 90, 110, 120, 180, 240, 360, 480, 540
+
+# Combined set of 802.11 rates for 5Mhz, 10Mhz and other channel widths
+# Only rates for drivers/net/wireless/mac80211_hwsim.c are defined
+ieee80211_rate_label = 1, 2, 3, 4, 5, 6, 9, 11, 12, 18, 22, 24, 27, 36, 48, 54, 72, 96, 108
+
+# Rates as they are represented (see 9.4.2.3 of IEEEE 802.11-2016)
+ieee80211_rate {
+ label flags[ieee80211_rate_label, int8:7]
+ mandatory int8:1
+} [packed]
+
+type ieee80211_beacon_interval[BASE_TYPE] [
+ default const[100, BASE_TYPE]
+ random BASE_TYPE
+]
+
+type ieee80211_timestamp int64
+
+# Pseudo syscalls and initially created devices use the default frequency below
+type ieee80211_frequency_mhz[BASE_TYPE] [
+ default const[2412, BASE_TYPE]
+ random flags[ieee80211_channel_freq_mhz, BASE_TYPE]
+]
+
+# Information Element structure (see 9.4.2.1 of IEEE 802.11-2016)
+# Also see `element` struct in include/linux/ieee80211.h
+type ieee80211_generic_ie[ID_TYPE, DATA_TYPE] {
+ id ID_TYPE
+ len len[data, int8]
+ data DATA_TYPE
+} [packed]
+
+ieee80211_ie [
+ random ieee80211_generic_ie[int8, array[int8, 0:255]]
+] [varlen]
+
+# HT Capabilities (see 9.4.2.56 of IEEE 802.11-2016)
+ieee80211_ht_cap_info = IEEE80211_HT_CAP_LDPC_CODING, IEEE80211_HT_CAP_SUP_WIDTH_20_40, IEEE80211_HT_CAP_SM_PS, IEEE80211_HT_CAP_SM_PS_SHIFT, IEEE80211_HT_CAP_GRN_FLD, IEEE80211_HT_CAP_SGI_20, IEEE80211_HT_CAP_SGI_40, IEEE80211_HT_CAP_TX_STBC, IEEE80211_HT_CAP_RX_STBC, IEEE80211_HT_CAP_RX_STBC_SHIFT, IEEE80211_HT_CAP_DELAY_BA, IEEE80211_HT_CAP_MAX_AMSDU, IEEE80211_HT_CAP_DSSSCCK40, IEEE80211_HT_CAP_RESERVED, IEEE80211_HT_CAP_40MHZ_INTOLERANT, IEEE80211_HT_CAP_LSIG_TXOP_PROT
+
+ieee80211_ht_ext_cap_info = IEEE80211_HT_EXT_CAP_PCO, IEEE80211_HT_EXT_CAP_PCO_TIME, IEEE80211_HT_EXT_CAP_PCO_TIME_SHIFT, IEEE80211_HT_EXT_CAP_MCS_FB, IEEE80211_HT_EXT_CAP_MCS_FB_SHIFT, IEEE80211_HT_EXT_CAP_HTC_SUP, IEEE80211_HT_EXT_CAP_RD_RESPONDER
+
+# See 9.4.2.56.4 of IEEE 802.11-2016
+ieee80211_mcs_info {
+ rx_bitmask_1 int64
+ rx_bitmask_2 int64:13
+ reserved const[0, int64:3]
+ rx_highest_dr int64:10
+ reserved_2 const[0, int64:6]
+ tx_set_defined int64:1
+ tx_rx_not_eq int64:1
+ max_spac_streams int64:2
+ uneq_modulation int64:1
+ reserved_3 int64:27
+} [packed]
+
+# See Fig. 9-332 of IEEE 802.11-2016
+ieee80211_ht_cap {
+ cap_info flags[ieee80211_ht_cap_info, int16]
+ a_mpdu_exponent int8:2
+ a_mpdu_min_spacing int8:3
+ a_mpdu_reserved const[0, int8:3]
+ mcs ieee80211_mcs_info
+ extended_ht_cap_info flags[ieee80211_ht_ext_cap_info, int16]
+ tx_BF_cap_info int32
+ antenna_selection_info int8
+} [packed]
+
+# VHT Capabilities (see 9.4.2.56 of IEEE 802.11-2016)
+ieee80211_vht_cap_info = IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895, IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991, IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454, IEEE80211_VHT_CAP_MAX_MPDU_MASK, IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ, IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ, IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK, IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_SHIFT, IEEE80211_VHT_CAP_RXLDPC, IEEE80211_VHT_CAP_SHORT_GI_80, IEEE80211_VHT_CAP_SHORT_GI_160, IEEE80211_VHT_CAP_TXSTBC, IEEE80211_VHT_CAP_RXSTBC_1, IEEE80211_VHT_CAP_RXSTBC_2, IEEE80211_VHT_CAP_RXSTBC_3, IEEE80211_VHT_CAP_RXSTBC_4, IEEE80211_VHT_CAP_RXSTBC_MASK, IEEE80211_VHT_CAP_RXSTBC_SHIFT, IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE, IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE, IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT, IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK, IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT, IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK, IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE, IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE, IEEE80211_VHT_CAP_VHT_TXOP_PS, IEEE80211_VHT_CAP_HTC_VHT, IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT, IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK, IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_UNSOL_MFB, IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB, IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN, IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN, IEEE80211_VHT_CAP_EXT_NSS_BW_SHIFT, IEEE80211_VHT_CAP_EXT_NSS_BW_MASK
+
+ieee80211_vht_mcs_info {
+ rx_mcs_map int16
+ rx_highest int16
+ tx_mcs_map int16
+ tx_highest int16
+} [packed]
+
+ieee80211_vht_cap {
+ vht_cap_info flags[ieee80211_vht_cap_info, int32]
+ supp_mcs ieee80211_vht_mcs_info
+} [packed]
+
+# As defined by Table 9-45 of IEEE 802.11-2016
+type ieee80211_reason_code[BASE_TYPE] BASE_TYPE[0:66]
+
+# As defined by Table 9-46 of IEEE 802.11-2016
+type ieee80211_status_code[BASE_TYPE] BASE_TYPE[0:107]
+
+# Only NAV is supported at the moment. No CPE or PS-Poll frames
+ieee80211_duration {
+ duration int16:15
+ nav_flag const[0, int16:1]
+} [packed]
+
+# As defined in sect. 9.2.4.4.1 of IEEE 802.11-216
+ieee80211_seq_control {
+ frag_number int16:4
+ seq_number int16:12
+} [packed]
+
+# As defined by Table 9-342 of IEEE 802.11-2016
+ieee80211_tdls_action_codes = WLAN_TDLS_SETUP_REQUEST, WLAN_TDLS_SETUP_RESPONSE, WLAN_TDLS_SETUP_CONFIRM, WLAN_TDLS_TEARDOWN, WLAN_TDLS_PEER_TRAFFIC_INDICATION, WLAN_TDLS_CHANNEL_SWITCH_REQUEST, WLAN_TDLS_CHANNEL_SWITCH_RESPONSE, WLAN_TDLS_PEER_PSM_REQUEST, WLAN_TDLS_PEER_PSM_RESPONSE, WLAN_TDLS_PEER_TRAFFIC_RESPONSE, WLAN_TDLS_DISCOVERY_REQUEST
+
+# As defined by Table 9-131 of IEEE 802.11-2016
+ieee80211_cipher_suites = WLAN_CIPHER_SUITE_USE_GROUP, WLAN_CIPHER_SUITE_WEP40, WLAN_CIPHER_SUITE_TKIP, WLAN_CIPHER_SUITE_CCMP, WLAN_CIPHER_SUITE_WEP104, WLAN_CIPHER_SUITE_AES_CMAC, WLAN_CIPHER_SUITE_GCMP, WLAN_CIPHER_SUITE_GCMP_256, WLAN_CIPHER_SUITE_CCMP_256, WLAN_CIPHER_SUITE_BIP_GMAC_128, WLAN_CIPHER_SUITE_BIP_GMAC_256, WLAN_CIPHER_SUITE_BIP_CMAC_256
+
+# As defined by Table 9-133 of IEEE 802.11-2016
+ieee80211_akm_suites = WLAN_AKM_SUITE_8021X, WLAN_AKM_SUITE_PSK, WLAN_AKM_SUITE_FT_8021X, WLAN_AKM_SUITE_FT_PSK, WLAN_AKM_SUITE_8021X_SHA256, WLAN_AKM_SUITE_PSK_SHA256, WLAN_AKM_SUITE_TDLS, WLAN_AKM_SUITE_SAE, WLAN_AKM_SUITE_FT_OVER_SAE, WLAN_AKM_SUITE_AP_PEER_KEY, WLAN_AKM_SUITE_8021X_SUITE_B, WLAN_AKM_SUITE_8021X_SUITE_B_192, WLAN_AKM_SUITE_FT_8021X_SHA384, WLAN_AKM_SUITE_FILS_SHA256, WLAN_AKM_SUITE_FILS_SHA384, WLAN_AKM_SUITE_FT_FILS_SHA256, WLAN_AKM_SUITE_FT_FILS_SHA384, WLAN_AKM_SUITE_OWE, WLAN_AKM_SUITE_FT_PSK_SHA384, WLAN_AKM_SUITE_PSK_SHA384
+
+# Capability Information field (see sect. 9.4.1.4 of IEEE 802.11-2016)
+ieee80211_capabilities = WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_IBSS, WLAN_CAPABILITY_CF_POLLABLE, WLAN_CAPABILITY_CF_POLL_REQUEST, WLAN_CAPABILITY_PRIVACY, WLAN_CAPABILITY_SHORT_PREAMBLE, WLAN_CAPABILITY_PBCC, WLAN_CAPABILITY_CHANNEL_AGILITY, WLAN_CAPABILITY_SPECTRUM_MGMT, WLAN_CAPABILITY_QOS, WLAN_CAPABILITY_SHORT_SLOT_TIME, WLAN_CAPABILITY_APSD, WLAN_CAPABILITY_RADIO_MEASURE, WLAN_CAPABILITY_DSSS_OFDM, WLAN_CAPABILITY_DEL_BACK, WLAN_CAPABILITY_IMM_BACK
+
+type ieee80211_capability[TYPE] flags[ieee80211_capabilities, TYPE]
+
+#############################################
+# Basic 802.11 frame structures
+#############################################
+
+ieee80211_ht_control_80211n {
+ vht const[0, int16:1]
+ link_adaptation_ctrl int16:15
+ calibration_pos int8:2
+ calibration_seq int8:2
+ reserved_1 const[0, int8:2]
+ csi_steering int8:2
+ ndp int8:1
+ reserved_2 const[0, int8:5]
+ ac int8:1
+ rdg int8:1
+} [packed]
+
+# 802.11ac introduced another version of this struct, but it is omitted because HT header is not supported by mac80211 anyway
+ieee80211_ht_control [
+ ver_80211n ieee80211_ht_control_80211n
+]
+
+type ieee80211_append_ht_control[FRAME] {
+ prefix FRAME
+ ht_control ieee80211_ht_control
+} [packed]
+
+# Generic Frame Control field
+type ieee80211_fc[TO_DS, FROM_DS, TYPE, SUBTYPE, ORDER] {
+ version const[0, int8:2]
+ type TYPE
+ subtype SUBTYPE
+ to_ds const[TO_DS, int8:1]
+ from_ds const[FROM_DS, int8:1]
+ more int8:1
+ retry int8:1
+ power_mgmt int8:1
+ more_data int8:1
+ protected const[0, int8:1]
+ order ORDER
+} [packed]
+
+###############################################
+# 802.11 Management frames
+###############################################
+
+define IEEE80211_MGMT_FRAME_BEACON (IEEE80211_STYPE_BEACON >> 4)
+
+type ieee80211_pre_mgmt_header[SUBTYPE_CONST, ORDER_CONST] {
+ fc ieee80211_fc[0, 0, const[0x0, int8:2], const[SUBTYPE_CONST, int8:4], const[ORDER_CONST, int8:1]]
+ duration ieee80211_duration
+ addr_1 ieee80211_mac_addr
+ addr_2 ieee80211_mac_addr
+ addr_3 ieee80211_bssid
+ seqno ieee80211_seq_control
+} [packed]
+
+type ieee80211_mgmt_header[SUBTYPE_CONST] [
+ wo_ht ieee80211_pre_mgmt_header[SUBTYPE_CONST, 0x0]
+ with_ht ieee80211_append_ht_control[ieee80211_pre_mgmt_header[SUBTYPE_CONST, 0x1]]
+] [varlen]
+
+# Beacon frame
+# See Table 9-27 of IEEE 802.11-2016
+
+ieee80211_mgmt_beacon {
+ header ieee80211_mgmt_header[IEEE80211_MGMT_FRAME_BEACON]
+ timestamp ieee80211_timestamp
+ beacon_interval ieee80211_beacon_interval[int16]
+ capabilities ieee80211_capability[int16]
+# TODO: here should be Information Elements in the order specified by Table 9-27 of IEEE 802.11-2016
+} [packed]
diff --git a/sys/linux/net_80211.txt.const b/sys/linux/net_80211.txt.const
index 86aaf01de..dfbc992ac 100644
--- a/sys/linux/net_80211.txt.const
+++ b/sys/linux/net_80211.txt.const
@@ -1,6 +1,125 @@
# Code generated by syz-sysgen. DO NOT EDIT.
arches = 386, amd64, arm, arm64, mips64le, ppc64le, riscv64, s390x
+IEEE80211_HT_CAP_40MHZ_INTOLERANT = 16384
+IEEE80211_HT_CAP_DELAY_BA = 1024
+IEEE80211_HT_CAP_DSSSCCK40 = 4096
+IEEE80211_HT_CAP_GRN_FLD = 16
+IEEE80211_HT_CAP_LDPC_CODING = 1
+IEEE80211_HT_CAP_LSIG_TXOP_PROT = 32768
+IEEE80211_HT_CAP_MAX_AMSDU = 2048
+IEEE80211_HT_CAP_RESERVED = 8192
+IEEE80211_HT_CAP_RX_STBC = 768
+IEEE80211_HT_CAP_RX_STBC_SHIFT = 8
+IEEE80211_HT_CAP_SGI_20 = 32
+IEEE80211_HT_CAP_SGI_40 = 64
+IEEE80211_HT_CAP_SM_PS = 12
+IEEE80211_HT_CAP_SM_PS_SHIFT = 2
+IEEE80211_HT_CAP_SUP_WIDTH_20_40 = 2
+IEEE80211_HT_CAP_TX_STBC = 128
+IEEE80211_HT_EXT_CAP_HTC_SUP = 1024
+IEEE80211_HT_EXT_CAP_MCS_FB = 768
+IEEE80211_HT_EXT_CAP_MCS_FB_SHIFT = 8
+IEEE80211_HT_EXT_CAP_PCO = 1
+IEEE80211_HT_EXT_CAP_PCO_TIME = 6
+IEEE80211_HT_EXT_CAP_PCO_TIME_SHIFT = 1
+IEEE80211_HT_EXT_CAP_RD_RESPONDER = 2048
IEEE80211_MAX_SSID_LEN = 32
+IEEE80211_MGMT_FRAME_BEACON = 8
+IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK = 57344
+IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT = 13
+IEEE80211_VHT_CAP_EXT_NSS_BW_MASK = 3221225472
+IEEE80211_VHT_CAP_EXT_NSS_BW_SHIFT = 30
+IEEE80211_VHT_CAP_HTC_VHT = 4194304
+IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK = 58720256
+IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT = 23
+IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454 = 2
+IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895 = 0
+IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991 = 1
+IEEE80211_VHT_CAP_MAX_MPDU_MASK = 3
+IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE = 1048576
+IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE = 524288
+IEEE80211_VHT_CAP_RXLDPC = 16
+IEEE80211_VHT_CAP_RXSTBC_1 = 256
+IEEE80211_VHT_CAP_RXSTBC_2 = 512
+IEEE80211_VHT_CAP_RXSTBC_3 = 768
+IEEE80211_VHT_CAP_RXSTBC_4 = 1024
+IEEE80211_VHT_CAP_RXSTBC_MASK = 1792
+IEEE80211_VHT_CAP_RXSTBC_SHIFT = 8
+IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN = 268435456
+IEEE80211_VHT_CAP_SHORT_GI_160 = 64
+IEEE80211_VHT_CAP_SHORT_GI_80 = 32
+IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK = 458752
+IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT = 16
+IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ = 4
+IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ = 8
+IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK = 12
+IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_SHIFT = 2
+IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE = 4096
+IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE = 2048
+IEEE80211_VHT_CAP_TXSTBC = 128
+IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN = 536870912
+IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB = 201326592
+IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_UNSOL_MFB = 134217728
+IEEE80211_VHT_CAP_VHT_TXOP_PS = 2097152
JOIN_IBSS_BG_NO_SCAN = 2
JOIN_IBSS_BG_SCAN = 1
JOIN_IBSS_NO_SCAN = 0
+WLAN_AKM_SUITE_8021X = 1027073
+WLAN_AKM_SUITE_8021X_SHA256 = 1027077
+WLAN_AKM_SUITE_8021X_SUITE_B = 1027083
+WLAN_AKM_SUITE_8021X_SUITE_B_192 = 1027084
+WLAN_AKM_SUITE_AP_PEER_KEY = 1027082
+WLAN_AKM_SUITE_FILS_SHA256 = 1027086
+WLAN_AKM_SUITE_FILS_SHA384 = 1027087
+WLAN_AKM_SUITE_FT_8021X = 1027075
+WLAN_AKM_SUITE_FT_8021X_SHA384 = 1027085
+WLAN_AKM_SUITE_FT_FILS_SHA256 = 1027088
+WLAN_AKM_SUITE_FT_FILS_SHA384 = 1027089
+WLAN_AKM_SUITE_FT_OVER_SAE = 1027081
+WLAN_AKM_SUITE_FT_PSK = 1027076
+WLAN_AKM_SUITE_FT_PSK_SHA384 = 1027091
+WLAN_AKM_SUITE_OWE = 1027090
+WLAN_AKM_SUITE_PSK = 1027074
+WLAN_AKM_SUITE_PSK_SHA256 = 1027078
+WLAN_AKM_SUITE_PSK_SHA384 = 1027092
+WLAN_AKM_SUITE_SAE = 1027080
+WLAN_AKM_SUITE_TDLS = 1027079
+WLAN_CAPABILITY_APSD = 2048
+WLAN_CAPABILITY_CF_POLLABLE = 4
+WLAN_CAPABILITY_CF_POLL_REQUEST = 8
+WLAN_CAPABILITY_CHANNEL_AGILITY = 128
+WLAN_CAPABILITY_DEL_BACK = 16384
+WLAN_CAPABILITY_DSSS_OFDM = 8192
+WLAN_CAPABILITY_ESS = 1
+WLAN_CAPABILITY_IBSS = 2
+WLAN_CAPABILITY_IMM_BACK = 32768
+WLAN_CAPABILITY_PBCC = 64
+WLAN_CAPABILITY_PRIVACY = 16
+WLAN_CAPABILITY_QOS = 512
+WLAN_CAPABILITY_RADIO_MEASURE = 4096
+WLAN_CAPABILITY_SHORT_PREAMBLE = 32
+WLAN_CAPABILITY_SHORT_SLOT_TIME = 1024
+WLAN_CAPABILITY_SPECTRUM_MGMT = 256
+WLAN_CIPHER_SUITE_AES_CMAC = 1027078
+WLAN_CIPHER_SUITE_BIP_CMAC_256 = 1027085
+WLAN_CIPHER_SUITE_BIP_GMAC_128 = 1027083
+WLAN_CIPHER_SUITE_BIP_GMAC_256 = 1027084
+WLAN_CIPHER_SUITE_CCMP = 1027076
+WLAN_CIPHER_SUITE_CCMP_256 = 1027082
+WLAN_CIPHER_SUITE_GCMP = 1027080
+WLAN_CIPHER_SUITE_GCMP_256 = 1027081
+WLAN_CIPHER_SUITE_TKIP = 1027074
+WLAN_CIPHER_SUITE_USE_GROUP = 1027072
+WLAN_CIPHER_SUITE_WEP104 = 1027077
+WLAN_CIPHER_SUITE_WEP40 = 1027073
+WLAN_TDLS_CHANNEL_SWITCH_REQUEST = 5
+WLAN_TDLS_CHANNEL_SWITCH_RESPONSE = 6
+WLAN_TDLS_DISCOVERY_REQUEST = 10
+WLAN_TDLS_PEER_PSM_REQUEST = 7
+WLAN_TDLS_PEER_PSM_RESPONSE = 8
+WLAN_TDLS_PEER_TRAFFIC_INDICATION = 4
+WLAN_TDLS_PEER_TRAFFIC_RESPONSE = 9
+WLAN_TDLS_SETUP_CONFIRM = 2
+WLAN_TDLS_SETUP_REQUEST = 0
+WLAN_TDLS_SETUP_RESPONSE = 1
+WLAN_TDLS_TEARDOWN = 3
diff --git a/sys/linux/socket_netlink_generic_80211.txt b/sys/linux/socket_netlink_generic_80211.txt
index 71d4fd175..83da3013f 100644
--- a/sys/linux/socket_netlink_generic_80211.txt
+++ b/sys/linux/socket_netlink_generic_80211.txt
@@ -6,77 +6,174 @@ include <uapi/linux/netlink.h>
include <uapi/linux/genetlink.h>
include <uapi/linux/nl80211.h>
include <linux/ieee80211.h>
-
-# TODO: the description is incomplete, lots of commands are missing.
-# But it makes sense to setup hwsim devices first, otherwise there is not much to test.
+include <net/cfg80211.h>
resource nl80211_family_id[int16]
resource nl80211_ifindex[int32]
nl80211_devnames = "wlan0", "wlan1"
-type msghdr_nl80211[CMD, POLICY] msghdr_netlink[netlink_msg_t[nl80211_family_id, genlmsghdr_t[CMD], POLICY]]
+type msg_nl80211_payload[CMD, PAYLOAD] {
+ genl_hdr genlmsghdr_t[CMD]
+ payload PAYLOAD
+} [packed, align[4]]
+
+type msghdr_nl80211[CMD, PAYLOAD, POLICY] msghdr_netlink[netlink_msg_t[nl80211_family_id, msg_nl80211_payload[CMD, PAYLOAD], POLICY]]
+# For commands with NL80211_FLAG_NEED_WDEV or NL80211_FLAG_NEED_NETDEV
+type msghdr_nl80211_wdev[CMD, POLICY] msghdr_nl80211[CMD, nl80211_wdev_payload, POLICY]
+# For commands with NL80211_FLAG_NEED_WIPHY
+type msghdr_nl80211_rdev[CMD, POLICY] msghdr_nl80211[CMD, nl80211_rdev_payload, POLICY]
-type nl80211_whipy int32[-1:4]
+# Wiphys are created for each wireless device, and they are identified by consequtive numbers (the counter is system-wide).
+# TODO: fetch wiphy ids for devices created at executor initialization. Presently we're using small numbers in that hope that syzkaller will hit the right ones.
+type nl80211_wiphy int32[0:128]
syz_genetlink_get_family_id$nl80211(name ptr[in, string["nl80211"]]) nl80211_family_id
ioctl$sock_SIOCGIFINDEX_80211(fd sock, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t[nl80211_devnames, nl80211_ifindex]])
-sendmsg$NL80211_CMD_GET_WIPHY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_WIPHY, nl80211_policy_dev]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_WIPHY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_WIPHY, nl80211_policy_wiphy]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_WIPHY_NETNS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_WIPHY_NETNS, nl80211_policy_setns]], f flags[send_flags])
-sendmsg$NL80211_CMD_GET_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_INTERFACE, nl80211_policy_dev]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_INTERFACE, nl80211_policy_interface]], f flags[send_flags])
-sendmsg$NL80211_CMD_NEW_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_NEW_INTERFACE, nl80211_policy_interface]], f flags[send_flags])
-sendmsg$NL80211_CMD_DEL_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_DEL_INTERFACE, nl80211_policy_interface]], f flags[send_flags])
-sendmsg$NL80211_CMD_GET_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_KEY, nl80211_policy_cmd_key]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_KEY, nl80211_policy_cmd_key]], f flags[send_flags])
-sendmsg$NL80211_CMD_NEW_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_NEW_KEY, nl80211_policy_cmd_key]], f flags[send_flags])
-sendmsg$NL80211_CMD_DEL_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_DEL_KEY, nl80211_policy_cmd_key]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_BEACON(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_BEACON, nl80211_policy_beacon]], f flags[send_flags])
-sendmsg$NL80211_CMD_START_AP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_START_AP, nl80211_policy_beacon]], f flags[send_flags])
-sendmsg$NL80211_CMD_STOP_AP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_STOP_AP, nl80211_policy_beacon]], f flags[send_flags])
-sendmsg$NL80211_CMD_GET_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_STATION, nl80211_policy_station]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_STATION, nl80211_policy_station]], f flags[send_flags])
-sendmsg$NL80211_CMD_NEW_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_NEW_STATION, nl80211_policy_station]], f flags[send_flags])
-sendmsg$NL80211_CMD_DEL_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_DEL_STATION, nl80211_policy_station]], f flags[send_flags])
-sendmsg$NL80211_CMD_GET_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_MPATH, nl80211_policy_mpath]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_MPATH, nl80211_policy_mpath]], f flags[send_flags])
-sendmsg$NL80211_CMD_NEW_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_NEW_MPATH, nl80211_policy_mpath]], f flags[send_flags])
-sendmsg$NL80211_CMD_DEL_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_DEL_MPATH, nl80211_policy_mpath]], f flags[send_flags])
-sendmsg$NL80211_CMD_GET_MPP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_MPP, nl80211_policy_mpath]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_BSS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_BSS, nl80211_policy_bss]], f flags[send_flags])
-sendmsg$NL80211_CMD_GET_REG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_REG, nl80211_policy_reg]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_REG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_REG, nl80211_policy_reg]], f flags[send_flags])
-sendmsg$NL80211_CMD_REQ_SET_REG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_REQ_SET_REG, nl80211_policy_reg]], f flags[send_flags])
-sendmsg$NL80211_CMD_GET_MESH_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_MESH_CONFIG, nl80211_policy_dev]], f flags[send_flags])
-sendmsg$NL80211_CMD_SET_MESH_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_MESH_CONFIG, nl80211_policy_mesh]], f flags[send_flags])
-sendmsg$NL80211_CMD_JOIN_MESH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_JOIN_MESH, nl80211_policy_join_mesh]], f flags[send_flags])
-sendmsg$NL80211_CMD_LEAVE_MESH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_LEAVE_MESH, nl80211_policy_dev]], f flags[send_flags])
-sendmsg$NL80211_CMD_TRIGGER_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_TRIGGER_SCAN, nl80211_policy_scan]], f flags[send_flags])
-sendmsg$NL80211_CMD_GET_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_SCAN, nl80211_policy_dev]], f flags[send_flags])
-sendmsg$NL80211_CMD_START_SCHED_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_START_SCHED_SCAN, nl80211_policy_scan]], f flags[send_flags])
-sendmsg$NL80211_CMD_STOP_SCHED_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_STOP_SCHED_SCAN, nl80211_policy_scan]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_WIPHY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_GET_WIPHY, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_WIPHY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_WIPHY, void, nl80211_policy_wiphy]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_WIPHY_NETNS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_SET_WIPHY_NETNS, nl80211_policy_setns]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_INTERFACE, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_INTERFACE, nl80211_policy_set_interface]], f flags[send_flags])
+sendmsg$NL80211_CMD_NEW_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_NEW_INTERFACE, nl80211_policy_new_interface]], f flags[send_flags])
+sendmsg$NL80211_CMD_DEL_INTERFACE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_INTERFACE, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_KEY, nl80211_policy_cmd_key]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_KEY, nl80211_policy_cmd_key]], f flags[send_flags])
+sendmsg$NL80211_CMD_NEW_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_NEW_KEY, nl80211_policy_cmd_key]], f flags[send_flags])
+sendmsg$NL80211_CMD_DEL_KEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_KEY, nl80211_policy_cmd_key]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_BEACON(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_BEACON, nl80211_policy_beacon]], f flags[send_flags])
+sendmsg$NL80211_CMD_START_AP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_START_AP, nl80211_policy_start_ap]], f flags[send_flags])
+sendmsg$NL80211_CMD_STOP_AP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_STOP_AP, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_STATION, nl80211_policy_station]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_STATION, nl80211_policy_station]], f flags[send_flags])
+sendmsg$NL80211_CMD_NEW_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_NEW_STATION, nl80211_policy_station]], f flags[send_flags])
+sendmsg$NL80211_CMD_DEL_STATION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_STATION, nl80211_policy_station]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_MPATH, nl80211_policy_mpath]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MPATH, nl80211_policy_mpath]], f flags[send_flags])
+sendmsg$NL80211_CMD_NEW_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_NEW_MPATH, nl80211_policy_mpath]], f flags[send_flags])
+sendmsg$NL80211_CMD_DEL_MPATH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_MPATH, nl80211_policy_mpath]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_MPP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_MPP, nl80211_policy_mpath]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_BSS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_BSS, nl80211_policy_bss]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_REG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_REG, void, nl80211_policy_reg]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_REG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_SET_REG, void, nl80211_policy_reg]], f flags[send_flags])
+sendmsg$NL80211_CMD_REQ_SET_REG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_REQ_SET_REG, void, nl80211_policy_reg]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_MESH_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_MESH_CONFIG, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_MESH_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MESH_CONFIG, nl80211_policy_mesh]], f flags[send_flags])
+sendmsg$NL80211_CMD_JOIN_MESH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_JOIN_MESH, nl80211_policy_join_mesh]], f flags[send_flags])
+sendmsg$NL80211_CMD_LEAVE_MESH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_LEAVE_MESH, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_TRIGGER_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TRIGGER_SCAN, nl80211_policy_scan]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_SCAN, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_START_SCHED_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_START_SCHED_SCAN, nl80211_policy_scan]], f flags[send_flags])
+sendmsg$NL80211_CMD_STOP_SCHED_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_STOP_SCHED_SCAN, nl80211_policy_cookie]], f flags[send_flags])
+sendmsg$NL80211_CMD_JOIN_IBSS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_JOIN_IBSS, nl80211_policy_join_ibss]], f flags[send_flags])
+sendmsg$NL80211_CMD_LEAVE_IBSS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_LEAVE_IBSS, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_CONNECT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CONNECT, nl80211_policy_connect]], f flags[send_flags])
+sendmsg$NL80211_CMD_DISCONNECT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DISCONNECT, nl80211_policy_disconnect]], f flags[send_flags])
+sendmsg$NL80211_CMD_UNEXPECTED_FRAME(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_UNEXPECTED_FRAME, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_NOTIFY_RADAR(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_NOTIFY_RADAR, nl80211_policy_chandef_params]], f flags[send_flags])
+sendmsg$NL80211_CMD_RADAR_DETECT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_RADAR_DETECT, nl80211_policy_chandef_params]], f flags[send_flags])
+sendmsg$NL80211_CMD_PEER_MEASUREMENT_START(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_PEER_MEASUREMENT_START, nl80211_pmsr_attr_policy]], f flags[send_flags])
+sendmsg$NL80211_CMD_UPDATE_OWE_INFO(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_UPDATE_OWE_INFO, nl80211_policy_upd_owe_info]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_SURVEY(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_SURVEY, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_COALESCE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_GET_COALESCE, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_FTM_RESPONDER_STATS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_FTM_RESPONDER_STATS, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_ADD_NAN_FUNCTION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_ADD_NAN_FUNCTION, nl80211_policy_add_nan_func]], f flags[send_flags])
+sendmsg$NL80211_CMD_DEL_NAN_FUNCTION(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_NAN_FUNCTION, nl80211_policy_del_nan_func]], f flags[send_flags])
+sendmsg$NL80211_CMD_START_NAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_START_NAN, nl80211_policy_start_nan]], f flags[send_flags])
+sendmsg$NL80211_CMD_STOP_NAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_STOP_NAN, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_CHANGE_NAN_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CHANGE_NAN_CONFIG, nl80211_policy_start_nan]], f flags[send_flags])
+sendmsg$NL80211_CMD_PROBE_CLIENT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_PROBE_CLIENT, nl80211_policy_probe_client]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_CHANNEL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_CHANNEL, nl80211_policy_chandef_params]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_COALESCE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_COALESCE, nl80211_coalesce_policy]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_MAC_ACL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MAC_ACL, nl80211_policy_acl]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_MCAST_RATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MCAST_RATE, nl80211_policy_set_mcast_rate]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_MULTICAST_TO_UNICAST(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_MULTICAST_TO_UNICAST, nl80211_policy_set_mcast_to_ucast]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_NOACK_MAP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_NOACK_MAP, nl80211_policy_set_noack_map]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_PMK(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_PMK, nl80211_policy_set_pmk]], f flags[send_flags])
+sendmsg$NL80211_CMD_DEL_PMK(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_PMK, nl80211_policy_del_pmk]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_PMKSA(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_PMKSA, nl80211_policy_setdel_pmksa]], f flags[send_flags])
+sendmsg$NL80211_CMD_DEL_PMKSA(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_PMKSA, nl80211_policy_setdel_pmksa]], f flags[send_flags])
+sendmsg$NL80211_CMD_FLUSH_PMKSA(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_FLUSH_PMKSA, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_FRAME_WAIT_CANCEL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_FRAME_WAIT_CANCEL, nl80211_policy_cookie]], f flags[send_flags])
+sendmsg$NL80211_CMD_ABORT_SCAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_ABORT_SCAN, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_POWER_SAVE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_POWER_SAVE, nl80211_policy_power_save]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_POWER_SAVE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_GET_POWER_SAVE, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_REMAIN_ON_CHANNEL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_REMAIN_ON_CHANNEL, nl80211_policy_remain_on_ch]], f flags[send_flags])
+sendmsg$NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, nl80211_policy_cookie]], f flags[send_flags])
+sendmsg$NL80211_CMD_UPDATE_FT_IES(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_UPDATE_FT_IES, nl80211_policy_update_ft_ies]], f flags[send_flags])
+sendmsg$NL80211_CMD_VENDOR(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_VENDOR, nl80211_policy_vendor]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_QOS_MAP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_QOS_MAP, nl80211_policy_set_qos_map]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_CQM(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_CQM, nl80211_policy_cqm]], f flags[send_flags])
+sendmsg$NL80211_CMD_RELOAD_REGDB(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_RELOAD_REGDB, void, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_LEAVE_OCB(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_LEAVE_OCB, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_FRAME(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_FRAME, nl80211_policy_mgmt_frame]], f flags[send_flags])
+sendmsg$NL80211_CMD_ADD_TX_TS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_ADD_TX_TS, nl80211_policy_add_tx_ts]], f flags[send_flags])
+sendmsg$NL80211_CMD_DEL_TX_TS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEL_TX_TS, nl80211_policy_del_tx_ts]], f flags[send_flags])
+sendmsg$NL80211_CMD_AUTHENTICATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_AUTHENTICATE, nl80211_policy_authenticate]], f flags[send_flags])
+sendmsg$NL80211_CMD_DEAUTHENTICATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DEAUTHENTICATE, nl80211_policy_de_auth_assoc]], f flags[send_flags])
+sendmsg$NL80211_CMD_ASSOCIATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_ASSOCIATE, nl80211_policy_associate]], f flags[send_flags])
+sendmsg$NL80211_CMD_DISASSOCIATE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_DISASSOCIATE, nl80211_policy_de_auth_assoc]], f flags[send_flags])
+sendmsg$NL80211_CMD_EXTERNAL_AUTH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_EXTERNAL_AUTH, nl80211_policy_ext_auth]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_REKEY_OFFLOAD(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_REKEY_OFFLOAD, nl80211_policy_rekey_offload]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_PROTOCOL_FEATURES(fd sock_nl_generic, msg ptr[in, msghdr_nl80211[NL80211_CMD_GET_PROTOCOL_FEATURES, void, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_WDS_PEER(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_WDS_PEER, nl80211_policy_set_wds_peer]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_TID_CONFIG(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_TID_CONFIG, nl80211_policy_set_tid_config]], f flags[send_flags])
+sendmsg$NL80211_CMD_UPDATE_CONNECT_PARAMS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_UPDATE_CONNECT_PARAMS, nl80211_policy_upd_connect_params]], f flags[send_flags])
+sendmsg$NL80211_CMD_TDLS_MGMT(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TDLS_MGMT, nl80211_policy_tdls_mgmt]], f flags[send_flags])
+sendmsg$NL80211_CMD_TDLS_OPER(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TDLS_OPER, nl80211_policy_tdls_oper]], f flags[send_flags])
+sendmsg$NL80211_CMD_JOIN_OCB(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_JOIN_OCB, nl80211_policy_chandef_params]], f flags[send_flags])
+sendmsg$NL80211_CMD_CONTROL_PORT_FRAME(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CONTROL_PORT_FRAME, nl80211_policy_control_port]], f flags[send_flags])
+sendmsg$NL80211_CMD_CRIT_PROTOCOL_START(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CRIT_PROTOCOL_START, nl80211_policy_crit_proto_start]], f flags[send_flags])
+sendmsg$NL80211_CMD_CRIT_PROTOCOL_STOP(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CRIT_PROTOCOL_STOP, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_PROBE_MESH_LINK(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_PROBE_MESH_LINK, nl80211_policy_probe_mesh_link]], f flags[send_flags])
+sendmsg$NL80211_CMD_REGISTER_BEACONS(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_REGISTER_BEACONS, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_REGISTER_FRAME(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_REGISTER_FRAME, nl80211_policy_register_mgmt]], f flags[send_flags])
+sendmsg$NL80211_CMD_TDLS_CHANNEL_SWITCH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TDLS_CHANNEL_SWITCH, nl80211_policy_tdls_chsw]], f flags[send_flags])
+sendmsg$NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, nl80211_policy_tdls_chsw_cancel]], f flags[send_flags])
+sendmsg$NL80211_CMD_CHANNEL_SWITCH(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_CHANNEL_SWITCH, nl80211_policy_chsw]], f flags[send_flags])
+sendmsg$NL80211_CMD_START_P2P_DEVICE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_START_P2P_DEVICE, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_STOP_P2P_DEVICE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_STOP_P2P_DEVICE, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_GET_WOWLAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_GET_WOWLAN, void]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_WOWLAN(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_rdev[NL80211_CMD_SET_WOWLAN, nl80211_policy_set_wowlan]], f flags[send_flags])
+sendmsg$NL80211_CMD_TESTMODE(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_TESTMODE, nl80211_policy_testmode]], f flags[send_flags])
+sendmsg$NL80211_CMD_SET_TX_BITRATE_MASK(fd sock_nl_generic, msg ptr[in, msghdr_nl80211_wdev[NL80211_CMD_SET_TX_BITRATE_MASK, nl80211_policy_set_tx_bitrate]], f flags[send_flags])
+
+nl80211_wdev_payload {
+ NL80211_ATTR_IFINDEX optional[nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]]
+ NL80211_ATTR_WDEV optional[nlattr[NL80211_ATTR_WDEV, nl80211_wdev]]
+} [packed, align[4]]
+
+nl80211_rdev_payload {
+ NL80211_ATTR_WIPHY optional[nlattr[NL80211_ATTR_WIPHY, nl80211_wiphy]]
+ NL80211_ATTR_IFINDEX optional[nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]]
+ NL80211_ATTR_WDEV optional[nlattr[NL80211_ATTR_WDEV, nl80211_wdev]]
+} [packed, align[4]]
+
+nl80211_channel_types = NL80211_CHAN_NO_HT, NL80211_CHAN_HT20, NL80211_CHAN_HT40MINUS, NL80211_CHAN_HT40PLUS
+nl80211_channel_widths = NL80211_CHAN_WIDTH_20_NOHT, NL80211_CHAN_WIDTH_20, NL80211_CHAN_WIDTH_40, NL80211_CHAN_WIDTH_80, NL80211_CHAN_WIDTH_80P80, NL80211_CHAN_WIDTH_160, NL80211_CHAN_WIDTH_5, NL80211_CHAN_WIDTH_10
+
+nl80211_policy_chandef_params [
+ NL80211_ATTR_WIPHY_FREQ nlattr[NL80211_ATTR_WIPHY_FREQ, ieee80211_frequency_mhz[int32]]
+ NL80211_ATTR_WIPHY_FREQ_OFFSET nlattr[NL80211_ATTR_WIPHY_FREQ_OFFSET, int32[0:999]]
+ NL80211_ATTR_WIPHY_CHANNEL_TYPE nlattr[NL80211_ATTR_WIPHY_CHANNEL_TYPE, flags[nl80211_channel_types, int32]]
+ NL80211_ATTR_CENTER_FREQ1 nlattr[NL80211_ATTR_CENTER_FREQ1, int32]
+ NL80211_ATTR_CENTER_FREQ2 nlattr[NL80211_ATTR_CENTER_FREQ2, int32]
+ NL80211_ATTR_CHANNEL_WIDTH nlattr[NL80211_ATTR_CHANNEL_WIDTH, flags[nl80211_channel_widths, int32]]
+ NL80211_ATTR_WIPHY_EDMG_CHANNELS nlattr[NL80211_ATTR_WIPHY_EDMG_CHANNELS, int8[NL80211_EDMG_CHANNELS_MIN:NL80211_EDMG_CHANNELS_MAX]]
+ NL80211_ATTR_WIPHY_EDMG_BW_CONFIG nlattr[NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, int8[NL80211_EDMG_BW_CONFIG_MIN:NL80211_EDMG_BW_CONFIG_MAX]]
+] [varlen]
nl80211_wdev {
# TODO: what is this?
wdev_id int32
- whipy nl80211_whipy
+ wiphy nl80211_wiphy
}
-nl80211_policy_dev [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
- NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
- NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
-] [varlen]
-
nl80211_policy_wiphy [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
- NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
- NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
NL80211_ATTR_WIPHY_NAME nlattr[NL80211_ATTR_WIPHY_NAME, devname]
NL80211_ATTR_WIPHY_TXQ_PARAMS nlnest[NL80211_ATTR_WIPHY_TXQ_PARAMS, array[txq_params_policy]]
- NL80211_ATTR_WIPHY_FREQ nlattr[NL80211_ATTR_WIPHY_FREQ, int32]
+ NL80211_ATTR_WIPHY_FREQ nlattr[NL80211_ATTR_WIPHY_FREQ, ieee80211_frequency_mhz[int32]]
NL80211_ATTR_WIPHY_RETRY_SHORT nlattr[NL80211_ATTR_WIPHY_RETRY_SHORT, int8]
NL80211_ATTR_WIPHY_RETRY_LONG nlattr[NL80211_ATTR_WIPHY_RETRY_LONG, int8]
NL80211_ATTR_WIPHY_FRAG_THRESHOLD nlattr[NL80211_ATTR_WIPHY_FRAG_THRESHOLD, int32]
@@ -93,7 +190,7 @@ nl80211_policy_wiphy [
] [varlen]
nl80211_policy_setns [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
+ NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_wiphy]
NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
NL80211_ATTR_PID nlattr[NL80211_ATTR_PID, pid]
@@ -108,12 +205,35 @@ txq_params_policy [
NL80211_TXQ_ATTR_AIFS nlattr[NL80211_TXQ_ATTR_AIFS, int8]
] [varlen]
-nl80211_policy_interface [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
- NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
- NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
+nl80211_policy_set_interface [
+ mon_options array[nl80211_policy_mon_options]
NL80211_ATTR_IFTYPE nlattr[NL80211_ATTR_IFTYPE, flags[nl80211_iftype, int32]]
- NL80211_ATTR_IFNAME nlattr[NL80211_ATTR_IFNAME, devname]
+ NL80211_ATTR_MESH_ID nlattr[NL80211_ATTR_MESH_ID, ieee80211_mesh_id]
+ NL80211_ATTR_4ADDR nlattr[NL80211_ATTR_4ADDR, bool8]
+] [varlen]
+
+nl80211_policy_new_interface [
+ mon_options array[nl80211_policy_mon_options]
+ NL80211_ATTR_IFTYPE nlattr[NL80211_ATTR_IFTYPE, flags[nl80211_iftype, int32]]
+ NL80211_ATTR_IFNAME nlattr[NL80211_ATTR_IFNAME, devname]
+ NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void]
+ NL80211_ATTR_MESH_ID nlattr[NL80211_ATTR_MESH_ID, ieee80211_mesh_id]
+ NL80211_ATTR_4ADDR nlattr[NL80211_ATTR_4ADDR, bool8]
+] [varlen]
+
+mntr_flags_policy [
+ NL80211_MNTR_FLAG_FCSFAIL nlattr[NL80211_MNTR_FLAG_FCSFAIL, void]
+ NL80211_MNTR_FLAG_PLCPFAIL nlattr[NL80211_MNTR_FLAG_PLCPFAIL, void]
+ NL80211_MNTR_FLAG_CONTROL nlattr[NL80211_MNTR_FLAG_CONTROL, void]
+ NL80211_MNTR_FLAG_OTHER_BSS nlattr[NL80211_MNTR_FLAG_OTHER_BSS, void]
+ NL80211_MNTR_FLAG_COOK_FRAMES nlattr[NL80211_MNTR_FLAG_COOK_FRAMES, void]
+ NL80211_MNTR_FLAG_ACTIVE nlattr[NL80211_MNTR_FLAG_ACTIVE, void]
+]
+
+nl80211_policy_mon_options [
+ NL80211_ATTR_MNTR_FLAGS nlnest[NL80211_ATTR_MNTR_FLAGS, array[mntr_flags_policy]]
+ NL80211_ATTR_MU_MIMO_GROUP_DATA nlattr[NL80211_ATTR_MU_MIMO_GROUP_DATA, array[int8, VHT_MUMIMO_GROUPS_DATA_LEN]]
+ NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR nlattr[NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR, ieee80211_mac_addr]
] [varlen]
nl80211_iftype = NL80211_IFTYPE_UNSPECIFIED, NL80211_IFTYPE_ADHOC, NL80211_IFTYPE_STATION, NL80211_IFTYPE_AP, NL80211_IFTYPE_AP_VLAN, NL80211_IFTYPE_WDS, NL80211_IFTYPE_MONITOR, NL80211_IFTYPE_MESH_POINT, NL80211_IFTYPE_P2P_CLIENT, NL80211_IFTYPE_P2P_GO, NL80211_IFTYPE_P2P_DEVICE, NL80211_IFTYPE_OCB, NL80211_IFTYPE_NAN
@@ -152,58 +272,72 @@ nl80211_key_policy [
nl80211_key_type = NL80211_KEYTYPE_GROUP, NL80211_KEYTYPE_PAIRWISE, NL80211_KEYTYPE_PEERKEY
nl80211_cipher_suite = WLAN_CIPHER_SUITE_WEP40, WLAN_CIPHER_SUITE_WEP104
-ieee80211_cipher_suite = WLAN_CIPHER_SUITE_USE_GROUP, WLAN_CIPHER_SUITE_WEP40, WLAN_CIPHER_SUITE_TKIP, WLAN_CIPHER_SUITE_CCMP, WLAN_CIPHER_SUITE_WEP104, WLAN_CIPHER_SUITE_AES_CMAC, WLAN_CIPHER_SUITE_GCMP, WLAN_CIPHER_SUITE_GCMP_256, WLAN_CIPHER_SUITE_CCMP_256, WLAN_CIPHER_SUITE_BIP_GMAC_128, WLAN_CIPHER_SUITE_BIP_GMAC_256, WLAN_CIPHER_SUITE_BIP_CMAC_256, WLAN_CIPHER_SUITE_SMS4
-ieee80211_akm_suite = WLAN_AKM_SUITE_8021X, WLAN_AKM_SUITE_PSK, WLAN_AKM_SUITE_FT_8021X, WLAN_AKM_SUITE_FT_PSK, WLAN_AKM_SUITE_8021X_SHA256, WLAN_AKM_SUITE_PSK_SHA256, WLAN_AKM_SUITE_TDLS, WLAN_AKM_SUITE_SAE, WLAN_AKM_SUITE_FT_OVER_SAE, WLAN_AKM_SUITE_8021X_SUITE_B, WLAN_AKM_SUITE_8021X_SUITE_B_192, WLAN_AKM_SUITE_FILS_SHA256, WLAN_AKM_SUITE_FILS_SHA384, WLAN_AKM_SUITE_FT_FILS_SHA256, WLAN_AKM_SUITE_FT_FILS_SHA384
-nl80211_policy_beacon [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
- NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
- NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
- NL80211_ATTR_WIPHY_FREQ nlattr[NL80211_ATTR_WIPHY_FREQ, int32]
- NL80211_ATTR_FTM_RESPONDER nlnest[NL80211_ATTR_FTM_RESPONDER, array[nl80211_ftm_responder_policy]]
+he_obss_pd_policy [
+ NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET nlattr[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET, int8[1:20]]
+ NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET nlattr[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET, int8[1:20]]
+]
+
+he_bss_color_policy [
+ NL80211_HE_BSS_COLOR_ATTR_COLOR nlattr[NL80211_HE_BSS_COLOR_ATTR_COLOR, int8[1:63]]
+ NL80211_HE_BSS_COLOR_ATTR_DISABLED nlattr[NL80211_HE_BSS_COLOR_ATTR_DISABLED, void]
+ NL80211_HE_BSS_COLOR_ATTR_PARTIAL nlattr[NL80211_HE_BSS_COLOR_ATTR_PARTIAL, void]
+] [varlen]
+
+nl80211_policy_start_ap [
+ beacon array[nl80211_policy_beacon]
+ chandef_params array[nl80211_policy_chandef_params]
+ crypto_settings array[nl80211_policy_crypto_settings]
+ acl_policy array[nl80211_policy_acl]
+ NL80211_ATTR_BEACON_INTERVAL nlattr[NL80211_ATTR_BEACON_INTERVAL, ieee80211_beacon_interval[int32]]
+ NL80211_ATTR_DTIM_PERIOD nlattr[NL80211_ATTR_DTIM_PERIOD, int32]
NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid]
- NL80211_ATTR_TX_RATES nlnest[NL80211_ATTR_TX_RATES, array[nl80211_tx_rates_policy]]
- NL80211_ATTR_SMPS_MODE nlattr[NL80211_ATTR_SMPS_MODE, flags[nl80211_smps_mode, int8]]
- NL80211_ATTR_PBSS nlattr[NL80211_ATTR_PBSS, void]
- NL80211_ATTR_ACL_POLICY nlattr[NL80211_ATTR_ACL_POLICY, int32[NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED:NL80211_ACL_POLICY_DENY_UNLESS_LISTED]]
- NL80211_ATTR_TWT_RESPONDER nlattr[NL80211_ATTR_TWT_RESPONDER, void]
- NL80211_ATTR_EXTERNAL_AUTH_SUPPORT nlattr[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT, void]
- NL80211_ATTR_CIPHER_SUITES_PAIRWISE nlattr[NL80211_ATTR_CIPHER_SUITES_PAIRWISE, array[flags[ieee80211_cipher_suite, int32]]]
- NL80211_ATTR_AKM_SUITES nlattr[NL80211_ATTR_AKM_SUITES, array[flags[ieee80211_akm_suite, int32]]]
- NL80211_ATTR_MAC_ADDRS nlnest[NL80211_ATTR_MAC_ADDRS, array[nlattr[0, ieee80211_mac_addr]]]
NL80211_ATTR_HIDDEN_SSID nlattr[NL80211_ATTR_HIDDEN_SSID, int32[NL80211_HIDDEN_SSID_NOT_IN_USE:NL80211_HIDDEN_SSID_ZERO_CONTENTS]]
NL80211_ATTR_PRIVACY nlattr[NL80211_ATTR_PRIVACY, void]
- NL80211_ATTR_CIPHER_SUITE_GROUP nlattr[NL80211_ATTR_CIPHER_SUITE_GROUP, flags[ieee80211_cipher_suite, int32]]
NL80211_ATTR_AUTH_TYPE nlattr[NL80211_ATTR_AUTH_TYPE, flags[nl80211_auth_type, int32]]
NL80211_ATTR_INACTIVITY_TIMEOUT nlattr[NL80211_ATTR_INACTIVITY_TIMEOUT, int16]
NL80211_ATTR_P2P_CTWINDOW nlattr[NL80211_ATTR_P2P_CTWINDOW, int8]
NL80211_ATTR_P2P_OPPPS nlattr[NL80211_ATTR_P2P_OPPPS, bool8]
- NL80211_ATTR_BEACON_INTERVAL nlattr[NL80211_ATTR_BEACON_INTERVAL, int32]
- NL80211_ATTR_DTIM_PERIOD nlattr[NL80211_ATTR_DTIM_PERIOD, int32]
- NL80211_ATTR_BEACON_HEAD nlattr[NL80211_ATTR_BEACON_HEAD, array[int8, 0:IEEE80211_MAX_DATA_LEN]]
- NL80211_ATTR_BEACON_TAIL nlattr[NL80211_ATTR_BEACON_TAIL, array[int8, 0:IEEE80211_MAX_DATA_LEN]]
- NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[int8, 0:IEEE80211_MAX_DATA_LEN]]
- NL80211_ATTR_IE_PROBE_RESP nlattr[NL80211_ATTR_IE_PROBE_RESP, array[int8, 0:IEEE80211_MAX_DATA_LEN]]
- NL80211_ATTR_IE_ASSOC_RESP nlattr[NL80211_ATTR_IE_ASSOC_RESP, array[int8, 0:IEEE80211_MAX_DATA_LEN]]
- NL80211_ATTR_IE_RIC nlattr[NL80211_ATTR_IE_RIC, array[int8, 0:IEEE80211_MAX_DATA_LEN]]
- NL80211_ATTR_PROBE_RESP nlattr[NL80211_ATTR_PROBE_RESP, array[int8, 0:IEEE80211_MAX_DATA_LEN]]
- NL80211_ATTR_WPA_VERSIONS nlattr[NL80211_ATTR_WPA_VERSIONS, flags[nl80211_wpa_versions, int32]]
+ NL80211_ATTR_TX_RATES nlnest[NL80211_ATTR_TX_RATES, array[nl80211_tx_rates_policy]]
+ NL80211_ATTR_SMPS_MODE nlattr[NL80211_ATTR_SMPS_MODE, flags[nl80211_smps_mode, int8]]
+ NL80211_ATTR_PBSS nlattr[NL80211_ATTR_PBSS, void]
+ NL80211_ATTR_EXTERNAL_AUTH_SUPPORT nlattr[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT, void]
+ NL80211_ATTR_TWT_RESPONDER nlattr[NL80211_ATTR_TWT_RESPONDER, void]
+ NL80211_ATTR_HE_OBSS_PD nlnest[NL80211_ATTR_HE_OBSS_PD, array[he_obss_pd_policy]]
+ NL80211_ATTR_HE_BSS_COLOR nlnest[NL80211_ATTR_HE_BSS_COLOR, array[he_bss_color_policy]]
+] [varlen]
+
+nl80211_policy_beacon [
+ NL80211_ATTR_BEACON_HEAD nlattr[NL80211_ATTR_BEACON_HEAD, ieee80211_mgmt_beacon]
+ NL80211_ATTR_BEACON_TAIL nlattr[NL80211_ATTR_BEACON_TAIL, array[ieee80211_ie]]
+ NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]]
+ NL80211_ATTR_IE_PROBE_RESP nlattr[NL80211_ATTR_IE_PROBE_RESP, array[ieee80211_ie]]
+ NL80211_ATTR_IE_ASSOC_RESP nlattr[NL80211_ATTR_IE_ASSOC_RESP, array[ieee80211_ie]]
+ NL80211_ATTR_PROBE_RESP nlattr[NL80211_ATTR_PROBE_RESP, array[int8, 0:IEEE80211_MAX_DATA_LEN]]
+ NL80211_ATTR_FTM_RESPONDER nlnest[NL80211_ATTR_FTM_RESPONDER, array[nl80211_ftm_responder_policy]]
] [varlen]
nl80211_smps_mode = NL80211_SMPS_OFF, NL80211_SMPS_STATIC, NL80211_SMPS_DYNAMIC
nl80211_auth_type = NL80211_AUTHTYPE_OPEN_SYSTEM, NL80211_AUTHTYPE_SHARED_KEY, NL80211_AUTHTYPE_FT, NL80211_AUTHTYPE_NETWORK_EAP, NL80211_AUTHTYPE_SAE, NL80211_AUTHTYPE_FILS_SK, NL80211_AUTHTYPE_FILS_SK_PFS, NL80211_AUTHTYPE_FILS_PK
nl80211_wpa_versions = NL80211_WPA_VERSION_1, NL80211_WPA_VERSION_2, NL80211_WPA_VERSION_3
+type nl80211_rates array[ieee80211_rate, 0:NL80211_MAX_SUPP_RATES]
+
nl80211_tx_rates_policy [
- NL80211_BAND_2GHZ nlattr[NL80211_BAND_2GHZ, array[nl80211_txattr_policy]]
- NL80211_BAND_5GHZ nlattr[NL80211_BAND_5GHZ, array[nl80211_txattr_policy]]
- NL80211_BAND_60GHZ nlattr[NL80211_BAND_60GHZ, array[nl80211_txattr_policy]]
- NL80211_BAND_6GHZ nlattr[NL80211_BAND_6GHZ, array[nl80211_txattr_policy]]
+ NL80211_BAND_2GHZ nlnest[NL80211_BAND_2GHZ, array[nl80211_txattr_policy]]
+ NL80211_BAND_5GHZ nlnest[NL80211_BAND_5GHZ, array[nl80211_txattr_policy]]
+ NL80211_BAND_60GHZ nlnest[NL80211_BAND_60GHZ, array[nl80211_txattr_policy]]
+ NL80211_BAND_6GHZ nlnest[NL80211_BAND_6GHZ, array[nl80211_txattr_policy]]
] [varlen]
+nl80211_ht_rate {
+ rbit int8:3
+ ridx int8:5[0:IEEE80211_HT_MCS_MASK_LEN]
+} [packed]
+
nl80211_txattr_policy [
- NL80211_TXRATE_LEGACY nlattr[NL80211_TXRATE_LEGACY, array[int8, 0:NL80211_MAX_SUPP_RATES]]
- NL80211_TXRATE_HT nlattr[NL80211_TXRATE_HT, array[int8, 0:NL80211_MAX_SUPP_HT_RATES]]
+ NL80211_TXRATE_LEGACY nlattr[NL80211_TXRATE_LEGACY, array[flags[ieee80211_rate_label, int8], 0:NL80211_MAX_SUPP_RATES]]
+ NL80211_TXRATE_HT nlattr[NL80211_TXRATE_HT, array[nl80211_ht_rate, 0:NL80211_MAX_SUPP_HT_RATES]]
NL80211_TXRATE_VHT nlattr[NL80211_TXRATE_VHT, nl80211_txrate_vht]
NL80211_TXRATE_GI nlattr[NL80211_TXRATE_GI, flags[nl80211_txrate_gi, int8]]
] [varlen]
@@ -221,9 +355,6 @@ nl80211_ftm_responder_policy [
] [varlen]
nl80211_policy_station [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
- NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
- NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
NL80211_ATTR_MGMT_SUBTYPE nlattr[NL80211_ATTR_MGMT_SUBTYPE, flags[ieee80211_mgmt_subtype, int8]]
NL80211_ATTR_REASON_CODE nlattr[NL80211_ATTR_REASON_CODE, int16]
@@ -231,7 +362,7 @@ nl80211_policy_station [
NL80211_ATTR_VLAN_ID nlattr[NL80211_ATTR_VLAN_ID, int16[1:4]]
NL80211_ATTR_STA_LISTEN_INTERVAL nlattr[NL80211_ATTR_STA_LISTEN_INTERVAL, int16]
NL80211_ATTR_STA_SUPPORT_P2P_PS nlattr[NL80211_ATTR_STA_SUPPORT_P2P_PS, bool8]
- NL80211_ATTR_STA_SUPPORTED_RATES nlattr[NL80211_ATTR_STA_SUPPORTED_RATES, array[int8, 0:NL80211_MAX_SUPP_RATES]]
+ NL80211_ATTR_STA_SUPPORTED_RATES nlattr[NL80211_ATTR_STA_SUPPORTED_RATES, nl80211_rates]
NL80211_ATTR_STA_CAPABILITY nlattr[NL80211_ATTR_STA_CAPABILITY, int16]
NL80211_ATTR_STA_EXT_CAPABILITY nlattr[NL80211_ATTR_STA_EXT_CAPABILITY, array[int8]]
NL80211_ATTR_STA_FLAGS nlnest[NL80211_ATTR_STA_FLAGS, array[sta_flags_policy]]
@@ -277,17 +408,11 @@ nl80211_sta_wme_policy [
] [varlen]
nl80211_policy_mpath [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
- NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
- NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
NL80211_ATTR_MPATH_NEXT_HOP nlattr[NL80211_ATTR_MPATH_NEXT_HOP, ieee80211_mac_addr]
] [varlen]
nl80211_policy_bss [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
- NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
- NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
NL80211_ATTR_BSS_CTS_PROT nlattr[NL80211_ATTR_BSS_CTS_PROT, int8]
NL80211_ATTR_BSS_SHORT_PREAMBLE nlattr[NL80211_ATTR_BSS_SHORT_PREAMBLE, int8]
NL80211_ATTR_BSS_SHORT_SLOT_TIME nlattr[NL80211_ATTR_BSS_SHORT_SLOT_TIME, int8]
@@ -295,15 +420,14 @@ nl80211_policy_bss [
NL80211_ATTR_AP_ISOLATE nlattr[NL80211_ATTR_AP_ISOLATE, int8]
NL80211_ATTR_P2P_CTWINDOW nlattr[NL80211_ATTR_P2P_CTWINDOW, int8]
NL80211_ATTR_P2P_OPPPS nlattr[NL80211_ATTR_P2P_OPPPS, bool8]
- NL80211_STA_WME_MAX_SP nlattr[NL80211_STA_WME_MAX_SP, array[int8, 0:NL80211_MAX_SUPP_RATES]]
] [varlen]
nl80211_policy_reg [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
+ NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_wiphy]
NL80211_ATTR_USER_REG_HINT_TYPE nlattr[NL80211_ATTR_USER_REG_HINT_TYPE, flags[nl80211_user_reg_hint_type, int32]]
NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void]
NL80211_ATTR_REG_ALPHA2 nlattr[NL80211_ATTR_REG_ALPHA2, string[nl80211_reg_alpha2]]
- NL80211_ATTR_REG_RULES nlnest[NL80211_ATTR_REG_RULES, array[reg_rule_policy]]
+ NL80211_ATTR_REG_RULES nlnest[NL80211_ATTR_REG_RULES, array[nlnest[0, array[reg_rule_policy]]]]
NL80211_ATTR_DFS_REGION nlattr[NL80211_ATTR_DFS_REGION, int8]
] [varlen]
@@ -321,24 +445,21 @@ reg_rule_policy [
] [varlen]
nl80211_policy_mesh [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
+ NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_wiphy]
NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
NL80211_ATTR_MESH_CONFIG nlnest[NL80211_ATTR_MESH_CONFIG, array[nl80211_meshconf_params_policy]]
] [varlen]
nl80211_policy_join_mesh [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
- NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
- NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
+ chandef_params array[nl80211_policy_chandef_params]
NL80211_ATTR_MESH_CONFIG nlnest[NL80211_ATTR_MESH_CONFIG, array[nl80211_meshconf_params_policy]]
NL80211_ATTR_MESH_SETUP nlattr[NL80211_ATTR_MESH_SETUP, array[nl80211_mesh_setup_params_policy]]
- NL80211_ATTR_MESH_ID nlattr[NL80211_ATTR_MESH_ID, array[int8]]
+ NL80211_ATTR_MESH_ID nlattr[NL80211_ATTR_MESH_ID, ieee80211_mesh_id]
NL80211_ATTR_MCAST_RATE nlattr[NL80211_ATTR_MCAST_RATE, int32]
- NL80211_ATTR_BEACON_INTERVAL nlattr[NL80211_ATTR_BEACON_INTERVAL, int32]
+ NL80211_ATTR_BEACON_INTERVAL nlattr[NL80211_ATTR_BEACON_INTERVAL, ieee80211_beacon_interval[int32]]
NL80211_ATTR_DTIM_PERIOD nlattr[NL80211_ATTR_DTIM_PERIOD, int32]
- NL80211_ATTR_WIPHY_FREQ nlattr[NL80211_ATTR_WIPHY_FREQ, int32]
- NL80211_ATTR_BSS_BASIC_RATES nlattr[NL80211_ATTR_BSS_BASIC_RATES, array[int8]]
+ NL80211_ATTR_BSS_BASIC_RATES nlattr[NL80211_ATTR_BSS_BASIC_RATES, nl80211_rates]
NL80211_ATTR_TX_RATES nlnest[NL80211_ATTR_TX_RATES, array[nl80211_tx_rates_policy]]
NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void]
NL80211_ATTR_HANDLE_DFS nlattr[NL80211_ATTR_HANDLE_DFS, void]
@@ -390,10 +511,9 @@ nl80211_mesh_setup_params_policy [
NL80211_MESH_SETUP_USERSPACE_AMPE nlattr[NL80211_MESH_SETUP_USERSPACE_AMPE, void]
] [varlen]
+nl80211_scan_flags = NL80211_SCAN_FLAG_LOW_PRIORITY, NL80211_SCAN_FLAG_FLUSH, NL80211_SCAN_FLAG_AP, NL80211_SCAN_FLAG_RANDOM_ADDR, NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME, NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP, NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE, NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION, NL80211_SCAN_FLAG_LOW_SPAN, NL80211_SCAN_FLAG_LOW_POWER, NL80211_SCAN_FLAG_HIGH_ACCURACY, NL80211_SCAN_FLAG_RANDOM_SN, NL80211_SCAN_FLAG_MIN_PREQ_CONTENT, NL80211_SCAN_FLAG_FREQ_KHZ
+
nl80211_policy_scan [
- NL80211_ATTR_WIPHY nlattr[NL80211_ATTR_WIPHY, nl80211_whipy]
- NL80211_ATTR_IFINDEX nlattr[NL80211_ATTR_IFINDEX, nl80211_ifindex]
- NL80211_ATTR_WDEV nlattr[NL80211_ATTR_WDEV, nl80211_wdev]
NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[int8, 0:IEEE80211_MAX_DATA_LEN]]
NL80211_ATTR_SCAN_FREQUENCIES nlnest[NL80211_ATTR_SCAN_FREQUENCIES, array[nlattr[0, int32]]]
@@ -410,10 +530,11 @@ nl80211_policy_scan [
NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST nlattr[NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST, nl80211_bss_select_rssi_adjust]
NL80211_ATTR_SCAN_SUPP_RATES nlnest[NL80211_ATTR_SCAN_SUPP_RATES, array[nl80211_rates_policy]]
NL80211_ATTR_SCHED_SCAN_MATCH nlnest[NL80211_ATTR_SCHED_SCAN_MATCH, array[nl80211_match_policy]]
+ NL80211_ATTR_SCAN_FLAGS nlattr[NL80211_ATTR_SCAN_FLAGS, flags[nl80211_scan_flags, int32]]
] [varlen]
nl80211_bss_select_rssi_adjust {
- band int8
+ band flags[nl80211_bands, int8]
delta int8
} [packed]
@@ -437,3 +558,526 @@ nl80211_match_band_rssi_policy [
NL80211_BAND_6GHZ nlattr[NL80211_BAND_6GHZ, int32]
NL80211_BAND_60GHZ nlattr[NL80211_BAND_60GHZ, int32]
] [varlen]
+
+nl80211_policy_join_ibss [
+ chandef_params array[nl80211_policy_chandef_params]
+ NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid]
+ NL80211_ATTR_HIDDEN_SSID nlattr[NL80211_ATTR_HIDDEN_SSID, ieee80211_ssid]
+ NL80211_ATTR_BEACON_INTERVAL nlattr[NL80211_ATTR_BEACON_INTERVAL, ieee80211_beacon_interval[int32]]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid]
+ NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]]
+ NL80211_ATTR_FREQ_FIXED nlattr[NL80211_ATTR_FREQ_FIXED, void]
+ NL80211_ATTR_PRIVACY nlattr[NL80211_ATTR_PRIVACY, void]
+ NL80211_ATTR_BSS_BASIC_RATES nlattr[NL80211_ATTR_BSS_BASIC_RATES, nl80211_rates]
+ NL80211_ATTR_HT_CAPABILITY nlattr[NL80211_ATTR_HT_CAPABILITY, ieee80211_ht_cap]
+ NL80211_ATTR_HT_CAPABILITY_MASK nlattr[NL80211_ATTR_HT_CAPABILITY_MASK, ieee80211_ht_cap]
+ NL80211_ATTR_MCAST_RATE nlattr[NL80211_ATTR_MCAST_RATE, int32]
+ NL80211_ATTR_KEYS nlnest[NL80211_ATTR_KEYS, array[nlnest[0, array[nl80211_key_policy]]]]
+ NL80211_ATTR_CONTROL_PORT nlattr[NL80211_ATTR_CONTROL_PORT, void]
+ NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void]
+ NL80211_ATTR_CONTROL_PORT_OVER_NL80211 nlattr[NL80211_ATTR_CONTROL_PORT_OVER_NL80211, void]
+ NL80211_ATTR_HANDLE_DFS nlattr[NL80211_ATTR_HANDLE_DFS, void]
+ NL80211_ATTR_MESH_CONFIG nlnest[NL80211_ATTR_MESH_CONFIG, array[nl80211_meshconf_params_policy]]
+] [varlen]
+
+nl80211_mfp_flags = NL80211_MFP_NO, NL80211_MFP_REQUIRED, NL80211_MFP_OPTIONAL
+
+nl80211_bss_select_policy [
+ NL80211_BSS_SELECT_ATTR_RSSI nlattr[NL80211_BSS_SELECT_ATTR_RSSI, void]
+ NL80211_BSS_SELECT_ATTR_BAND_PREF nlattr[NL80211_BSS_SELECT_ATTR_BAND_PREF, int32]
+ NL80211_BSS_SELECT_ATTR_RSSI_ADJUST nlattr[NL80211_BSS_SELECT_ATTR_RSSI_ADJUST, nl80211_bss_select_rssi_adjust]
+] [varlen]
+
+nl80211_policy_fils_params [
+ NL80211_ATTR_FILS_ERP_USERNAME nlattr[NL80211_ATTR_FILS_ERP_USERNAME, array[int8, 0:FILS_ERP_MAX_USERNAME_LEN]]
+ NL80211_ATTR_FILS_ERP_REALM nlattr[NL80211_ATTR_FILS_ERP_REALM, array[int8]]
+ NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM nlattr[NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM, int16]
+ NL80211_ATTR_FILS_ERP_RRK nlattr[NL80211_ATTR_FILS_ERP_RRK, array[int8]]
+] [varlen]
+
+nl80211_policy_crypto_settings [
+ NL80211_ATTR_CONTROL_PORT nlattr[NL80211_ATTR_CONTROL_PORT, void]
+ NL80211_ATTR_CONTROL_PORT_ETHERTYPE nlattr[NL80211_ATTR_CONTROL_PORT_ETHERTYPE, flags[ether_types, int16]]
+ NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT nlattr[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, void]
+ NL80211_ATTR_CONTROL_PORT_OVER_NL80211 nlattr[NL80211_ATTR_CONTROL_PORT_OVER_NL80211, void]
+ NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void]
+ NL80211_ATTR_CONTROL_PORT_NO_PREAUTH nlattr[NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, void]
+ NL80211_ATTR_CIPHER_SUITES_PAIRWISE nlattr[NL80211_ATTR_CIPHER_SUITES_PAIRWISE, array[flags[ieee80211_cipher_suites, int32], 0:NL80211_MAX_NR_CIPHER_SUITES]]
+ NL80211_ATTR_CIPHER_SUITE_GROUP nlattr[NL80211_ATTR_CIPHER_SUITE_GROUP, flags[ieee80211_cipher_suites, int32]]
+ NL80211_ATTR_WPA_VERSIONS nlattr[NL80211_ATTR_WPA_VERSIONS, flags[nl80211_wpa_versions, int32]]
+ NL80211_ATTR_AKM_SUITES nlattr[NL80211_ATTR_AKM_SUITES, array[flags[ieee80211_akm_suites, int32]]]
+ NL80211_ATTR_PMK nlattr[NL80211_ATTR_PMK, array[int8, NL80211_ATTR_PMK]]
+ NL80211_ATTR_SAE_PASSWORD nlattr[NL80211_ATTR_SAE_PASSWORD, array[int8, 0:SAE_PASSWORD_MAX_LEN]]
+] [varlen]
+
+nl80211_policy_connect [
+ chandef_params array[nl80211_policy_chandef_params]
+ fils_params array[nl80211_policy_fils_params]
+ crypto_settings array[nl80211_policy_crypto_settings]
+ NL80211_ATTR_WIPHY_FREQ_HINT nlattr[NL80211_ATTR_WIPHY_FREQ_HINT, ieee80211_frequency_mhz[int32]]
+ NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid]
+ NL80211_ATTR_AUTH_TYPE nlattr[NL80211_ATTR_AUTH_TYPE, flags[nl80211_auth_type, int32]]
+ NL80211_ATTR_PRIVACY nlattr[NL80211_ATTR_PRIVACY, void]
+ NL80211_ATTR_WANT_1X_4WAY_HS nlattr[NL80211_ATTR_WANT_1X_4WAY_HS, void]
+ NL80211_ATTR_BG_SCAN_PERIOD nlattr[NL80211_ATTR_BG_SCAN_PERIOD, int16]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid]
+ NL80211_ATTR_MAC_HINT nlattr[NL80211_ATTR_MAC_HINT, ieee80211_bssid]
+ NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]]
+ NL80211_ATTR_USE_MFP nlattr[NL80211_ATTR_USE_MFP, flags[nl80211_mfp_flags, int32]]
+ NL80211_ATTR_PREV_BSSID nlattr[NL80211_ATTR_PREV_BSSID, ieee80211_bssid]
+ NL80211_ATTR_WIPHY_EDMG_CHANNELS nlattr[NL80211_ATTR_WIPHY_EDMG_CHANNELS, int8]
+ NL80211_ATTR_WIPHY_EDMG_BW_CONFIG nlattr[NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, int8]
+ NL80211_ATTR_KEYS nlnest[NL80211_ATTR_KEYS, array[nlnest[0, array[nl80211_key_policy]]]]
+ NL80211_ATTR_DISABLE_HT nlattr[NL80211_ATTR_DISABLE_HT, void]
+ NL80211_ATTR_HT_CAPABILITY nlattr[NL80211_ATTR_HT_CAPABILITY, ieee80211_ht_cap]
+ NL80211_ATTR_HT_CAPABILITY_MASK nlattr[NL80211_ATTR_HT_CAPABILITY_MASK, ieee80211_ht_cap]
+ NL80211_ATTR_DISABLE_VHT nlattr[NL80211_ATTR_DISABLE_VHT, void]
+ NL80211_ATTR_VHT_CAPABILITY nlattr[NL80211_ATTR_VHT_CAPABILITY, ieee80211_vht_cap]
+ NL80211_ATTR_VHT_CAPABILITY_MASK nlattr[NL80211_ATTR_VHT_CAPABILITY_MASK, ieee80211_vht_cap]
+ NL80211_ATTR_USE_RRM nlattr[NL80211_ATTR_USE_RRM, void]
+ NL80211_ATTR_PBSS nlattr[NL80211_ATTR_PBSS, void]
+ NL80211_ATTR_BSS_SELECT nlnest[NL80211_ATTR_BSS_SELECT, array[nl80211_bss_select_policy]]
+ NL80211_ATTR_EXTERNAL_AUTH_SUPPORT nlattr[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT, void]
+ NL80211_ATTR_SOCKET_OWNER nlattr[NL80211_ATTR_SOCKET_OWNER, void]
+] [varlen]
+
+nl80211_policy_disconnect [
+ NL80211_ATTR_REASON_CODE nlattr[NL80211_ATTR_REASON_CODE, ieee80211_reason_code[int16]]
+] [varlen]
+
+nl80211_preamble_types = NL80211_PREAMBLE_LEGACY, NL80211_PREAMBLE_HT, NL80211_PREAMBLE_VHT, NL80211_PREAMBLE_DMG, NL80211_PREAMBLE_HE
+
+nl80211_pmsr_ftm_req_attr_policy [
+ NL80211_PMSR_FTM_REQ_ATTR_ASAP nlattr[NL80211_PMSR_FTM_REQ_ATTR_ASAP, void]
+ NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE nlattr[NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE, flags[nl80211_preamble_types, int32]]
+ NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP nlattr[NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP, int8[0:15]]
+ NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD nlattr[NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD, int16]
+ NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION nlattr[NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION, int8[0:15]]
+ NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST nlattr[NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST, int8[0:31]]
+ NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES nlattr[NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES, int8]
+ NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI nlattr[NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI, void]
+ NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC nlattr[NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC, void]
+ NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nlattr[NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED, void]
+ NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED nlattr[NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED, void]
+] [varlen]
+
+nl80211_pmsr_req_data_policy [
+ NL80211_PMSR_TYPE_FTM nlnest[NL80211_PMSR_TYPE_FTM, array[nl80211_pmsr_ftm_req_attr_policy]]
+] [varlen]
+
+nl80211_pmsr_req_attr_policy [
+ NL80211_PMSR_REQ_ATTR_DATA nlnest[NL80211_PMSR_REQ_ATTR_DATA, array[nl80211_pmsr_req_data_policy]]
+ NL80211_PMSR_REQ_ATTR_GET_AP_TSF nlattr[NL80211_PMSR_REQ_ATTR_GET_AP_TSF, void]
+] [varlen]
+
+nl80211_psmr_peer_attr_policy [
+ NL80211_PMSR_PEER_ATTR_ADDR nlattr[NL80211_PMSR_PEER_ATTR_ADDR, ieee80211_mac_addr]
+ NL80211_PMSR_PEER_ATTR_CHAN nlnest[NL80211_PMSR_PEER_ATTR_CHAN, array[nl80211_policy_chandef_params]]
+ NL80211_PMSR_PEER_ATTR_REQ nlnest[NL80211_PMSR_PEER_ATTR_REQ, array[nl80211_pmsr_req_attr_policy]]
+] [varlen]
+
+nl80211_pmsr_attr_policy [
+ NL80211_PMSR_ATTR_PEERS nlnest[NL80211_PMSR_ATTR_PEERS, array[nlnest[0, array[nl80211_psmr_peer_attr_policy]]]]
+] [varlen]
+
+nl80211_policy_upd_owe_info [
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+ NL80211_ATTR_STATUS_CODE nlattr[NL80211_ATTR_STATUS_CODE, ieee80211_status_code[int16]]
+ NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]]
+] [varlen]
+
+# TODO: consider adding a pseudo system call that receives a response and takes a cookie from there
+type nl80211_cookie int64[0:128]
+
+nl80211_policy_del_nan_func [
+ NL80211_ATTR_COOKIE nlattr[NL80211_ATTR_COOKIE, nl80211_cookie]
+]
+
+define NL80211_BAND_2GHZ_BIT 1 << NL80211_BAND_2GHZ
+define NL80211_BAND_5GHZ_BIT 1 << NL80211_BAND_5GHZ
+define NL80211_BAND_60GHZ_BIT 1 << NL80211_BAND_60GHZ
+define NL80211_BAND_6GHZ_BIT 1 << NL80211_BAND_6GHZ
+
+nl80211_bands = NL80211_BAND_2GHZ_BIT, NL80211_BAND_5GHZ_BIT, NL80211_BAND_60GHZ_BIT, NL80211_BAND_6GHZ_BIT
+
+# Same for NL80211_CMD_CHANGE_NAN_CONFIG and NL80211_CMD_START_NAN
+nl80211_policy_start_nan [
+ NL80211_ATTR_NAN_MASTER_PREF nlattr[NL80211_ATTR_NAN_MASTER_PREF, int8]
+ NL80211_ATTR_BANDS nlattr[NL80211_ATTR_BANDS, flags[nl80211_bands, int32]]
+] [varlen]
+
+nl80211_nan_func_types = NL80211_NAN_FUNC_PUBLISH, NL80211_NAN_FUNC_SUBSCRIBE, NL80211_NAN_FUNC_FOLLOW_UP
+
+nl80211_nan_srf_policy [
+ NL80211_NAN_SRF_INCLUDE nlattr[NL80211_NAN_SRF_INCLUDE, void]
+ NL80211_NAN_SRF_BF nlattr[NL80211_NAN_SRF_BF, array[int8, NL80211_NAN_FUNC_SRF_MAX_LEN]]
+ NL80211_NAN_SRF_BF_IDX nlattr[NL80211_NAN_SRF_BF_IDX, int8]
+ NL80211_NAN_SRF_MAC_ADDRS nlnest[NL80211_NAN_SRF_MAC_ADDRS, array[nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]]]
+] [varlen]
+
+nl80211_nan_func_policy [
+ NL80211_NAN_FUNC_TYPE nlattr[NL80211_NAN_FUNC_TYPE, flags[nl80211_nan_func_types, int8]]
+ NL80211_NAN_FUNC_SERVICE_ID nlattr[NL80211_NAN_FUNC_SERVICE_ID, array[int8, NL80211_NAN_FUNC_SERVICE_ID_LEN]]
+ NL80211_NAN_FUNC_CLOSE_RANGE nlattr[NL80211_NAN_FUNC_CLOSE_RANGE, void]
+ NL80211_NAN_FUNC_SERVICE_INFO nlattr[NL80211_NAN_FUNC_SERVICE_INFO, array[int8, 0:NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN]]
+ NL80211_NAN_FUNC_TTL nlattr[NL80211_NAN_FUNC_TTL, int32]
+ NL80211_NAN_FUNC_PUBLISH_TYPE nlattr[NL80211_NAN_FUNC_PUBLISH_TYPE, int8]
+ NL80211_NAN_FUNC_PUBLISH_BCAST nlattr[NL80211_NAN_FUNC_PUBLISH_BCAST, void]
+ NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE nlattr[NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE, void]
+ NL80211_NAN_FUNC_FOLLOW_UP_ID nlattr[NL80211_NAN_FUNC_FOLLOW_UP_ID, int8]
+ NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID nlattr[NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID, int8]
+ NL80211_NAN_FUNC_FOLLOW_UP_DEST nlattr[NL80211_NAN_FUNC_FOLLOW_UP_DEST, ieee80211_mac_addr]
+ NL80211_NAN_FUNC_SRF nlnest[NL80211_NAN_FUNC_SRF, array[nl80211_nan_srf_policy]]
+ NL80211_NAN_FUNC_TX_MATCH_FILTER nlnest[NL80211_NAN_FUNC_TX_MATCH_FILTER, array[nlattr[0, array[int8]]]]
+ NL80211_NAN_FUNC_RX_MATCH_FILTER nlnest[NL80211_NAN_FUNC_RX_MATCH_FILTER, array[nlattr[0, array[int8]]]]
+ NL80211_NAN_FUNC_INSTANCE_ID nlattr[NL80211_NAN_FUNC_INSTANCE_ID, int8]
+ NL80211_NAN_FUNC_TERM_REASON nlattr[NL80211_NAN_FUNC_TERM_REASON, int8]
+] [varlen]
+
+nl80211_policy_add_nan_func [
+ NL80211_ATTR_NAN_FUNC nlnest[NL80211_ATTR_NAN_FUNC, array[nl80211_nan_func_policy]]
+] [varlen]
+
+nl80211_policy_probe_client [
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+]
+
+nl80211_packet_pattern_policy [
+# TODO: lengths of NL80211_PKTPAT_MASK and NL80211_PKTPAT_PATTERN are related. Currently, syzlang does not provide means to specify this.
+ NL80211_PKTPAT_MASK nlattr[NL80211_PKTPAT_MASK, array[int8]]
+ NL80211_PKTPAT_PATTERN nlattr[NL80211_PKTPAT_PATTERN, array[int8]]
+ NL80211_PKTPAT_OFFSET nlattr[NL80211_PKTPAT_OFFSET, int32]
+] [varlen]
+
+nl80211_coalesce_policy [
+ NL80211_ATTR_COALESCE_RULE_DELAY nlattr[NL80211_ATTR_COALESCE_RULE_DELAY, int32]
+ NL80211_ATTR_COALESCE_RULE_CONDITION nlattr[NL80211_ATTR_COALESCE_RULE_CONDITION, int32[NL80211_COALESCE_CONDITION_MATCH:NL80211_COALESCE_CONDITION_NO_MATCH]]
+ NL80211_ATTR_COALESCE_RULE_PKT_PATTERN nlnest[NL80211_ATTR_COALESCE_RULE_PKT_PATTERN, array[nlnest[0, nl80211_packet_pattern_policy], 0:MAX_NL80211_PKTPAT]]
+] [varlen]
+
+nl80211_acl_policies = NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED, NL80211_ACL_POLICY_DENY_UNLESS_LISTED
+
+nl80211_policy_acl [
+ NL80211_ATTR_ACL_POLICY nlattr[NL80211_ATTR_ACL_POLICY, flags[nl80211_acl_policies, int32]]
+ NL80211_ATTR_MAC_ADDRS nlnest[NL80211_ATTR_MAC_ADDRS, array[nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]]]
+] [varlen]
+
+nl80211_policy_set_mcast_rate [
+ NL80211_ATTR_MCAST_RATE nlattr[NL80211_ATTR_MCAST_RATE, flags[ieee80211_raw_rates, int32]]
+]
+
+nl80211_policy_set_mcast_to_ucast [
+ NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED nlattr[NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED, void]
+]
+
+nl80211_policy_set_noack_map [
+ NL80211_ATTR_NOACK_MAP nlattr[NL80211_ATTR_NOACK_MAP, int16]
+]
+
+nl80211_policy_set_pmk [
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+ NL80211_ATTR_PMK nlattr[NL80211_ATTR_PMK, array[int8, WLAN_PMKID_LEN]]
+ NL80211_ATTR_PMKR0_NAME nlattr[NL80211_ATTR_PMKR0_NAME, array[int8, WLAN_PMK_NAME_LEN]]
+] [varlen]
+
+nl80211_policy_del_pmk [
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+]
+
+nl80211_policy_setdel_pmksa [
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid]
+ NL80211_ATTR_PMK nlattr[NL80211_ATTR_PMK, array[int8, WLAN_PMKID_LEN]]
+ NL80211_ATTR_PMKID nlattr[NL80211_ATTR_PMKID, array[int8, WLAN_PMKID_LEN]]
+ NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid]
+ NL80211_ATTR_FILS_CACHE_ID nlattr[NL80211_ATTR_FILS_CACHE_ID, int16]
+ NL80211_ATTR_PMK_LIFETIME nlattr[NL80211_ATTR_PMK_LIFETIME, int32]
+ NL80211_ATTR_PMK_REAUTH_THRESHOLD nlattr[NL80211_ATTR_PMK_REAUTH_THRESHOLD, int8[1:100]]
+] [varlen]
+
+nl80211_policy_cookie [
+ NL80211_ATTR_COOKIE nlattr[NL80211_ATTR_COOKIE, nl80211_cookie]
+]
+
+nl80211_powersave_states = NL80211_PS_DISABLED, NL80211_PS_ENABLED
+
+nl80211_policy_power_save [
+ NL80211_ATTR_PS_STATE nlattr[NL80211_ATTR_PS_STATE, flags[nl80211_powersave_states, int32]]
+]
+
+nl80211_policy_remain_on_ch [
+ chandef_params array[nl80211_policy_chandef_params]
+ NL80211_ATTR_DURATION nlattr[NL80211_ATTR_DURATION, int32]
+] [varlen]
+
+nl80211_policy_update_ft_ies [
+ NL80211_ATTR_MDID nlattr[NL80211_ATTR_MDID, int16]
+ NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]]
+] [varlen]
+
+nl80211_policy_vendor [
+ NL80211_ATTR_VENDOR_ID nlattr[NL80211_ATTR_VENDOR_ID, int32]
+ NL80211_ATTR_VENDOR_SUBCMD nlattr[NL80211_ATTR_VENDOR_SUBCMD, int32]
+ NL80211_ATTR_VENDOR_DATA nlattr[NL80211_ATTR_VENDOR_DATA, array[int8]]
+] [varlen]
+
+nl80211_qos_map_dscp_exception {
+ dscp int8
+ up int8[0:7]
+} [packed]
+
+nl80211_qos_map {
+ dscp_exceptions array[nl80211_qos_map_dscp_exception, 0:IEEE80211_QOS_MAP_MAX_EX]
+ up array[int8, 8]
+} [packed]
+
+nl80211_policy_set_qos_map [
+ NL80211_ATTR_QOS_MAP nlattr[NL80211_ATTR_QOS_MAP, nl80211_qos_map]
+] [varlen]
+
+nl80211_cqm [
+ NL80211_ATTR_CQM_RSSI_THOLD nlattr[NL80211_ATTR_CQM_RSSI_THOLD, array[int32]]
+ NL80211_ATTR_CQM_RSSI_HYST nlattr[NL80211_ATTR_CQM_RSSI_HYST, int32]
+ NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT nlattr[NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT, int32]
+ NL80211_ATTR_CQM_TXE_RATE nlattr[NL80211_ATTR_CQM_TXE_RATE, int32[0:100]]
+ NL80211_ATTR_CQM_TXE_PKTS nlattr[NL80211_ATTR_CQM_TXE_PKTS, int32]
+ NL80211_ATTR_CQM_TXE_INTVL nlattr[NL80211_ATTR_CQM_TXE_INTVL, int32[0:NL80211_CQM_TXE_MAX_INTVL]]
+ NL80211_ATTR_CQM_RSSI_LEVEL nlattr[NL80211_ATTR_CQM_RSSI_LEVEL, int32]
+] [varlen]
+
+nl80211_policy_cqm [
+ NL80211_ATTR_CQM nlnest[NL80211_ATTR_CQM, array[nl80211_cqm]]
+] [varlen]
+
+nl80211_policy_mgmt_frame [
+ chandef_params array[nl80211_policy_chandef_params]
+ NL80211_ATTR_DONT_WAIT_FOR_ACK nlattr[NL80211_ATTR_DONT_WAIT_FOR_ACK, void]
+ NL80211_ATTR_FRAME nlattr[NL80211_ATTR_FRAME, ieee80211_frame]
+ NL80211_ATTR_DURATION nlattr[NL80211_ATTR_DURATION, int32[NL80211_MIN_REMAIN_ON_CHANNEL_TIME:5000]]
+ NL80211_ATTR_OFFCHANNEL_TX_OK nlattr[NL80211_ATTR_OFFCHANNEL_TX_OK, void]
+ NL80211_ATTR_TX_NO_CCK_RATE nlattr[NL80211_ATTR_TX_NO_CCK_RATE, void]
+ NL80211_ATTR_CSA_C_OFFSETS_TX nlattr[NL80211_ATTR_CSA_C_OFFSETS_TX, array[int16]]
+] [varlen]
+
+define IEEE80211_MAX_TID IEEE80211_NUM_TIDS - 1
+define IEEE80211_MAX_UP IEEE80211_NUM_UPS - 1
+
+nl80211_policy_add_tx_ts [
+ NL80211_ATTR_TSID nlattr[NL80211_ATTR_TSID, int8[0:IEEE80211_MAX_TID]]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+ NL80211_ATTR_ADMITTED_TIME nlattr[NL80211_ATTR_ADMITTED_TIME, int16]
+ NL80211_ATTR_USER_PRIO nlattr[NL80211_ATTR_USER_PRIO, int8[0:IEEE80211_MAX_UP]]
+] [varlen]
+
+nl80211_policy_del_tx_ts [
+ NL80211_ATTR_TSID nlattr[NL80211_ATTR_TSID, int8[0:IEEE80211_MAX_TID]]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+] [varlen]
+
+nl80211_policy_authenticate [
+ chandef_params array[nl80211_policy_chandef_params]
+ key_params array[nl80211_policy_cmd_key]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid]
+ NL80211_ATTR_AUTH_TYPE nlattr[NL80211_ATTR_AUTH_TYPE, flags[nl80211_auth_type, int32]]
+ NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid]
+] [varlen]
+
+nl80211_policy_de_auth_assoc [
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid]
+ NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid]
+ NL80211_ATTR_REASON_CODE nlattr[NL80211_ATTR_REASON_CODE, int16]
+ NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]]
+ NL80211_ATTR_LOCAL_STATE_CHANGE nlattr[NL80211_ATTR_LOCAL_STATE_CHANGE, void]
+] [varlen]
+
+nl80211_policy_associate [
+ chandef_params array[nl80211_policy_chandef_params]
+ crypto_settings array[nl80211_policy_crypto_settings]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid]
+ NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid]
+ NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]]
+ NL80211_ATTR_USE_MFP nlattr[NL80211_ATTR_USE_MFP, flags[nl80211_mfp_flags, int32]]
+ NL80211_ATTR_PREV_BSSID nlattr[NL80211_ATTR_PREV_BSSID, ieee80211_bssid]
+ NL80211_ATTR_DISABLE_HT nlattr[NL80211_ATTR_DISABLE_HT, void]
+ NL80211_ATTR_HT_CAPABILITY nlattr[NL80211_ATTR_HT_CAPABILITY, ieee80211_ht_cap]
+ NL80211_ATTR_HT_CAPABILITY_MASK nlattr[NL80211_ATTR_HT_CAPABILITY_MASK, ieee80211_ht_cap]
+ NL80211_ATTR_DISABLE_VHT nlattr[NL80211_ATTR_DISABLE_VHT, void]
+ NL80211_ATTR_VHT_CAPABILITY nlattr[NL80211_ATTR_VHT_CAPABILITY, ieee80211_vht_cap]
+ NL80211_ATTR_VHT_CAPABILITY_MASK nlattr[NL80211_ATTR_VHT_CAPABILITY_MASK, ieee80211_vht_cap]
+ NL80211_ATTR_USE_RRM nlattr[NL80211_ATTR_USE_RRM, void]
+ NL80211_ATTR_FILS_KEK nlattr[NL80211_ATTR_FILS_KEK, array[int8, 0:FILS_MAX_KEK_LEN]]
+ NL80211_ATTR_FILS_NONCES nlattr[NL80211_ATTR_FILS_NONCES, array[int16, FILS_NONCE_LEN]]
+] [varlen]
+
+nl80211_policy_ext_auth [
+ NL80211_ATTR_BSSID nlattr[NL80211_ATTR_BSSID, ieee80211_bssid]
+ NL80211_ATTR_SSID nlattr[NL80211_ATTR_SSID, ieee80211_ssid]
+ NL80211_ATTR_STATUS_CODE nlattr[NL80211_ATTR_STATUS_CODE, ieee80211_status_code[int16]]
+ NL80211_ATTR_PMKID nlattr[NL80211_ATTR_PMKID, array[int8, WLAN_PMKID_LEN]]
+] [varlen]
+
+nl80211_kek [
+ kek array[int8, NL80211_KEK_LEN]
+ kek_ext array[int8, NL80211_KEK_EXT_LEN]
+] [varlen]
+
+nl80211_kck [
+ kck array[int8, NL80211_KCK_LEN]
+ kck_ext array[int8, NL80211_KCK_EXT_LEN]
+] [varlen]
+
+nl80211_rekey_policy [
+ NL80211_REKEY_DATA_KEK nlattr[NL80211_REKEY_DATA_KEK, nl80211_kek]
+ NL80211_REKEY_DATA_KCK nlattr[NL80211_REKEY_DATA_KCK, nl80211_kck]
+ NL80211_REKEY_DATA_REPLAY_CTR nlattr[NL80211_REKEY_DATA_REPLAY_CTR, array[int8, NL80211_REPLAY_CTR_LEN]]
+ NL80211_REKEY_DATA_AKM nlattr[NL80211_REKEY_DATA_AKM, int32]
+] [varlen]
+
+nl80211_policy_rekey_offload [
+ NL80211_ATTR_REKEY_DATA nlnest[NL80211_ATTR_REKEY_DATA, array[nl80211_rekey_policy]]
+] [varlen]
+
+nl80211_policy_set_wds_peer [
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_bssid]
+]
+
+nl80211_tx_rate_setting = NL80211_TX_RATE_AUTOMATIC, NL80211_TX_RATE_LIMITED, NL80211_TX_RATE_FIXED
+
+nl80211_tid_config_attr_policy [
+ NL80211_TID_CONFIG_ATTR_VIF_SUPP nlattr[NL80211_TID_CONFIG_ATTR_VIF_SUPP, int64]
+ NL80211_TID_CONFIG_ATTR_PEER_SUPP nlattr[NL80211_TID_CONFIG_ATTR_PEER_SUPP, int64]
+ NL80211_TID_CONFIG_ATTR_OVERRIDE nlattr[NL80211_TID_CONFIG_ATTR_OVERRIDE, void]
+ NL80211_TID_CONFIG_ATTR_TIDS nlattr[NL80211_TID_CONFIG_ATTR_TIDS, int16[0x1:0xff]]
+ NL80211_TID_CONFIG_ATTR_NOACK nlattr[NL80211_TID_CONFIG_ATTR_NOACK, int8[0:NL80211_TID_CONFIG_DISABLE]]
+ NL80211_TID_CONFIG_ATTR_RETRY_SHORT nlattr[NL80211_TID_CONFIG_ATTR_RETRY_SHORT, int8[1:255]]
+ NL80211_TID_CONFIG_ATTR_RETRY_LONG nlattr[NL80211_TID_CONFIG_ATTR_RETRY_LONG, int8[1:255]]
+ NL80211_TID_CONFIG_ATTR_AMPDU_CTRL nlattr[NL80211_TID_CONFIG_ATTR_AMPDU_CTRL, int8[0:NL80211_TID_CONFIG_DISABLE]]
+ NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL nlattr[NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL, int8[0:NL80211_TID_CONFIG_DISABLE]]
+ NL80211_TID_CONFIG_ATTR_AMSDU_CTRL nlattr[NL80211_TID_CONFIG_ATTR_AMSDU_CTRL, int8[0:NL80211_TID_CONFIG_DISABLE]]
+ NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE nlattr[NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE, flags[nl80211_tx_rate_setting, int8]]
+ NL80211_TID_CONFIG_ATTR_TX_RATE nlnest[NL80211_TID_CONFIG_ATTR_TX_RATE, array[nl80211_tx_rates_policy]]
+] [varlen]
+
+nl80211_policy_set_tid_config [
+ NL80211_ATTR_TID_CONFIG nlnest[NL80211_ATTR_TID_CONFIG, array[nlnest[0, array[nl80211_tid_config_attr_policy]]]]
+] [varlen]
+
+nl80211_policy_upd_connect_params [
+ fils_params array[nl80211_policy_fils_params]
+ NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]]
+] [varlen]
+
+nl80211_policy_tdls_mgmt [
+ NL80211_ATTR_TDLS_ACTION nlattr[NL80211_ATTR_TDLS_ACTION, flags[ieee80211_tdls_action_codes, int8]]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+ NL80211_ATTR_STATUS_CODE nlattr[NL80211_ATTR_STATUS_CODE, ieee80211_status_code[int16]]
+ NL80211_ATTR_TDLS_DIALOG_TOKEN nlattr[NL80211_ATTR_TDLS_DIALOG_TOKEN, int8]
+ NL80211_ATTR_IE nlattr[NL80211_ATTR_IE, array[ieee80211_ie]]
+ NL80211_ATTR_TDLS_INITIATOR nlattr[NL80211_ATTR_TDLS_INITIATOR, void]
+ NL80211_ATTR_TDLS_PEER_CAPABILITY nlattr[NL80211_ATTR_TDLS_PEER_CAPABILITY, int32]
+] [varlen]
+
+nl80211_tdls_operations = NL80211_TDLS_DISCOVERY_REQ, NL80211_TDLS_SETUP, NL80211_TDLS_TEARDOWN, NL80211_TDLS_ENABLE_LINK, NL80211_TDLS_DISABLE_LINK
+
+nl80211_policy_tdls_oper [
+ NL80211_ATTR_TDLS_OPERATION nlattr[NL80211_ATTR_TDLS_OPERATION, flags[nl80211_tdls_operations, int8]]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+] [varlen]
+
+nl80211_policy_control_port [
+ NL80211_ATTR_FRAME nlattr[NL80211_ATTR_FRAME, ieee80211_frame]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+ NL80211_ATTR_CONTROL_PORT_ETHERTYPE nlattr[NL80211_ATTR_CONTROL_PORT_ETHERTYPE, flags[ether_types, int16]]
+ NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT nlattr[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, void]
+] [varlen]
+
+nl80211_crit_proto_ids = NL80211_CRIT_PROTO_UNSPEC, NL80211_CRIT_PROTO_DHCP, NL80211_CRIT_PROTO_EAPOL, NL80211_CRIT_PROTO_APIPA
+
+nl80211_policy_crit_proto_start [
+ NL80211_ATTR_CRIT_PROT_ID nlattr[NL80211_ATTR_CRIT_PROT_ID, flags[nl80211_crit_proto_ids, int16]]
+ NL80211_ATTR_MAX_CRIT_PROT_DURATION nlattr[NL80211_ATTR_MAX_CRIT_PROT_DURATION, int16[0:NL80211_CRIT_PROTO_MAX_DURATION]]
+] [varlen]
+
+nl80211_policy_probe_mesh_link [
+ NL80211_ATTR_FRAME nlattr[NL80211_ATTR_FRAME, ieee80211_frame]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+] [varlen]
+
+nl80211_policy_register_mgmt [
+ NL80211_ATTR_FRAME_TYPE nlattr[NL80211_ATTR_FRAME_TYPE, int16]
+ NL80211_ATTR_FRAME_MATCH nlattr[NL80211_ATTR_FRAME_MATCH, array[int8]]
+] [varlen]
+
+nl80211_policy_tdls_chsw [
+ chandef_params array[nl80211_policy_chandef_params]
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+ NL80211_ATTR_OPER_CLASS nlattr[NL80211_ATTR_OPER_CLASS, int8]
+] [varlen]
+
+nl80211_policy_tdls_chsw_cancel [
+ NL80211_ATTR_MAC nlattr[NL80211_ATTR_MAC, ieee80211_mac_addr]
+] [varlen]
+
+nl80211_policy_csa [
+ beacon_params array[nl80211_policy_beacon]
+ NL80211_ATTR_CSA_C_OFF_BEACON nlattr[NL80211_ATTR_CSA_C_OFF_BEACON, array[int16]]
+ NL80211_ATTR_CSA_C_OFF_PRESP nlattr[NL80211_ATTR_CSA_C_OFF_PRESP, array[int16]]
+] [varlen]
+
+nl80211_policy_chsw [
+ chandef_params array[nl80211_policy_chandef_params]
+ NL80211_ATTR_CSA_IES nlnest[NL80211_ATTR_CSA_IES, array[nl80211_policy_csa]]
+ NL80211_ATTR_CH_SWITCH_COUNT nlattr[NL80211_ATTR_CH_SWITCH_COUNT, int32[0:255]]
+ NL80211_ATTR_CH_SWITCH_BLOCK_TX nlattr[NL80211_ATTR_CH_SWITCH_BLOCK_TX, void]
+] [varlen]
+
+nl80211_wowlan_tcp_data_seq {
+ start int32
+ offset int32
+ len int32
+} [packed]
+
+nl80211_wowlan_tcp_data_token {
+ offset int32
+ len int32
+ token_stream array[int8]
+} [packed]
+
+nl80211_wowlan_tcp_policy [
+ NL80211_WOWLAN_TCP_SRC_IPV4 nlattr[NL80211_WOWLAN_TCP_SRC_IPV4, ipv4_addr]
+ NL80211_WOWLAN_TCP_DST_IPV4 nlattr[NL80211_WOWLAN_TCP_DST_IPV4, ipv4_addr]
+ NL80211_WOWLAN_TCP_DST_MAC nlattr[NL80211_WOWLAN_TCP_DST_MAC, ieee80211_mac_addr]
+ NL80211_WOWLAN_TCP_SRC_PORT nlattr[NL80211_WOWLAN_TCP_SRC_PORT, int16]
+ NL80211_WOWLAN_TCP_DST_PORT nlattr[NL80211_WOWLAN_TCP_DST_PORT, int16]
+ NL80211_WOWLAN_TCP_DATA_PAYLOAD nlattr[NL80211_WOWLAN_TCP_DATA_PAYLOAD, array[int8]]
+ NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ nlattr[NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ, nl80211_wowlan_tcp_data_seq]
+ NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN nlattr[NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN, nl80211_wowlan_tcp_data_token]
+ NL80211_WOWLAN_TCP_DATA_INTERVAL nlattr[NL80211_WOWLAN_TCP_DATA_INTERVAL, int32]
+# TODO: lengths of NL80211_WOWLAN_TCP_WAKE_PAYLOAD and NL80211_WOWLAN_TCP_WAKE_MASK are related. Currently, syzlang does not provide means to specify this.
+ NL80211_WOWLAN_TCP_WAKE_PAYLOAD nlattr[NL80211_WOWLAN_TCP_WAKE_PAYLOAD, array[int8]]
+ NL80211_WOWLAN_TCP_WAKE_MASK nlattr[NL80211_WOWLAN_TCP_WAKE_MASK, array[int8]]
+] [varlen]
+
+nl80211_wowlan_policy [
+ NL80211_WOWLAN_TRIG_ANY nlattr[NL80211_WOWLAN_TRIG_ANY, void]
+ NL80211_WOWLAN_TRIG_DISCONNECT nlattr[NL80211_WOWLAN_TRIG_DISCONNECT, void]
+ NL80211_WOWLAN_TRIG_MAGIC_PKT nlattr[NL80211_WOWLAN_TRIG_MAGIC_PKT, void]
+ NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE nlattr[NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE, void]
+ NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST nlattr[NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST, void]
+ NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE nlattr[NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE, void]
+ NL80211_WOWLAN_TRIG_RFKILL_RELEASE nlattr[NL80211_WOWLAN_TRIG_RFKILL_RELEASE, void]
+ NL80211_WOWLAN_TRIG_PKT_PATTERN nlnest[NL80211_WOWLAN_TRIG_PKT_PATTERN, array[nlnest[0, array[nl80211_packet_pattern_policy]]]]
+ NL80211_WOWLAN_TRIG_TCP_CONNECTION nlnest[NL80211_WOWLAN_TRIG_TCP_CONNECTION, array[nl80211_wowlan_tcp_policy]]
+ NL80211_WOWLAN_TRIG_NET_DETECT nlnest[NL80211_WOWLAN_TRIG_NET_DETECT, array[nl80211_policy_scan]]
+] [varlen]
+
+nl80211_policy_set_wowlan [
+ NL80211_ATTR_WOWLAN_TRIGGERS nlnest[NL80211_ATTR_WOWLAN_TRIGGERS, array[nl80211_wowlan_policy]]
+] [varlen]
+
+nl80211_policy_testmode [
+ NL80211_ATTR_TESTDATA nlattr[NL80211_ATTR_TESTDATA, array[int8]]
+] [varlen]
+
+nl80211_policy_set_tx_bitrate [
+ NL80211_ATTR_TX_RATES nlnest[NL80211_ATTR_TX_RATES, array[nl80211_tx_rates_policy]]
+] [varlen]
diff --git a/sys/linux/socket_netlink_generic_80211.txt.const b/sys/linux/socket_netlink_generic_80211.txt.const
index 93a521b39..75f543807 100644
--- a/sys/linux/socket_netlink_generic_80211.txt.const
+++ b/sys/linux/socket_netlink_generic_80211.txt.const
@@ -1,18 +1,28 @@
# Code generated by syz-sysgen. DO NOT EDIT.
arches = 386, amd64, arm, arm64, mips64le, ppc64le, riscv64, s390x
+FILS_ERP_MAX_USERNAME_LEN = 16
+FILS_MAX_KEK_LEN = 64
+FILS_NONCE_LEN = 16
+IEEE80211_HT_MCS_MASK_LEN = 10
IEEE80211_HT_OP_MODE_NON_GF_STA_PRSNT = 4
IEEE80211_HT_OP_MODE_NON_HT_STA_PRSNT = 16
IEEE80211_HT_OP_MODE_PROTECTION = 3
IEEE80211_MAX_AID = 2007
IEEE80211_MAX_DATA_LEN = 2304
-IEEE80211_MAX_SSID_LEN = 32
+IEEE80211_MAX_TID = 15
+IEEE80211_MAX_UP = 7
+IEEE80211_QOS_MAP_MAX_EX = 21
+MAX_NL80211_PKTPAT = 3
NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0
NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 1
+NL80211_ATTR_4ADDR = 83
NL80211_ATTR_ACL_POLICY = 165
+NL80211_ATTR_ADMITTED_TIME = 212
NL80211_ATTR_AIRTIME_WEIGHT = 274
NL80211_ATTR_AKM_SUITES = 76
NL80211_ATTR_AP_ISOLATE = 96
NL80211_ATTR_AUTH_TYPE = 53
+NL80211_ATTR_BANDS = 239
NL80211_ATTR_BEACON_HEAD = 14
NL80211_ATTR_BEACON_INTERVAL = 12
NL80211_ATTR_BEACON_TAIL = 15
@@ -21,30 +31,76 @@ NL80211_ATTR_BSSID = 245
NL80211_ATTR_BSS_BASIC_RATES = 36
NL80211_ATTR_BSS_CTS_PROT = 28
NL80211_ATTR_BSS_HT_OPMODE = 109
+NL80211_ATTR_BSS_SELECT = 227
NL80211_ATTR_BSS_SHORT_PREAMBLE = 29
NL80211_ATTR_BSS_SHORT_SLOT_TIME = 30
+NL80211_ATTR_CENTER_FREQ1 = 160
+NL80211_ATTR_CENTER_FREQ2 = 161
+NL80211_ATTR_CHANNEL_WIDTH = 159
+NL80211_ATTR_CH_SWITCH_BLOCK_TX = 184
+NL80211_ATTR_CH_SWITCH_COUNT = 183
NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 73
NL80211_ATTR_CIPHER_SUITE_GROUP = 74
+NL80211_ATTR_COALESCE_RULE_CONDITION = 2
+NL80211_ATTR_COALESCE_RULE_DELAY = 1
+NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 3
+NL80211_ATTR_CONTROL_PORT = 68
+NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 102
+NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 103
+NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 286
NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 264
+NL80211_ATTR_COOKIE = 88
+NL80211_ATTR_CQM = 94
+NL80211_ATTR_CQM_RSSI_HYST = 2
+NL80211_ATTR_CQM_RSSI_LEVEL = 9
+NL80211_ATTR_CQM_RSSI_THOLD = 1
+NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 3
+NL80211_ATTR_CQM_TXE_INTVL = 7
+NL80211_ATTR_CQM_TXE_PKTS = 6
+NL80211_ATTR_CQM_TXE_RATE = 5
+NL80211_ATTR_CRIT_PROT_ID = 179
+NL80211_ATTR_CSA_C_OFFSETS_TX = 205
+NL80211_ATTR_CSA_C_OFF_BEACON = 186
+NL80211_ATTR_CSA_C_OFF_PRESP = 187
+NL80211_ATTR_CSA_IES = 185
NL80211_ATTR_DFS_CAC_TIME = 7
NL80211_ATTR_DFS_REGION = 146
+NL80211_ATTR_DISABLE_HT = 147
+NL80211_ATTR_DISABLE_VHT = 175
+NL80211_ATTR_DONT_WAIT_FOR_ACK = 142
NL80211_ATTR_DTIM_PERIOD = 13
+NL80211_ATTR_DURATION = 87
NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 261
+NL80211_ATTR_FILS_CACHE_ID = 253
+NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 251
+NL80211_ATTR_FILS_ERP_REALM = 250
+NL80211_ATTR_FILS_ERP_RRK = 252
+NL80211_ATTR_FILS_ERP_USERNAME = 249
+NL80211_ATTR_FILS_KEK = 242
+NL80211_ATTR_FILS_NONCES = 243
+NL80211_ATTR_FRAME = 51
+NL80211_ATTR_FRAME_MATCH = 91
+NL80211_ATTR_FRAME_TYPE = 101
+NL80211_ATTR_FREQ_FIXED = 60
NL80211_ATTR_FREQ_RANGE_END = 3
NL80211_ATTR_FREQ_RANGE_MAX_BW = 4
NL80211_ATTR_FREQ_RANGE_START = 2
NL80211_ATTR_FTM_RESPONDER = 270
NL80211_ATTR_HANDLE_DFS = 191
+NL80211_ATTR_HE_BSS_COLOR = 283
+NL80211_ATTR_HE_OBSS_PD = 279
NL80211_ATTR_HIDDEN_SSID = 126
+NL80211_ATTR_HT_CAPABILITY = 31
+NL80211_ATTR_HT_CAPABILITY_MASK = 148
NL80211_ATTR_IE = 42
NL80211_ATTR_IE_ASSOC_RESP = 128
NL80211_ATTR_IE_PROBE_RESP = 127
-NL80211_ATTR_IE_RIC = 178
NL80211_ATTR_IFINDEX = 3
NL80211_ATTR_IFNAME = 4
NL80211_ATTR_IFTYPE = 5
NL80211_ATTR_INACTIVITY_TIMEOUT = 150
NL80211_ATTR_KEY = 80
+NL80211_ATTR_KEYS = 81
NL80211_ATTR_KEY_CIPHER = 9
NL80211_ATTR_KEY_DATA = 7
NL80211_ATTR_KEY_DEFAULT = 11
@@ -54,9 +110,13 @@ NL80211_ATTR_KEY_IDX = 8
NL80211_ATTR_KEY_SEQ = 10
NL80211_ATTR_KEY_TYPE = 55
NL80211_ATTR_LOCAL_MESH_POWER_MODE = 164
+NL80211_ATTR_LOCAL_STATE_CHANGE = 95
NL80211_ATTR_MAC = 6
NL80211_ATTR_MAC_ADDRS = 166
+NL80211_ATTR_MAC_HINT = 200
+NL80211_ATTR_MAX_CRIT_PROT_DURATION = 180
NL80211_ATTR_MCAST_RATE = 107
+NL80211_ATTR_MDID = 177
NL80211_ATTR_MEASUREMENT_DURATION = 235
NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 236
NL80211_ATTR_MESH_CONFIG = 35
@@ -64,22 +124,42 @@ NL80211_ATTR_MESH_ID = 24
NL80211_ATTR_MESH_PEER_AID = 237
NL80211_ATTR_MESH_SETUP = 112
NL80211_ATTR_MGMT_SUBTYPE = 41
+NL80211_ATTR_MNTR_FLAGS = 23
NL80211_ATTR_MPATH_NEXT_HOP = 26
+NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 244
+NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 232
+NL80211_ATTR_MU_MIMO_GROUP_DATA = 231
+NL80211_ATTR_NAN_FUNC = 240
+NL80211_ATTR_NAN_MASTER_PREF = 238
NL80211_ATTR_NETNS_FD = 219
+NL80211_ATTR_NOACK_MAP = 149
+NL80211_ATTR_OFFCHANNEL_TX_OK = 108
+NL80211_ATTR_OPER_CLASS = 214
NL80211_ATTR_OPMODE_NOTIF = 194
NL80211_ATTR_P2P_CTWINDOW = 162
NL80211_ATTR_P2P_OPPPS = 163
NL80211_ATTR_PBSS = 226
NL80211_ATTR_PEER_AID = 181
NL80211_ATTR_PID = 82
+NL80211_ATTR_PMK = 254
+NL80211_ATTR_PMKID = 85
+NL80211_ATTR_PMKR0_NAME = 258
+NL80211_ATTR_PMK_LIFETIME = 287
+NL80211_ATTR_PMK_REAUTH_THRESHOLD = 288
NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 5
NL80211_ATTR_POWER_RULE_MAX_EIRP = 6
+NL80211_ATTR_PREV_BSSID = 79
NL80211_ATTR_PRIVACY = 70
NL80211_ATTR_PROBE_RESP = 145
+NL80211_ATTR_PS_STATE = 93
+NL80211_ATTR_QOS_MAP = 199
NL80211_ATTR_REASON_CODE = 54
NL80211_ATTR_REG_ALPHA2 = 33
NL80211_ATTR_REG_RULES = 34
NL80211_ATTR_REG_RULE_FLAGS = 1
+NL80211_ATTR_REKEY_DATA = 122
+NL80211_ATTR_SAE_PASSWORD = 277
+NL80211_ATTR_SCAN_FLAGS = 158
NL80211_ATTR_SCAN_FREQUENCIES = 44
NL80211_ATTR_SCAN_SSIDS = 45
NL80211_ATTR_SCAN_SUPP_RATES = 125
@@ -92,6 +172,7 @@ NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 247
NL80211_ATTR_SMPS_MODE = 213
NL80211_ATTR_SOCKET_OWNER = 204
NL80211_ATTR_SSID = 52
+NL80211_ATTR_STATUS_CODE = 72
NL80211_ATTR_STA_AID = 16
NL80211_ATTR_STA_CAPABILITY = 171
NL80211_ATTR_STA_EXT_CAPABILITY = 172
@@ -108,22 +189,44 @@ NL80211_ATTR_STA_TX_POWER = 276
NL80211_ATTR_STA_TX_POWER_SETTING = 275
NL80211_ATTR_STA_VLAN = 20
NL80211_ATTR_STA_WME = 129
+NL80211_ATTR_TDLS_ACTION = 136
+NL80211_ATTR_TDLS_DIALOG_TOKEN = 137
+NL80211_ATTR_TDLS_INITIATOR = 207
+NL80211_ATTR_TDLS_OPERATION = 138
+NL80211_ATTR_TDLS_PEER_CAPABILITY = 203
+NL80211_ATTR_TESTDATA = 69
+NL80211_ATTR_TID_CONFIG = 285
+NL80211_ATTR_TSID = 210
NL80211_ATTR_TWT_RESPONDER = 278
NL80211_ATTR_TXQ_LIMIT = 266
NL80211_ATTR_TXQ_MEMORY_LIMIT = 267
NL80211_ATTR_TXQ_QUANTUM = 268
NL80211_ATTR_TX_NO_CCK_RATE = 135
NL80211_ATTR_TX_RATES = 90
+NL80211_ATTR_USER_PRIO = 211
NL80211_ATTR_USER_REG_HINT_TYPE = 154
+NL80211_ATTR_USE_MFP = 66
+NL80211_ATTR_USE_RRM = 208
+NL80211_ATTR_VENDOR_DATA = 197
+NL80211_ATTR_VENDOR_ID = 195
+NL80211_ATTR_VENDOR_SUBCMD = 196
+NL80211_ATTR_VHT_CAPABILITY = 157
+NL80211_ATTR_VHT_CAPABILITY_MASK = 176
NL80211_ATTR_VLAN_ID = 282
+NL80211_ATTR_WANT_1X_4WAY_HS = 257
NL80211_ATTR_WDEV = 153
NL80211_ATTR_WIPHY = 1
NL80211_ATTR_WIPHY_ANTENNA_RX = 106
NL80211_ATTR_WIPHY_ANTENNA_TX = 105
+NL80211_ATTR_WIPHY_CHANNEL_TYPE = 39
NL80211_ATTR_WIPHY_COVERAGE_CLASS = 89
NL80211_ATTR_WIPHY_DYN_ACK = 209
+NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 281
+NL80211_ATTR_WIPHY_EDMG_CHANNELS = 280
NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 63
NL80211_ATTR_WIPHY_FREQ = 38
+NL80211_ATTR_WIPHY_FREQ_HINT = 201
+NL80211_ATTR_WIPHY_FREQ_OFFSET = 290
NL80211_ATTR_WIPHY_NAME = 2
NL80211_ATTR_WIPHY_RETRY_LONG = 62
NL80211_ATTR_WIPHY_RETRY_SHORT = 61
@@ -131,6 +234,7 @@ NL80211_ATTR_WIPHY_RTS_THRESHOLD = 64
NL80211_ATTR_WIPHY_TXQ_PARAMS = 37
NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 98
NL80211_ATTR_WIPHY_TX_POWER_SETTING = 97
+NL80211_ATTR_WOWLAN_TRIGGERS = 117
NL80211_ATTR_WPA_VERSIONS = 75
NL80211_AUTHTYPE_FILS_PK = 7
NL80211_AUTHTYPE_FILS_SK = 5
@@ -141,47 +245,155 @@ NL80211_AUTHTYPE_OPEN_SYSTEM = 0
NL80211_AUTHTYPE_SAE = 4
NL80211_AUTHTYPE_SHARED_KEY = 1
NL80211_BAND_2GHZ = 0
+NL80211_BAND_2GHZ_BIT = 1
NL80211_BAND_5GHZ = 1
+NL80211_BAND_5GHZ_BIT = 2
NL80211_BAND_60GHZ = 2
+NL80211_BAND_60GHZ_BIT = 4
NL80211_BAND_6GHZ = 3
+NL80211_BAND_6GHZ_BIT = 8
+NL80211_BSS_SELECT_ATTR_BAND_PREF = 2
+NL80211_BSS_SELECT_ATTR_RSSI = 1
+NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 3
+NL80211_CHAN_HT20 = 1
+NL80211_CHAN_HT40MINUS = 2
+NL80211_CHAN_HT40PLUS = 3
+NL80211_CHAN_NO_HT = 0
+NL80211_CHAN_WIDTH_10 = 7
+NL80211_CHAN_WIDTH_160 = 5
+NL80211_CHAN_WIDTH_20 = 1
+NL80211_CHAN_WIDTH_20_NOHT = 0
+NL80211_CHAN_WIDTH_40 = 2
+NL80211_CHAN_WIDTH_5 = 6
+NL80211_CHAN_WIDTH_80 = 3
+NL80211_CHAN_WIDTH_80P80 = 4
+NL80211_CMD_ABORT_SCAN = 114
+NL80211_CMD_ADD_NAN_FUNCTION = 117
+NL80211_CMD_ADD_TX_TS = 105
+NL80211_CMD_ASSOCIATE = 38
+NL80211_CMD_AUTHENTICATE = 37
+NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 56
+NL80211_CMD_CHANGE_NAN_CONFIG = 119
+NL80211_CMD_CHANNEL_SWITCH = 102
+NL80211_CMD_CONNECT = 46
+NL80211_CMD_CONTROL_PORT_FRAME = 129
+NL80211_CMD_CRIT_PROTOCOL_START = 98
+NL80211_CMD_CRIT_PROTOCOL_STOP = 99
+NL80211_CMD_DEAUTHENTICATE = 39
NL80211_CMD_DEL_INTERFACE = 8
NL80211_CMD_DEL_KEY = 12
NL80211_CMD_DEL_MPATH = 24
+NL80211_CMD_DEL_NAN_FUNCTION = 118
+NL80211_CMD_DEL_PMK = 124
+NL80211_CMD_DEL_PMKSA = 53
NL80211_CMD_DEL_STATION = 20
+NL80211_CMD_DEL_TX_TS = 106
+NL80211_CMD_DISASSOCIATE = 40
+NL80211_CMD_DISCONNECT = 48
+NL80211_CMD_EXTERNAL_AUTH = 127
+NL80211_CMD_FLUSH_PMKSA = 54
+NL80211_CMD_FRAME = 59
+NL80211_CMD_FRAME_WAIT_CANCEL = 67
+NL80211_CMD_GET_COALESCE = 100
+NL80211_CMD_GET_FTM_RESPONDER_STATS = 130
NL80211_CMD_GET_INTERFACE = 5
NL80211_CMD_GET_KEY = 9
NL80211_CMD_GET_MESH_CONFIG = 28
NL80211_CMD_GET_MPATH = 21
NL80211_CMD_GET_MPP = 107
+NL80211_CMD_GET_POWER_SAVE = 62
+NL80211_CMD_GET_PROTOCOL_FEATURES = 95
NL80211_CMD_GET_REG = 31
NL80211_CMD_GET_SCAN = 32
NL80211_CMD_GET_STATION = 17
+NL80211_CMD_GET_SURVEY = 50
NL80211_CMD_GET_WIPHY = 1
+NL80211_CMD_GET_WOWLAN = 73
+NL80211_CMD_JOIN_IBSS = 43
NL80211_CMD_JOIN_MESH = 68
+NL80211_CMD_JOIN_OCB = 108
+NL80211_CMD_LEAVE_IBSS = 44
NL80211_CMD_LEAVE_MESH = 69
+NL80211_CMD_LEAVE_OCB = 109
NL80211_CMD_NEW_INTERFACE = 7
NL80211_CMD_NEW_KEY = 11
NL80211_CMD_NEW_MPATH = 23
NL80211_CMD_NEW_STATION = 19
+NL80211_CMD_NOTIFY_RADAR = 134
+NL80211_CMD_PEER_MEASUREMENT_START = 131
+NL80211_CMD_PROBE_CLIENT = 84
+NL80211_CMD_PROBE_MESH_LINK = 136
+NL80211_CMD_RADAR_DETECT = 94
+NL80211_CMD_REGISTER_BEACONS = 85
+NL80211_CMD_REGISTER_FRAME = 58
+NL80211_CMD_RELOAD_REGDB = 126
+NL80211_CMD_REMAIN_ON_CHANNEL = 55
NL80211_CMD_REQ_SET_REG = 27
NL80211_CMD_SET_BEACON = 14
NL80211_CMD_SET_BSS = 25
+NL80211_CMD_SET_CHANNEL = 65
+NL80211_CMD_SET_COALESCE = 101
+NL80211_CMD_SET_CQM = 63
NL80211_CMD_SET_INTERFACE = 6
NL80211_CMD_SET_KEY = 10
+NL80211_CMD_SET_MAC_ACL = 93
+NL80211_CMD_SET_MCAST_RATE = 92
NL80211_CMD_SET_MESH_CONFIG = 29
NL80211_CMD_SET_MPATH = 22
+NL80211_CMD_SET_MULTICAST_TO_UNICAST = 121
+NL80211_CMD_SET_NOACK_MAP = 87
+NL80211_CMD_SET_PMK = 123
+NL80211_CMD_SET_PMKSA = 52
+NL80211_CMD_SET_POWER_SAVE = 61
+NL80211_CMD_SET_QOS_MAP = 104
NL80211_CMD_SET_REG = 26
+NL80211_CMD_SET_REKEY_OFFLOAD = 79
NL80211_CMD_SET_STATION = 18
+NL80211_CMD_SET_TID_CONFIG = 137
+NL80211_CMD_SET_TX_BITRATE_MASK = 57
+NL80211_CMD_SET_WDS_PEER = 66
NL80211_CMD_SET_WIPHY = 2
NL80211_CMD_SET_WIPHY_NETNS = 49
+NL80211_CMD_SET_WOWLAN = 74
NL80211_CMD_START_AP = 15
+NL80211_CMD_START_NAN = 115
+NL80211_CMD_START_P2P_DEVICE = 89
NL80211_CMD_START_SCHED_SCAN = 75
NL80211_CMD_STOP_AP = 16
+NL80211_CMD_STOP_NAN = 116
+NL80211_CMD_STOP_P2P_DEVICE = 90
NL80211_CMD_STOP_SCHED_SCAN = 76
+NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 112
+NL80211_CMD_TDLS_CHANNEL_SWITCH = 111
+NL80211_CMD_TDLS_MGMT = 82
+NL80211_CMD_TDLS_OPER = 81
+NL80211_CMD_TESTMODE = 45
NL80211_CMD_TRIGGER_SCAN = 33
+NL80211_CMD_UNEXPECTED_FRAME = 83
+NL80211_CMD_UPDATE_CONNECT_PARAMS = 122
+NL80211_CMD_UPDATE_FT_IES = 96
+NL80211_CMD_UPDATE_OWE_INFO = 135
+NL80211_CMD_VENDOR = 103
+NL80211_COALESCE_CONDITION_MATCH = 0
+NL80211_COALESCE_CONDITION_NO_MATCH = 1
+NL80211_CQM_TXE_MAX_INTVL = 1800
+NL80211_CRIT_PROTO_APIPA = 3
+NL80211_CRIT_PROTO_DHCP = 1
+NL80211_CRIT_PROTO_EAPOL = 2
+NL80211_CRIT_PROTO_MAX_DURATION = 5000
+NL80211_CRIT_PROTO_UNSPEC = 0
+NL80211_EDMG_BW_CONFIG_MAX = 15
+NL80211_EDMG_BW_CONFIG_MIN = 4
+NL80211_EDMG_CHANNELS_MAX = 60
+NL80211_EDMG_CHANNELS_MIN = 1
NL80211_FTM_RESP_ATTR_CIVICLOC = 3
NL80211_FTM_RESP_ATTR_ENABLED = 1
NL80211_FTM_RESP_ATTR_LCI = 2
+NL80211_HE_BSS_COLOR_ATTR_COLOR = 1
+NL80211_HE_BSS_COLOR_ATTR_DISABLED = 2
+NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 3
+NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 2
+NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 1
NL80211_HIDDEN_SSID_NOT_IN_USE = 0
NL80211_HIDDEN_SSID_ZERO_CONTENTS = 2
NL80211_IFTYPE_ADHOC = 1
@@ -197,6 +409,10 @@ NL80211_IFTYPE_P2P_GO = 9
NL80211_IFTYPE_STATION = 2
NL80211_IFTYPE_UNSPECIFIED = 0
NL80211_IFTYPE_WDS = 5
+NL80211_KCK_EXT_LEN = 24
+NL80211_KCK_LEN = 16
+NL80211_KEK_EXT_LEN = 32
+NL80211_KEK_LEN = 16
NL80211_KEYTYPE_GROUP = 0
NL80211_KEYTYPE_PAIRWISE = 1
NL80211_KEYTYPE_PEERKEY = 2
@@ -212,6 +428,7 @@ NL80211_KEY_MODE = 9
NL80211_KEY_SEQ = 4
NL80211_KEY_SET_TX = 2
NL80211_KEY_TYPE = 7
+NL80211_MAX_NR_CIPHER_SUITES = 5
NL80211_MAX_SUPP_HT_RATES = 77
NL80211_MAX_SUPP_RATES = 32
NL80211_MESHCONF_AUTO_OPEN_PLINKS = 7
@@ -253,6 +470,89 @@ NL80211_MESH_SETUP_IE = 3
NL80211_MESH_SETUP_USERSPACE_AMPE = 5
NL80211_MESH_SETUP_USERSPACE_AUTH = 4
NL80211_MESH_SETUP_USERSPACE_MPM = 7
+NL80211_MFP_NO = 0
+NL80211_MFP_OPTIONAL = 2
+NL80211_MFP_REQUIRED = 1
+NL80211_MIN_REMAIN_ON_CHANNEL_TIME = 10
+NL80211_MNTR_FLAG_ACTIVE = 6
+NL80211_MNTR_FLAG_CONTROL = 3
+NL80211_MNTR_FLAG_COOK_FRAMES = 5
+NL80211_MNTR_FLAG_FCSFAIL = 1
+NL80211_MNTR_FLAG_OTHER_BSS = 4
+NL80211_MNTR_FLAG_PLCPFAIL = 2
+NL80211_NAN_FUNC_CLOSE_RANGE = 9
+NL80211_NAN_FUNC_FOLLOW_UP = 2
+NL80211_NAN_FUNC_FOLLOW_UP_DEST = 8
+NL80211_NAN_FUNC_FOLLOW_UP_ID = 6
+NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 7
+NL80211_NAN_FUNC_INSTANCE_ID = 15
+NL80211_NAN_FUNC_PUBLISH = 0
+NL80211_NAN_FUNC_PUBLISH_BCAST = 4
+NL80211_NAN_FUNC_PUBLISH_TYPE = 3
+NL80211_NAN_FUNC_RX_MATCH_FILTER = 13
+NL80211_NAN_FUNC_SERVICE_ID = 2
+NL80211_NAN_FUNC_SERVICE_ID_LEN = 6
+NL80211_NAN_FUNC_SERVICE_INFO = 11
+NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN = 255
+NL80211_NAN_FUNC_SRF = 12
+NL80211_NAN_FUNC_SRF_MAX_LEN = 255
+NL80211_NAN_FUNC_SUBSCRIBE = 1
+NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 5
+NL80211_NAN_FUNC_TERM_REASON = 16
+NL80211_NAN_FUNC_TTL = 10
+NL80211_NAN_FUNC_TX_MATCH_FILTER = 14
+NL80211_NAN_FUNC_TYPE = 1
+NL80211_NAN_SRF_BF = 2
+NL80211_NAN_SRF_BF_IDX = 3
+NL80211_NAN_SRF_INCLUDE = 1
+NL80211_NAN_SRF_MAC_ADDRS = 4
+NL80211_PKTPAT_MASK = 1
+NL80211_PKTPAT_OFFSET = 3
+NL80211_PKTPAT_PATTERN = 2
+NL80211_PMSR_ATTR_PEERS = 5
+NL80211_PMSR_FTM_REQ_ATTR_ASAP = 1
+NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 5
+NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 4
+NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 6
+NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 11
+NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 3
+NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 7
+NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 2
+NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 9
+NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 8
+NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 10
+NL80211_PMSR_PEER_ATTR_ADDR = 1
+NL80211_PMSR_PEER_ATTR_CHAN = 2
+NL80211_PMSR_PEER_ATTR_REQ = 3
+NL80211_PMSR_REQ_ATTR_DATA = 1
+NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 2
+NL80211_PMSR_TYPE_FTM = 1
+NL80211_PREAMBLE_DMG = 3
+NL80211_PREAMBLE_HE = 4
+NL80211_PREAMBLE_HT = 1
+NL80211_PREAMBLE_LEGACY = 0
+NL80211_PREAMBLE_VHT = 2
+NL80211_PS_DISABLED = 0
+NL80211_PS_ENABLED = 1
+NL80211_REKEY_DATA_AKM = 4
+NL80211_REKEY_DATA_KCK = 2
+NL80211_REKEY_DATA_KEK = 1
+NL80211_REKEY_DATA_REPLAY_CTR = 3
+NL80211_REPLAY_CTR_LEN = 8
+NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 32
+NL80211_SCAN_FLAG_AP = 4
+NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 16
+NL80211_SCAN_FLAG_FLUSH = 2
+NL80211_SCAN_FLAG_FREQ_KHZ = 8192
+NL80211_SCAN_FLAG_HIGH_ACCURACY = 1024
+NL80211_SCAN_FLAG_LOW_POWER = 512
+NL80211_SCAN_FLAG_LOW_PRIORITY = 1
+NL80211_SCAN_FLAG_LOW_SPAN = 256
+NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 4096
+NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 128
+NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 64
+NL80211_SCAN_FLAG_RANDOM_ADDR = 8
+NL80211_SCAN_FLAG_RANDOM_SN = 2048
NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 5
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 2
NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 1
@@ -269,6 +569,24 @@ NL80211_STA_FLAG_TDLS_PEER = 6
NL80211_STA_FLAG_WME = 3
NL80211_STA_WME_MAX_SP = 2
NL80211_STA_WME_UAPSD_QUEUES = 1
+NL80211_TDLS_DISABLE_LINK = 4
+NL80211_TDLS_DISCOVERY_REQ = 0
+NL80211_TDLS_ENABLE_LINK = 3
+NL80211_TDLS_SETUP = 1
+NL80211_TDLS_TEARDOWN = 2
+NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 9
+NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 11
+NL80211_TID_CONFIG_ATTR_NOACK = 6
+NL80211_TID_CONFIG_ATTR_OVERRIDE = 4
+NL80211_TID_CONFIG_ATTR_PEER_SUPP = 3
+NL80211_TID_CONFIG_ATTR_RETRY_LONG = 8
+NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 7
+NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 10
+NL80211_TID_CONFIG_ATTR_TIDS = 5
+NL80211_TID_CONFIG_ATTR_TX_RATE = 13
+NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 12
+NL80211_TID_CONFIG_ATTR_VIF_SUPP = 2
+NL80211_TID_CONFIG_DISABLE = 1
NL80211_TXQ_ATTR_AIFS = 5
NL80211_TXQ_ATTR_CWMAX = 4
NL80211_TXQ_ATTR_CWMIN = 3
@@ -283,43 +601,47 @@ NL80211_TXRATE_LEGACY = 1
NL80211_TXRATE_VHT = 3
NL80211_TX_POWER_AUTOMATIC = 0
NL80211_TX_POWER_FIXED = 2
+NL80211_TX_RATE_AUTOMATIC = 0
+NL80211_TX_RATE_FIXED = 2
+NL80211_TX_RATE_LIMITED = 1
NL80211_USER_REG_HINT_CELL_BASE = 1
NL80211_USER_REG_HINT_INDOOR = 2
NL80211_USER_REG_HINT_USER = 0
NL80211_VHT_NSS_MAX = 8
+NL80211_WOWLAN_TCP_DATA_INTERVAL = 9
+NL80211_WOWLAN_TCP_DATA_PAYLOAD = 6
+NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 7
+NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 8
+NL80211_WOWLAN_TCP_DST_IPV4 = 2
+NL80211_WOWLAN_TCP_DST_MAC = 3
+NL80211_WOWLAN_TCP_DST_PORT = 5
+NL80211_WOWLAN_TCP_SRC_IPV4 = 1
+NL80211_WOWLAN_TCP_SRC_PORT = 4
+NL80211_WOWLAN_TCP_WAKE_MASK = 11
+NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 10
+NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 8
+NL80211_WOWLAN_TRIG_ANY = 1
+NL80211_WOWLAN_TRIG_DISCONNECT = 2
+NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 7
+NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 6
+NL80211_WOWLAN_TRIG_MAGIC_PKT = 3
+NL80211_WOWLAN_TRIG_NET_DETECT = 18
+NL80211_WOWLAN_TRIG_PKT_PATTERN = 4
+NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 9
+NL80211_WOWLAN_TRIG_TCP_CONNECTION = 14
NL80211_WPA_VERSION_1 = 1
NL80211_WPA_VERSION_2 = 2
NL80211_WPA_VERSION_3 = 4
NUM_NL80211_PLINK_ACTIONS_1 = 2
NUM_NL80211_PLINK_STATES_1 = 6
-WLAN_AKM_SUITE_8021X = 1027073
-WLAN_AKM_SUITE_8021X_SHA256 = 1027077
-WLAN_AKM_SUITE_8021X_SUITE_B = 1027083
-WLAN_AKM_SUITE_8021X_SUITE_B_192 = 1027084
-WLAN_AKM_SUITE_FILS_SHA256 = 1027086
-WLAN_AKM_SUITE_FILS_SHA384 = 1027087
-WLAN_AKM_SUITE_FT_8021X = 1027075
-WLAN_AKM_SUITE_FT_FILS_SHA256 = 1027088
-WLAN_AKM_SUITE_FT_FILS_SHA384 = 1027089
-WLAN_AKM_SUITE_FT_OVER_SAE = 1027081
-WLAN_AKM_SUITE_FT_PSK = 1027076
-WLAN_AKM_SUITE_PSK = 1027074
-WLAN_AKM_SUITE_PSK_SHA256 = 1027078
-WLAN_AKM_SUITE_SAE = 1027080
-WLAN_AKM_SUITE_TDLS = 1027079
-WLAN_CIPHER_SUITE_AES_CMAC = 1027078
-WLAN_CIPHER_SUITE_BIP_CMAC_256 = 1027085
-WLAN_CIPHER_SUITE_BIP_GMAC_128 = 1027083
-WLAN_CIPHER_SUITE_BIP_GMAC_256 = 1027084
-WLAN_CIPHER_SUITE_CCMP = 1027076
-WLAN_CIPHER_SUITE_CCMP_256 = 1027082
-WLAN_CIPHER_SUITE_GCMP = 1027080
-WLAN_CIPHER_SUITE_GCMP_256 = 1027081
-WLAN_CIPHER_SUITE_SMS4 = 1339905
-WLAN_CIPHER_SUITE_TKIP = 1027074
-WLAN_CIPHER_SUITE_USE_GROUP = 1027072
+SAE_PASSWORD_MAX_LEN = 128
+SIOCGIFINDEX = 35123
+VHT_MUMIMO_GROUPS_DATA_LEN = 24
WLAN_CIPHER_SUITE_WEP104 = 1027077
WLAN_CIPHER_SUITE_WEP40 = 1027073
WLAN_KEY_LEN_WEP104 = 13
WLAN_KEY_LEN_WEP40 = 5
+WLAN_PMKID_LEN = 16
+WLAN_PMK_NAME_LEN = 16
+__NR_ioctl = 54, amd64:16, arm64:riscv64:29, mips64le:5015
__NR_sendmsg = 211, 386:s390x:370, amd64:46, arm:296, mips64le:5045, ppc64le:341