]> git.ipfire.org Git - thirdparty/iw.git/commitdiff
update nl80211.h
authorJohannes Berg <johannes.berg@intel.com>
Fri, 11 Mar 2022 10:49:25 +0000 (11:49 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 11 Mar 2022 10:49:31 +0000 (11:49 +0100)
Change-Id: I7888629f670e585c3b04b7e9ca4ca63cbf5746cb
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
nl80211.h
util.c

index 61cab81e920de9aa7fef5640de75e5659fb498a7..0568a79097b8aaac2c0e04eb41a636e99d0618b4 100644 (file)
--- a/nl80211.h
+++ b/nl80211.h
@@ -11,7 +11,7 @@
  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
  * Copyright 2008 Colin McCabe <colin@cozybit.com>
  * Copyright 2015-2017 Intel Deutschland GmbH
- * Copyright (C) 2018-2021 Intel Corporation
+ * Copyright (C) 2018-2022 Intel Corporation
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  *     &NL80211_ATTR_FILS_NONCES - for FILS Nonces
  *             (STA Nonce 16 bytes followed by AP Nonce 16 bytes)
  *
+ * @NL80211_CMD_ASSOC_COMEBACK: notification about an association
+ *      temporal rejection with comeback. The event includes %NL80211_ATTR_MAC
+ *      to describe the BSSID address of the AP and %NL80211_ATTR_TIMEOUT to
+ *      specify the timeout value.
+ *
  * @NL80211_CMD_MAX: highest used command number
  * @__NL80211_CMD_AFTER_LAST: internal use
  */
@@ -1474,6 +1479,8 @@ enum nl80211_commands {
 
        NL80211_CMD_SET_FILS_AAD,
 
+       NL80211_CMD_ASSOC_COMEBACK,
+
        /* add new commands above here */
 
        /* used to define NL80211_CMD_MAX below */
@@ -2470,7 +2477,9 @@ enum nl80211_commands {
  *     space supports external authentication. This attribute shall be used
  *     with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver
  *     may offload authentication processing to user space if this capability
- *     is indicated in the respective requests from the user space.
+ *     is indicated in the respective requests from the user space. (This flag
+ *     attribute deprecated for %NL80211_CMD_START_AP, use
+ *     %NL80211_ATTR_AP_SETTINGS_FLAGS)
  *
  * @NL80211_ATTR_NSS: Station's New/updated  RX_NSS value notified using this
  *     u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
@@ -2639,6 +2648,21 @@ enum nl80211_commands {
  *     Mandatory parameter for the transmitting interface to enable MBSSID.
  *     Optional for the non-transmitting interfaces.
  *
+ * @NL80211_ATTR_RADAR_BACKGROUND: Configure dedicated offchannel chain
+ *     available for radar/CAC detection on some hw. This chain can't be used
+ *     to transmit or receive frames and it is bounded to a running wdev.
+ *     Background radar/CAC detection allows to avoid the CAC downtime
+ *     switching on a different channel during CAC detection on the selected
+ *     radar channel.
+ *
+ * @NL80211_ATTR_AP_SETTINGS_FLAGS: u32 attribute contains ap settings flags,
+ *     enumerated in &enum nl80211_ap_settings_flags. This attribute shall be
+ *     used with %NL80211_CMD_START_AP request.
+ *
+ * @NL80211_ATTR_EHT_CAPABILITY: EHT Capability information element (from
+ *     association request when used with NL80211_CMD_NEW_STATION). Can be set
+ *     only if %NL80211_STA_FLAG_WME is set.
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3145,6 +3169,12 @@ enum nl80211_attrs {
        NL80211_ATTR_MBSSID_CONFIG,
        NL80211_ATTR_MBSSID_ELEMS,
 
+       NL80211_ATTR_RADAR_BACKGROUND,
+
+       NL80211_ATTR_AP_SETTINGS_FLAGS,
+
+       NL80211_ATTR_EHT_CAPABILITY,
+
        /* add attributes here, update the policy in nl80211.c */
 
        __NL80211_ATTR_AFTER_LAST,
@@ -3200,6 +3230,8 @@ enum nl80211_attrs {
 #define NL80211_HE_MAX_CAPABILITY_LEN           54
 #define NL80211_MAX_NR_CIPHER_SUITES           5
 #define NL80211_MAX_NR_AKM_SUITES              2
+#define NL80211_EHT_MIN_CAPABILITY_LEN          13
+#define NL80211_EHT_MAX_CAPABILITY_LEN          51
 
 #define NL80211_MIN_REMAIN_ON_CHANNEL_TIME     10
 
@@ -3227,7 +3259,7 @@ enum nl80211_attrs {
  *     and therefore can't be created in the normal ways, use the
  *     %NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE
  *     commands to create and destroy one
- * @NL80211_IF_TYPE_OCB: Outside Context of a BSS
+ * @NL80211_IFTYPE_OCB: Outside Context of a BSS
  *     This mode corresponds to the MIB variable dot11OCBActivated=true
  * @NL80211_IFTYPE_NAN: NAN device interface type (not a netdev)
  * @NL80211_IFTYPE_MAX: highest interface type number currently defined
@@ -3368,6 +3400,56 @@ enum nl80211_he_ru_alloc {
        NL80211_RATE_INFO_HE_RU_ALLOC_2x996,
 };
 
+/**
+ * enum nl80211_eht_gi - EHT guard interval
+ * @NL80211_RATE_INFO_EHT_GI_0_8: 0.8 usec
+ * @NL80211_RATE_INFO_EHT_GI_1_6: 1.6 usec
+ * @NL80211_RATE_INFO_EHT_GI_3_2: 3.2 usec
+ */
+enum nl80211_eht_gi {
+       NL80211_RATE_INFO_EHT_GI_0_8,
+       NL80211_RATE_INFO_EHT_GI_1_6,
+       NL80211_RATE_INFO_EHT_GI_3_2,
+};
+
+/**
+ * enum nl80211_eht_ru_alloc - EHT RU allocation values
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_26: 26-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_52: 52-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_52P26: 52+26-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_106: 106-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_106P26: 106+26 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_242: 242-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_484: 484-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_484P242: 484+242 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_996: 996-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_996P484: 996+484 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242: 996+484+242 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_2x996: 2x996-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484: 2x996+484 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_3x996: 3x996-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484: 3x996+484 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_4x996: 4x996-tone RU allocation
+ */
+enum nl80211_eht_ru_alloc {
+       NL80211_RATE_INFO_EHT_RU_ALLOC_26,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_52,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_52P26,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_106,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_106P26,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_242,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_484,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_484P242,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_996,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_996P484,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_2x996,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_3x996,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484,
+       NL80211_RATE_INFO_EHT_RU_ALLOC_4x996,
+};
+
 /**
  * enum nl80211_rate_info - bitrate information
  *
@@ -3407,6 +3489,13 @@ enum nl80211_he_ru_alloc {
  * @NL80211_RATE_INFO_HE_DCM: HE DCM value (u8, 0/1)
  * @NL80211_RATE_INFO_RU_ALLOC: HE RU allocation, if not present then
  *     non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc)
+ * @NL80211_RATE_INFO_320_MHZ_WIDTH: 320 MHz bitrate
+ * @NL80211_RATE_INFO_EHT_MCS: EHT MCS index (u8, 0-15)
+ * @NL80211_RATE_INFO_EHT_NSS: EHT NSS value (u8, 1-8)
+ * @NL80211_RATE_INFO_EHT_GI: EHT guard interval identifier
+ *     (u8, see &enum nl80211_eht_gi)
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC: EHT RU allocation, if not present then
+ *     non-OFDMA was used (u8, see &enum nl80211_eht_ru_alloc)
  * @__NL80211_RATE_INFO_AFTER_LAST: internal use
  */
 enum nl80211_rate_info {
@@ -3428,6 +3517,11 @@ enum nl80211_rate_info {
        NL80211_RATE_INFO_HE_GI,
        NL80211_RATE_INFO_HE_DCM,
        NL80211_RATE_INFO_HE_RU_ALLOC,
+       NL80211_RATE_INFO_320_MHZ_WIDTH,
+       NL80211_RATE_INFO_EHT_MCS,
+       NL80211_RATE_INFO_EHT_NSS,
+       NL80211_RATE_INFO_EHT_GI,
+       NL80211_RATE_INFO_EHT_RU_ALLOC,
 
        /* keep last */
        __NL80211_RATE_INFO_AFTER_LAST,
@@ -3738,13 +3832,20 @@ enum nl80211_mpath_info {
  *     capabilities IE
  * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
  *     defined in HE capabilities IE
- * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
- *     defined
  * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
  *     given for all 6 GHz band channels
  * @NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS: vendor element capabilities that are
  *     advertised on this band/for this iftype (binary)
+ * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC: EHT MAC capabilities as in EHT
+ *     capabilities element
+ * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY: EHT PHY capabilities as in EHT
+ *     capabilities element
+ * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET: EHT supported NSS/MCS as in EHT
+ *     capabilities element
+ * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE: EHT PPE thresholds information as
+ *     defined in EHT capabilities element
  * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
+ * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band attribute currently defined
  */
 enum nl80211_band_iftype_attr {
        __NL80211_BAND_IFTYPE_ATTR_INVALID,
@@ -3756,6 +3857,10 @@ enum nl80211_band_iftype_attr {
        NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
        NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
        NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
+       NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC,
+       NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY,
+       NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET,
+       NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE,
 
        /* keep last */
        __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
@@ -3900,6 +4005,10 @@ enum nl80211_wmm_rule {
  *     on this channel in current regulatory domain.
  * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed
  *     on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_NO_320MHZ: any 320 MHz channel using this channel
+ *     as the primary or any of the secondary channels isn't possible
+ * @NL80211_FREQUENCY_ATTR_NO_EHT: EHT operation is not allowed on this channel
+ *     in current regulatory domain.
  * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
  *     currently defined
  * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -3936,6 +4045,8 @@ enum nl80211_frequency_attr {
        NL80211_FREQUENCY_ATTR_4MHZ,
        NL80211_FREQUENCY_ATTR_8MHZ,
        NL80211_FREQUENCY_ATTR_16MHZ,
+       NL80211_FREQUENCY_ATTR_NO_320MHZ,
+       NL80211_FREQUENCY_ATTR_NO_EHT,
 
        /* keep last */
        __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4134,6 +4245,7 @@ enum nl80211_sched_scan_match_attr {
  * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
  * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
  * @NL80211_RRF_NO_HE: HE operation not allowed
+ * @NL80211_RRF_NO_320MHZ: 320MHz operation not allowed
  */
 enum nl80211_reg_rule_flags {
        NL80211_RRF_NO_OFDM             = 1<<0,
@@ -4152,6 +4264,7 @@ enum nl80211_reg_rule_flags {
        NL80211_RRF_NO_80MHZ            = 1<<15,
        NL80211_RRF_NO_160MHZ           = 1<<16,
        NL80211_RRF_NO_HE               = 1<<17,
+       NL80211_RRF_NO_320MHZ           = 1<<18,
 };
 
 #define NL80211_RRF_PASSIVE_SCAN       NL80211_RRF_NO_IR
@@ -4649,6 +4762,8 @@ enum nl80211_key_mode {
  * @NL80211_CHAN_WIDTH_4: 4 MHz OFDM channel
  * @NL80211_CHAN_WIDTH_8: 8 MHz OFDM channel
  * @NL80211_CHAN_WIDTH_16: 16 MHz OFDM channel
+ * @NL80211_CHAN_WIDTH_320: 320 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
+ *     attribute must be provided as well
  */
 enum nl80211_chan_width {
        NL80211_CHAN_WIDTH_20_NOHT,
@@ -4664,6 +4779,7 @@ enum nl80211_chan_width {
        NL80211_CHAN_WIDTH_4,
        NL80211_CHAN_WIDTH_8,
        NL80211_CHAN_WIDTH_16,
+       NL80211_CHAN_WIDTH_320,
 };
 
 /**
@@ -5555,7 +5671,7 @@ enum nl80211_iface_limit_attrs {
  *     => allows 8 of AP/GO that can have BI gcd >= min gcd
  *
  *     numbers = [ #{STA} <= 2 ], channels = 2, max = 2
- *     => allows two STAs on different channels
+ *     => allows two STAs on the same or on different channels
  *
  *     numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4
  *     => allows a STA plus three P2P interfaces
@@ -5600,7 +5716,7 @@ enum nl80211_if_combination_attrs {
  * @NL80211_PLINK_ESTAB: mesh peer link is established
  * @NL80211_PLINK_HOLDING: mesh peer link is being closed or cancelled
  * @NL80211_PLINK_BLOCKED: all frames transmitted from this mesh
- *     plink are discarded
+ *     plink are discarded, except for authentication frames
  * @NUM_NL80211_PLINK_STATES: number of peer link states
  * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states
  */
@@ -5737,13 +5853,15 @@ enum nl80211_tdls_operation {
        NL80211_TDLS_DISABLE_LINK,
 };
 
-/*
+/**
  * enum nl80211_ap_sme_features - device-integrated AP features
- * Reserved for future use, no bits are defined in
- * NL80211_ATTR_DEVICE_AP_SME yet.
+ * @NL80211_AP_SME_SA_QUERY_OFFLOAD: SA Query procedures offloaded to driver
+ *     when user space indicates support for SA Query procedures offload during
+ *     "start ap" with %NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT.
+ */
 enum nl80211_ap_sme_features {
+       NL80211_AP_SME_SA_QUERY_OFFLOAD         = 1 << 0,
 };
- */
 
 /**
  * enum nl80211_feature_flags - device/driver features
@@ -6051,6 +6169,9 @@ enum nl80211_feature_flags {
  *     frames. Userspace has to share FILS AAD details to the driver by using
  *     @NL80211_CMD_SET_FILS_AAD.
  *
+ * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
+ *     detection.
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -6117,6 +6238,7 @@ enum nl80211_ext_feature_index {
        NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
        NL80211_EXT_FEATURE_BSS_COLOR,
        NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
+       NL80211_EXT_FEATURE_RADAR_BACKGROUND,
 
        /* add new features before the definition below */
        NUM_NL80211_EXT_FEATURES,
@@ -7462,4 +7584,20 @@ enum nl80211_mbssid_config_attributes {
        NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
 };
 
+/**
+ * enum nl80211_ap_settings_flags - AP settings flags
+ *
+ * @NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT: AP supports external
+ *     authentication.
+ * @NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT: Userspace supports SA Query
+ *     procedures offload to driver. If driver advertises
+ *     %NL80211_AP_SME_SA_QUERY_OFFLOAD in AP SME features, userspace shall
+ *     ignore SA Query procedures and validations when this flag is set by
+ *     userspace.
+ */
+enum nl80211_ap_settings_flags {
+       NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT       = 1 << 0,
+       NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT    = 1 << 1,
+};
+
 #endif /* __LINUX_NL80211_H */
diff --git a/util.c b/util.c
index bcf76a0024561752ed414a87d5e1c75c6e0c6990..ceb0dc06630069880b9d13948bee3982502cf211 100644 (file)
--- a/util.c
+++ b/util.c
@@ -515,6 +515,7 @@ static int parse_freqs(struct chandef *chandef, int argc, char **argv,
        case NL80211_CHAN_WIDTH_4:
        case NL80211_CHAN_WIDTH_8:
        case NL80211_CHAN_WIDTH_16:
+       case NL80211_CHAN_WIDTH_320:
                /* can't happen yet */
                break;
        }