--- a/nl80211.h +++ b/nl80211.h @@ -11,7 +11,7 @@ * Copyright 2008 Jouni Malinen * Copyright 2008 Colin McCabe * Copyright 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2021 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 @@ -301,29 +301,6 @@ */ /** - * DOC: FILS shared key crypto offload - * - * This feature is applicable to drivers running in AP mode. - * - * FILS shared key crypto offload can be advertised by drivers by setting - * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD flag. The drivers that support - * FILS shared key crypto offload should be able to encrypt and decrypt - * association frames for FILS shared key authentication as per IEEE 802.11ai. - * With this capability, for FILS key derivation, drivers depend on userspace. - * - * After FILS key derivation, userspace shares the FILS AAD details with the - * driver and the driver stores the same to use in decryption of association - * request and in encryption of association response. The below parameters - * should be given to the driver in %NL80211_CMD_SET_FILS_AAD. - * %NL80211_ATTR_MAC - STA MAC address, used for storing FILS AAD per STA - * %NL80211_ATTR_FILS_KEK - Used for encryption or decryption - * %NL80211_ATTR_FILS_NONCES - Used for encryption or decryption - * (STA Nonce 16 bytes followed by AP Nonce 16 bytes) - * - * Once the association is done, the driver cleans the FILS AAD data. - */ - -/** * enum nl80211_commands - supported nl80211 commands * * @NL80211_CMD_UNSPEC: unspecified command to catch errors @@ -1226,17 +1203,6 @@ * @NL80211_CMD_COLOR_CHANGE_COMPLETED: Notify userland that the color change * has completed * - * @NL80211_CMD_SET_FILS_AAD: Set FILS AAD data to the driver using - - * &NL80211_ATTR_MAC - for STA MAC address - * &NL80211_ATTR_FILS_KEK - for KEK - * &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 */ @@ -1477,10 +1443,6 @@ enum nl80211_commands { NL80211_CMD_COLOR_CHANGE_ABORTED, NL80211_CMD_COLOR_CHANGE_COMPLETED, - NL80211_CMD_SET_FILS_AAD, - - NL80211_CMD_ASSOC_COMEBACK, - /* add new commands above here */ /* used to define NL80211_CMD_MAX below */ @@ -2477,9 +2439,7 @@ 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. (This flag - * attribute deprecated for %NL80211_CMD_START_AP, use - * %NL80211_ATTR_AP_SETTINGS_FLAGS) + * is indicated in the respective requests from the user space. * * @NL80211_ATTR_NSS: Station's New/updated RX_NSS value notified using this * u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED. @@ -2655,13 +2615,8 @@ enum nl80211_commands { * 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. + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce + * transmit power to stay within regulatory limits. u32, dBi. * * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined @@ -3171,11 +3126,7 @@ enum nl80211_attrs { NL80211_ATTR_RADAR_BACKGROUND, - NL80211_ATTR_AP_SETTINGS_FLAGS, - - NL80211_ATTR_EHT_CAPABILITY, - - NL80211_ATTR_DISABLE_EHT, + NL80211_ATTR_WIPHY_ANTENNA_GAIN, /* add attributes here, update the policy in nl80211.c */ @@ -3232,8 +3183,6 @@ 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 @@ -3261,7 +3210,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_IFTYPE_OCB: Outside Context of a BSS + * @NL80211_IF_TYPE_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 @@ -3403,56 +3352,6 @@ enum nl80211_he_ru_alloc { }; /** - * 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 * * These attribute types are used with %NL80211_STA_INFO_TXRATE @@ -3491,13 +3390,6 @@ enum nl80211_eht_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 { @@ -3519,11 +3411,6 @@ 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, @@ -3834,20 +3721,13 @@ 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, @@ -3859,10 +3739,6 @@ 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, @@ -4007,10 +3883,6 @@ 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 @@ -4047,8 +3919,6 @@ 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, @@ -4247,7 +4117,6 @@ 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, @@ -4266,7 +4135,6 @@ 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 @@ -4764,8 +4632,6 @@ 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, @@ -4781,7 +4647,6 @@ enum nl80211_chan_width { NL80211_CHAN_WIDTH_4, NL80211_CHAN_WIDTH_8, NL80211_CHAN_WIDTH_16, - NL80211_CHAN_WIDTH_320, }; /** @@ -5096,7 +4961,6 @@ enum nl80211_txrate_gi { * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz) * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz) * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs - * @NL80211_BAND_LC: light communication band (placeholder) * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace * since newer kernel versions may support more bands */ @@ -5106,7 +4970,6 @@ enum nl80211_band { NL80211_BAND_60GHZ, NL80211_BAND_6GHZ, NL80211_BAND_S1GHZ, - NL80211_BAND_LC, NUM_NL80211_BANDS, }; @@ -5673,7 +5536,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 the same or on different channels + * => allows two STAs on different channels * * numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4 * => allows a STA plus three P2P interfaces @@ -5718,7 +5581,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, except for authentication frames + * plink are discarded * @NUM_NL80211_PLINK_STATES: number of peer link states * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states */ @@ -5855,15 +5718,13 @@ enum nl80211_tdls_operation { NL80211_TDLS_DISABLE_LINK, }; -/** +/* * enum nl80211_ap_sme_features - device-integrated AP features - * @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. - */ + * Reserved for future use, no bits are defined in + * NL80211_ATTR_DEVICE_AP_SME yet. enum nl80211_ap_sme_features { - NL80211_AP_SME_SA_QUERY_OFFLOAD = 1 << 0, }; + */ /** * enum nl80211_feature_flags - device/driver features @@ -6166,11 +6027,6 @@ enum nl80211_feature_flags { * @NL80211_EXT_FEATURE_BSS_COLOR: The driver supports BSS color collision * detection and change announcemnts. * - * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD: Driver running in AP mode supports - * FILS encryption and decryption for (Re)Association Request and Response - * 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. * @@ -6239,7 +6095,6 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_SECURE_RTT, 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 */ @@ -7548,7 +7403,7 @@ enum nl80211_sar_specs_attrs { * @NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY: Used by the kernel * to advertise the maximum profile periodicity supported by the driver * if EMA is enabled. Driver should indicate EMA support to the userspace - * by setting wiphy->ema_max_profile_periodicity to + * by setting wiphy->mbssid_max_ema_profile_periodicity to * a non-zero value. * * @NL80211_MBSSID_CONFIG_ATTR_INDEX: Mandatory parameter to pass the index of @@ -7567,7 +7422,7 @@ enum nl80211_sar_specs_attrs { * * @NL80211_MBSSID_CONFIG_ATTR_EMA: Flag used to enable EMA AP feature. * Setting this flag is permitted only if the driver advertises EMA support - * by setting wiphy->ema_max_profile_periodicity to non-zero. + * by setting wiphy->mbssid_max_ema_profile_periodicity to non-zero. * * @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal * @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute @@ -7586,20 +7441,4 @@ 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 */ --- a/event.c +++ b/event.c @@ -1292,9 +1292,6 @@ static int print_event(struct nl_msg *ms case NL80211_CMD_CH_SWITCH_NOTIFY: parse_ch_switch_notify(tb, gnlh->cmd); break; - case NL80211_CMD_ASSOC_COMEBACK: /* 147 */ - parse_assoc_comeback(tb, gnlh->cmd); - break; default: printf("unknown event %d (%s)\n", gnlh->cmd, command_name(gnlh->cmd)); --- a/info.c +++ b/info.c @@ -164,7 +164,6 @@ static void ext_feat_print(enum nl80211_ ext_feat_case(PROT_RANGE_NEGO_AND_MEASURE, "support for MFP in range measurement negotiation/procedure"); ext_feat_case(BSS_COLOR, "BSS coloring support"); - ext_feat_case(FILS_CRYPTO_OFFLOAD, "FILS crypto offload"); ext_feat_case(RADAR_BACKGROUND, "Radar background support"); } } --- a/interface.c +++ b/interface.c @@ -362,8 +362,6 @@ char *channel_width_name(enum nl80211_ch return "5 MHz"; case NL80211_CHAN_WIDTH_10: return "10 MHz"; - case NL80211_CHAN_WIDTH_320: - return "320 MHz"; default: return "unknown"; } --- a/util.c +++ b/util.c @@ -508,7 +508,6 @@ static int parse_freqs(struct chandef *c case NL80211_CHAN_WIDTH_40: case NL80211_CHAN_WIDTH_80: case NL80211_CHAN_WIDTH_160: - case NL80211_CHAN_WIDTH_320: need_cf1 = true; break; case NL80211_CHAN_WIDTH_1: @@ -626,10 +625,6 @@ int parse_freqchan(struct chandef *chand .width = NL80211_CHAN_WIDTH_160, .freq1_diff = 0, .chantype = -1 }, - { .name = "320MHz", - .width = NL80211_CHAN_WIDTH_320, - .freq1_diff = 0, - .chantype = -1 }, }; const struct chanmode *chanmode_selected = NULL; unsigned int freq; @@ -1599,48 +1594,6 @@ void print_eht_info(struct nlattr *nl_if print_iftype_line(tb[NL80211_BAND_IFTYPE_ATTR_IFTYPES]); printf("\n"); - if (tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC]) { - len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC]); - if (len > sizeof(mac_cap)) - len = sizeof(mac_cap); - memcpy(mac_cap, - nla_data(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC]), - len); - } - - if (tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY]) { - len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY]); - - if (len > sizeof(phy_cap)) - len = sizeof(phy_cap); - - memcpy(phy_cap, - nla_data(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY]), - len); - } - - if (tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET]) { - len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET]); - if (len > sizeof(mcs_set)) - len = sizeof(mcs_set); - memcpy(mcs_set, - nla_data(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET]), - len); - - // Assume that all parts of the MCS set are present - mcs_len = sizeof(mcs_set); - } - - if (tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE]) { - len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE]); - if (len > sizeof(ppet)) - len = sizeof(ppet); - memcpy(ppet, - nla_data(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE]), - len); - ppet_len = len; - } - if (tb[NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY]) { len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY]); --- a/reg.c +++ b/reg.c @@ -210,7 +210,6 @@ static int print_reg_handler(struct nl_m PARSE_FLAG(NL80211_RRF_NO_80MHZ, "NO-80MHZ"); PARSE_FLAG(NL80211_RRF_NO_160MHZ, "NO-160MHZ"); PARSE_FLAG(NL80211_RRF_NO_HE, "NO-HE"); - PARSE_FLAG(NL80211_RRF_NO_320MHZ, "NO-320MHZ"); /* Kernels that support NO_IR always turn on both flags */ if ((flags & NL80211_RRF_NO_IR) && (flags & __NL80211_RRF_NO_IBSS)) { --- a/station.c +++ b/station.c @@ -239,8 +239,6 @@ void parse_bitrate(struct nlattr *bitrat pos += snprintf(pos, buflen - (pos - buf), " 80P80MHz"); if (rinfo[NL80211_RATE_INFO_160_MHZ_WIDTH]) pos += snprintf(pos, buflen - (pos - buf), " 160MHz"); - if (rinfo[NL80211_RATE_INFO_320_MHZ_WIDTH]) - pos += snprintf(pos, buflen - (pos - buf), " 320MHz"); if (rinfo[NL80211_RATE_INFO_SHORT_GI]) pos += snprintf(pos, buflen - (pos - buf), " short GI"); if (rinfo[NL80211_RATE_INFO_VHT_NSS]) @@ -261,18 +259,6 @@ void parse_bitrate(struct nlattr *bitrat if (rinfo[NL80211_RATE_INFO_HE_RU_ALLOC]) pos += snprintf(pos, buflen - (pos - buf), " HE-RU-ALLOC %d", nla_get_u8(rinfo[NL80211_RATE_INFO_HE_RU_ALLOC])); - if (rinfo[NL80211_RATE_INFO_EHT_MCS]) - pos += snprintf(pos, buflen - (pos - buf), - " EHT-MCS %d", nla_get_u8(rinfo[NL80211_RATE_INFO_EHT_MCS])); - if (rinfo[NL80211_RATE_INFO_EHT_NSS]) - pos += snprintf(pos, buflen - (pos - buf), - " EHT-NSS %d", nla_get_u8(rinfo[NL80211_RATE_INFO_EHT_NSS])); - if (rinfo[NL80211_RATE_INFO_EHT_GI]) - pos += snprintf(pos, buflen - (pos - buf), - " EHT-GI %d", nla_get_u8(rinfo[NL80211_RATE_INFO_EHT_GI])); - if (rinfo[NL80211_RATE_INFO_EHT_RU_ALLOC]) - pos += snprintf(pos, buflen - (pos - buf), - " EHT-RU-ALLOC %d", nla_get_u8(rinfo[NL80211_RATE_INFO_EHT_RU_ALLOC])); } static char *get_chain_signal(struct nlattr *attr_list)