Revert "[wpa_supplicant] cumilative patch from commit 4b755c967"
Revert submission 26533062-Supplicant_merge_June24
Reason for revert: https://b.corp.google.com/issues/349780869
Reverted changes: /q/submissionid:26533062-Supplicant_merge_June24
Change-Id: I6c9b7a4323fa7edde47617da6c1e0d8f6e6d5101
diff --git a/src/common/hw_features_common.c b/src/common/hw_features_common.c
index 2c47bf8..f45d2e9 100644
--- a/src/common/hw_features_common.c
+++ b/src/common/hw_features_common.c
@@ -381,75 +381,6 @@
}
-static void punct_update_legacy_bw_80(u8 bitmap, u8 pri_chan, u8 *seg0)
-{
- u8 first_chan = *seg0 - 6, sec_chan;
-
- switch (bitmap) {
- case 0x6:
- *seg0 = 0;
- return;
- case 0x8:
- case 0x4:
- case 0x2:
- case 0x1:
- case 0xC:
- case 0x3:
- if (pri_chan < *seg0)
- *seg0 -= 4;
- else
- *seg0 += 4;
- break;
- }
-
- if (pri_chan < *seg0)
- sec_chan = pri_chan + 4;
- else
- sec_chan = pri_chan - 4;
-
- if (bitmap & BIT((sec_chan - first_chan) / 4))
- *seg0 = 0;
-}
-
-
-static void punct_update_legacy_bw_160(u8 bitmap, u8 pri,
- enum oper_chan_width *width, u8 *seg0)
-{
- if (pri < *seg0) {
- *seg0 -= 8;
- if (bitmap & 0x0F) {
- *width = 0;
- punct_update_legacy_bw_80(bitmap & 0xF, pri, seg0);
- }
- } else {
- *seg0 += 8;
- if (bitmap & 0xF0) {
- *width = 0;
- punct_update_legacy_bw_80((bitmap & 0xF0) >> 4, pri,
- seg0);
- }
- }
-}
-
-
-void punct_update_legacy_bw(u16 bitmap, u8 pri, enum oper_chan_width *width,
- u8 *seg0, u8 *seg1)
-{
- if (*width == CONF_OPER_CHWIDTH_80MHZ && (bitmap & 0xF)) {
- *width = CONF_OPER_CHWIDTH_USE_HT;
- punct_update_legacy_bw_80(bitmap & 0xF, pri, seg0);
- }
-
- if (*width == CONF_OPER_CHWIDTH_160MHZ && (bitmap & 0xFF)) {
- *width = CONF_OPER_CHWIDTH_80MHZ;
- *seg1 = 0;
- punct_update_legacy_bw_160(bitmap & 0xFF, pri, width, seg0);
- }
-
- /* TODO: 320 MHz */
-}
-
-
int hostapd_set_freq_params(struct hostapd_freq_params *data,
enum hostapd_hw_mode mode,
int freq, int channel, int enable_edmg,
@@ -460,12 +391,8 @@
int center_segment0,
int center_segment1, u32 vht_caps,
struct he_capabilities *he_cap,
- struct eht_capabilities *eht_cap,
- u16 punct_bitmap)
+ struct eht_capabilities *eht_cap)
{
- enum oper_chan_width oper_chwidth_legacy;
- u8 seg0_legacy, seg1_legacy;
-
if (!he_cap || !he_cap->he_supported)
he_enabled = 0;
if (!eht_cap || !eht_cap->eht_supported)
@@ -651,14 +578,6 @@
break;
}
- oper_chwidth_legacy = oper_chwidth;
- seg0_legacy = center_segment0;
- seg1_legacy = center_segment1;
- if (punct_bitmap)
- punct_update_legacy_bw(punct_bitmap, channel,
- &oper_chwidth_legacy,
- &seg0_legacy, &seg1_legacy);
-
if (data->eht_enabled || data->he_enabled ||
data->vht_enabled) switch (oper_chwidth) {
case CONF_OPER_CHWIDTH_USE_HT:
@@ -683,8 +602,7 @@
/* fall through */
case CONF_OPER_CHWIDTH_80MHZ:
data->bandwidth = 80;
- if (!sec_channel_offset &&
- oper_chwidth_legacy != CONF_OPER_CHWIDTH_USE_HT) {
+ if (!sec_channel_offset) {
wpa_printf(MSG_ERROR,
"80/80+80 MHz: no second channel offset");
return -1;
@@ -742,8 +660,7 @@
"160 MHz: center segment 1 should not be set");
return -1;
}
- if (!sec_channel_offset &&
- oper_chwidth_legacy != CONF_OPER_CHWIDTH_USE_HT) {
+ if (!sec_channel_offset) {
wpa_printf(MSG_ERROR,
"160 MHz: second channel offset not set");
return -1;
diff --git a/src/common/hw_features_common.h b/src/common/hw_features_common.h
index e791c33..82e0282 100644
--- a/src/common/hw_features_common.h
+++ b/src/common/hw_features_common.h
@@ -35,8 +35,6 @@
int check_40mhz_2g4(struct hostapd_hw_modes *mode,
struct wpa_scan_results *scan_res, int pri_chan,
int sec_chan);
-void punct_update_legacy_bw(u16 bitmap, u8 pri_chan,
- enum oper_chan_width *width, u8 *seg0, u8 *seg1);
int hostapd_set_freq_params(struct hostapd_freq_params *data,
enum hostapd_hw_mode mode,
int freq, int channel, int edmg, u8 edmg_channel,
@@ -47,8 +45,7 @@
int center_segment0,
int center_segment1, u32 vht_caps,
struct he_capabilities *he_caps,
- struct eht_capabilities *eht_cap,
- u16 punct_bitmap);
+ struct eht_capabilities *eht_cap);
void set_disable_ht40(struct ieee80211_ht_capabilities *htcaps,
int disabled);
int ieee80211ac_cap_check(u32 hw, u32 conf);
diff --git a/src/common/ieee802_11_common.c b/src/common/ieee802_11_common.c
index 4de88d1..08ba45b 100644
--- a/src/common/ieee802_11_common.c
+++ b/src/common/ieee802_11_common.c
@@ -2050,13 +2050,6 @@
}
-bool is_80plus_op_class(u8 op_class)
-{
- /* Operating classes with "80+" behavior indication in Table E-4 */
- return op_class == 130 || op_class == 135;
-}
-
-
static int is_11b(u8 rate)
{
return rate == 0x02 || rate == 0x04 || rate == 0x0b || rate == 0x16
@@ -2424,17 +2417,9 @@
* channel center frequency index value, but it happens to be a 20 MHz
* channel and the channel number in the channel set would match the
* value in for the frequency center.
- *
- * Operating class value pair 128 and 130 is used to describe a 80+80
- * MHz channel on the 5 GHz band. 130 is identified with "80+", so this
- * is encoded with two octets 130 and 128. Similarly, operating class
- * value pair 133 and 135 is used to describe a 80+80 MHz channel on
- * the 6 GHz band (135 being the one with "80+" indication). All other
- * operating classes listed here are used as 1-octet values.
*/
{ HOSTAPD_MODE_IEEE80211A, 128, 36, 177, 4, BW80, P2P_SUPP },
{ HOSTAPD_MODE_IEEE80211A, 129, 36, 177, 4, BW160, P2P_SUPP },
- { HOSTAPD_MODE_IEEE80211A, 130, 36, 177, 4, BW80P80, P2P_SUPP },
{ HOSTAPD_MODE_IEEE80211A, 131, 1, 233, 4, BW20, P2P_SUPP },
{ HOSTAPD_MODE_IEEE80211A, 132, 1, 233, 8, BW40, P2P_SUPP },
{ HOSTAPD_MODE_IEEE80211A, 133, 1, 233, 16, BW80, P2P_SUPP },
@@ -2442,9 +2427,6 @@
{ HOSTAPD_MODE_IEEE80211A, 135, 1, 233, 16, BW80P80, NO_P2P_SUPP },
{ HOSTAPD_MODE_IEEE80211A, 136, 2, 2, 4, BW20, NO_P2P_SUPP },
- /* IEEE P802.11be/D5.0, Table E-4 (Global operating classes) */
- { HOSTAPD_MODE_IEEE80211A, 137, 31, 191, 32, BW320, NO_P2P_SUPP },
-
/*
* IEEE Std 802.11ad-2012 and P802.ay/D5.0 60 GHz operating classes.
* Class 180 has the legacy channels 1-6. Classes 181-183 include
@@ -2455,6 +2437,11 @@
{ HOSTAPD_MODE_IEEE80211AD, 182, 17, 20, 1, BW6480, P2P_SUPP },
{ HOSTAPD_MODE_IEEE80211AD, 183, 25, 27, 1, BW8640, P2P_SUPP },
+ /* Keep the operating class 130 as the last entry as a workaround for
+ * the OneHundredAndThirty Delimiter value used in the Supported
+ * Operating Classes element to indicate the end of the Operating
+ * Classes field. */
+ { HOSTAPD_MODE_IEEE80211A, 130, 36, 177, 4, BW80P80, P2P_SUPP },
{ -1, 0, 0, 0, 0, BW20, NO_P2P_SUPP }
};
@@ -2582,141 +2569,21 @@
}
-u16 check_multi_ap_ie(const u8 *multi_ap_ie, size_t multi_ap_len,
- struct multi_ap_params *multi_ap)
-{
- const struct element *elem;
- bool ext_present = false;
- unsigned int vlan_id;
-
- os_memset(multi_ap, 0, sizeof(*multi_ap));
-
- /* Default profile is 1, when Multi-AP profile subelement is not
- * present in the element. */
- multi_ap->profile = 1;
-
- for_each_element(elem, multi_ap_ie, multi_ap_len) {
- u8 id = elem->id, elen = elem->datalen;
- const u8 *pos = elem->data;
-
- switch (id) {
- case MULTI_AP_SUB_ELEM_TYPE:
- if (elen >= 1) {
- multi_ap->capability = *pos;
- ext_present = true;
- } else {
- wpa_printf(MSG_DEBUG,
- "Multi-AP invalid Multi-AP subelement");
- return WLAN_STATUS_INVALID_IE;
- }
- break;
- case MULTI_AP_PROFILE_SUB_ELEM_TYPE:
- if (elen < 1) {
- wpa_printf(MSG_DEBUG,
- "Multi-AP IE invalid Multi-AP profile subelement");
- return WLAN_STATUS_INVALID_IE;
- }
-
- multi_ap->profile = *pos;
- if (multi_ap->profile > MULTI_AP_PROFILE_MAX) {
- wpa_printf(MSG_DEBUG,
- "Multi-AP IE with invalid profile 0x%02x",
- multi_ap->profile);
- return WLAN_STATUS_ASSOC_DENIED_UNSPEC;
- }
- break;
- case MULTI_AP_VLAN_SUB_ELEM_TYPE:
- if (multi_ap->profile < MULTI_AP_PROFILE_2) {
- wpa_printf(MSG_DEBUG,
- "Multi-AP IE invalid profile to read VLAN IE");
- return WLAN_STATUS_INVALID_IE;
- }
- if (elen < 2) {
- wpa_printf(MSG_DEBUG,
- "Multi-AP IE invalid Multi-AP VLAN subelement");
- return WLAN_STATUS_INVALID_IE;
- }
-
- vlan_id = WPA_GET_LE16(pos);
- if (vlan_id < 1 || vlan_id > 4094) {
- wpa_printf(MSG_INFO,
- "Multi-AP IE invalid Multi-AP VLAN ID %d",
- vlan_id);
- return WLAN_STATUS_INVALID_IE;
- }
- multi_ap->vlanid = vlan_id;
- break;
- default:
- wpa_printf(MSG_DEBUG,
- "Ignore unknown subelement %u in Multi-AP IE",
- id);
- break;
- }
- }
-
- if (!for_each_element_completed(elem, multi_ap_ie, multi_ap_len)) {
- wpa_printf(MSG_DEBUG, "Multi AP IE parse failed @%d",
- (int) (multi_ap_ie + multi_ap_len -
- (const u8 *) elem));
- wpa_hexdump(MSG_MSGDUMP, "IEs", multi_ap_ie, multi_ap_len);
- }
-
- if (!ext_present) {
- wpa_printf(MSG_DEBUG,
- "Multi-AP element without Multi-AP Extension subelement");
- return WLAN_STATUS_INVALID_IE;
- }
-
- return WLAN_STATUS_SUCCESS;
-}
-
-
-size_t add_multi_ap_ie(u8 *buf, size_t len,
- const struct multi_ap_params *multi_ap)
+size_t add_multi_ap_ie(u8 *buf, size_t len, u8 value)
{
u8 *pos = buf;
- u8 *len_ptr;
- if (len < 6)
+ if (len < 9)
return 0;
*pos++ = WLAN_EID_VENDOR_SPECIFIC;
- len_ptr = pos; /* Length field to be set at the end */
- pos++;
+ *pos++ = 7; /* len */
WPA_PUT_BE24(pos, OUI_WFA);
pos += 3;
*pos++ = MULTI_AP_OUI_TYPE;
-
- /* Multi-AP Extension subelement */
- if (buf + len - pos < 3)
- return 0;
*pos++ = MULTI_AP_SUB_ELEM_TYPE;
*pos++ = 1; /* len */
- *pos++ = multi_ap->capability;
-
- /* Add Multi-AP Profile subelement only for R2 or newer configuration */
- if (multi_ap->profile >= MULTI_AP_PROFILE_2) {
- if (buf + len - pos < 3)
- return 0;
- *pos++ = MULTI_AP_PROFILE_SUB_ELEM_TYPE;
- *pos++ = 1;
- *pos++ = multi_ap->profile;
- }
-
- /* Add Multi-AP Default 802.1Q Setting subelement only for backhaul BSS
- */
- if (multi_ap->vlanid &&
- multi_ap->profile >= MULTI_AP_PROFILE_2 &&
- (multi_ap->capability & MULTI_AP_BACKHAUL_BSS)) {
- if (buf + len - pos < 4)
- return 0;
- *pos++ = MULTI_AP_VLAN_SUB_ELEM_TYPE;
- *pos++ = 2;
- WPA_PUT_LE16(pos, multi_ap->vlanid);
- pos += 2;
- }
-
- *len_ptr = pos - len_ptr - 1;
+ *pos++ = value;
return pos - buf;
}
@@ -2881,8 +2748,6 @@
case BW80P80:
case BW160:
return 160;
- case BW320:
- return 320;
case BW2160:
return 2160;
default:
diff --git a/src/common/ieee802_11_common.h b/src/common/ieee802_11_common.h
index 56eb0df..60260e5 100644
--- a/src/common/ieee802_11_common.h
+++ b/src/common/ieee802_11_common.h
@@ -30,12 +30,6 @@
u8 nof_ies;
};
-struct multi_ap_params {
- u8 capability;
- u8 profile;
- u16 vlanid;
-};
-
/* Parsed Information Elements */
struct ieee802_11_elems {
const u8 *ssid;
@@ -241,7 +235,6 @@
int ieee80211_is_dfs(int freq, const struct hostapd_hw_modes *modes,
u16 num_modes);
int is_dfs_global_op_class(u8 op_class);
-bool is_80plus_op_class(u8 op_class);
enum phy_type ieee80211_get_phy_type(int freq, int ht, int vht);
int supp_rates_11b_only(struct ieee802_11_elems *elems);
@@ -260,7 +253,7 @@
u8 max_chan;
u8 inc;
enum { BW20, BW40PLUS, BW40MINUS, BW40, BW80, BW2160, BW160, BW80P80,
- BW320, BW4320, BW6480, BW8640} bw;
+ BW4320, BW6480, BW8640} bw;
enum { P2P_SUPP, NO_P2P_SUPP } p2p;
};
@@ -273,10 +266,7 @@
size_t mbo_add_ie(u8 *buf, size_t len, const u8 *attr, size_t attr_len);
-u16 check_multi_ap_ie(const u8 *multi_ap_ie, size_t multi_ap_len,
- struct multi_ap_params *multi_ap);
-size_t add_multi_ap_ie(u8 *buf, size_t len,
- const struct multi_ap_params *multi_ap);
+size_t add_multi_ap_ie(u8 *buf, size_t len, u8 value);
struct country_op_class {
u8 country_op_class;
diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h
index 644bebd..619aa19 100644
--- a/src/common/ieee802_11_defs.h
+++ b/src/common/ieee802_11_defs.h
@@ -1453,20 +1453,11 @@
#define WFA_CAPA_OUI_TYPE 0x23
#define MULTI_AP_SUB_ELEM_TYPE 0x06
-#define MULTI_AP_PROFILE_SUB_ELEM_TYPE 0x07
-#define MULTI_AP_VLAN_SUB_ELEM_TYPE 0x08
-
-#define MULTI_AP_PROFILE2_BACKHAUL_STA_DISALLOWED BIT(2)
-#define MULTI_AP_PROFILE1_BACKHAUL_STA_DISALLOWED BIT(3)
#define MULTI_AP_TEAR_DOWN BIT(4)
#define MULTI_AP_FRONTHAUL_BSS BIT(5)
#define MULTI_AP_BACKHAUL_BSS BIT(6)
#define MULTI_AP_BACKHAUL_STA BIT(7)
-#define MULTI_AP_PROFILE_1 1
-#define MULTI_AP_PROFILE_2 2
-#define MULTI_AP_PROFILE_MAX 6
-
#define WMM_OUI_TYPE 2
#define WMM_OUI_SUBTYPE_INFORMATION_ELEMENT 0
#define WMM_OUI_SUBTYPE_PARAMETER_ELEMENT 1
diff --git a/src/common/ptksa_cache.c b/src/common/ptksa_cache.c
index 918a1cc..c00f288 100644
--- a/src/common/ptksa_cache.c
+++ b/src/common/ptksa_cache.c
@@ -19,8 +19,6 @@
unsigned int n_ptksa;
};
-#ifdef CONFIG_PTKSA_CACHE
-
static void ptksa_cache_set_expiration(struct ptksa_cache *ptksa);
@@ -344,44 +342,3 @@
return entry;
}
-
-#else /* CONFIG_PTKSA_CACHE */
-
-struct ptksa_cache * ptksa_cache_init(void)
-{
- return (struct ptksa_cache *) 1;
-}
-
-
-void ptksa_cache_deinit(struct ptksa_cache *ptksa)
-{
-}
-
-
-struct ptksa_cache_entry *
-ptksa_cache_get(struct ptksa_cache *ptksa, const u8 *addr, u32 cipher)
-{
- return NULL;
-}
-
-
-int ptksa_cache_list(struct ptksa_cache *ptksa, char *buf, size_t len)
-{
- return -1;
-}
-
-
-struct ptksa_cache_entry *
-ptksa_cache_add(struct ptksa_cache *ptksa, const u8 *own_addr, const u8 *addr,
- u32 cipher, u32 life_time, const struct wpa_ptk *ptk,
- void (*cb)(struct ptksa_cache_entry *e), void *ctx, u32 akmp)
-{
- return NULL;
-}
-
-
-void ptksa_cache_flush(struct ptksa_cache *ptksa, const u8 *addr, u32 cipher)
-{
-}
-
-#endif /* CONFIG_PTKSA_CACHE */
diff --git a/src/common/ptksa_cache.h b/src/common/ptksa_cache.h
index dd5e7db..6182215 100644
--- a/src/common/ptksa_cache.h
+++ b/src/common/ptksa_cache.h
@@ -29,6 +29,7 @@
u32 akmp;
};
+#ifdef CONFIG_PTKSA_CACHE
struct ptksa_cache;
@@ -47,4 +48,41 @@
void *ctx, u32 akmp);
void ptksa_cache_flush(struct ptksa_cache *ptksa, const u8 *addr, u32 cipher);
+#else /* CONFIG_PTKSA_CACHE */
+
+static inline struct ptksa_cache * ptksa_cache_init(void)
+{
+ return (struct ptksa_cache *) 1;
+}
+
+static inline void ptksa_cache_deinit(struct ptksa_cache *ptksa)
+{
+}
+
+static inline struct ptksa_cache_entry *
+ptksa_cache_get(struct ptksa_cache *ptksa, const u8 *addr, u32 cipher)
+{
+ return NULL;
+}
+
+static inline int ptksa_cache_list(struct ptksa_cache *ptksa,
+ char *buf, size_t len)
+{
+ return -1;
+}
+
+static inline struct ptksa_cache_entry *
+ptksa_cache_add(struct ptksa_cache *ptksa, const u8 *own_addr, const u8 *addr,
+ u32 cipher, u32 life_time, const struct wpa_ptk *ptk,
+ void (*cb)(struct ptksa_cache_entry *e), void *ctx, u32 akmp)
+{
+ return NULL;
+}
+
+static inline void ptksa_cache_flush(struct ptksa_cache *ptksa,
+ const u8 *addr, u32 cipher)
+{
+}
+
+#endif /* CONFIG_PTKSA_CACHE */
#endif /* PTKSA_CACHE_H */
diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h
index 2a4086b..a5bbc78 100644
--- a/src/common/qca-vendor.h
+++ b/src/common/qca-vendor.h
@@ -1048,15 +1048,6 @@
* to user space to disassociate with a peer based on the peer MAC address
* provided. Specify the peer MAC address in
* QCA_WLAN_VENDOR_ATTR_MAC_ADDR. For MLO, MLD MAC address is provided.
- *
- * @QCA_NL80211_VENDOR_SUBCMD_ADJUST_TX_POWER: This vendor command is used to
- * adjust transmit power. The attributes used with this subcommand are
- * defined in enum qca_wlan_vendor_attr_adjust_tx_power.
- *
- * @QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_COMPLETE: Event indication from the
- * driver to notify user application about the spectral scan completion.
- * The attributes used with this subcommand are defined in
- * enum qca_wlan_vendor_attr_spectral_scan_complete.
*/
enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
@@ -1281,8 +1272,6 @@
QCA_NL80211_VENDOR_SUBCMD_FW_PAGE_FAULT_REPORT = 238,
QCA_NL80211_VENDOR_SUBCMD_FLOW_POLICY = 239,
QCA_NL80211_VENDOR_SUBCMD_DISASSOC_PEER = 240,
- QCA_NL80211_VENDOR_SUBCMD_ADJUST_TX_POWER = 241,
- QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_COMPLETE = 242,
};
/* Compatibility defines for previously used subcmd names.
@@ -3372,14 +3361,6 @@
*/
QCA_WLAN_VENDOR_ATTR_CONFIG_QCA_PEER = 106,
- /* 8-bit unsigned value to configure BTM support.
- *
- * The attribute is applicable only for STA interface. Uses enum
- * qca_wlan_btm_support values. This configuration is not allowed in
- * connected state.
- */
- QCA_WLAN_VENDOR_ATTR_CONFIG_BTM_SUPPORT = 107,
-
/* keep last */
QCA_WLAN_VENDOR_ATTR_CONFIG_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_CONFIG_MAX =
@@ -7768,20 +7749,6 @@
QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CONFIG_FFT_RECAPTURE = 31,
/* Attribute used for padding for 64-bit alignment */
QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CONFIG_PAD = 32,
- /* Spectral data transport mode. u32 attribute. It uses values
- * defined in enum qca_wlan_vendor_spectral_data_transport_mode.
- * This is an optional attribute. If this attribute is not populated,
- * the driver should configure the default transport mode to netlink.
- */
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_DATA_TRANSPORT_MODE = 33,
- /* Spectral scan completion timeout. u32 attribute. This
- * attribute is used to configure a timeout value (in us). The
- * timeout value would be from the beginning of a spectral
- * scan. This is an optional attribute. If this attribute is
- * not populated, the driver would internally derive the
- * timeout value.
- */
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETION_TIMEOUT = 34,
QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CONFIG_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CONFIG_MAX =
@@ -12088,14 +12055,6 @@
* %QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_POWER_CAP_DBM or based on
* regulatory/SAE limits if %QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_POWER_CAP_DBM
* is not provided.
- *
- * @QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_IFINDEX: u32 attribute, optional.
- * This specifies the interface index (netdev) for which the corresponding
- * configurations are applied. If the interface index is not specified, the
- * configurations are applied based on
- * %QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_IFACES_BITMASK.
- * %QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_IFACES_BITMASK along with this
- * attribute shall have the matching nl80211_iftype.
*/
enum qca_wlan_vendor_attr_avoid_frequency_ext {
QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_INVALID = 0,
@@ -12104,7 +12063,6 @@
QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_END = 3,
QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_POWER_CAP_DBM = 4,
QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_IFACES_BITMASK = 5,
- QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_IFINDEX = 6,
QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_AVOID_FREQUENCY_MAX =
@@ -14305,11 +14263,7 @@
* @QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_BITMAP: binary, rate mask bitmap.
* A bit value of 1 represents rate is enabled and a value of 0
* represents rate is disabled.
- * For EHT targets,
- * b0-1 => NSS1, MCS 14-15
- * b2-15 => NSS1, MCS 0-13
- * b16-29 => NSS2, MCS 0-13
- * For HE targets, 14 bits correspond to one NSS setting.
+ * For HE targets, 12 bits correspond to one NSS setting.
* b0-13 => NSS1, MCS 0-13
* b14-27 => NSS2, MCS 0-13 and so on for other NSS.
* For VHT targets, 10 bits correspond to one NSS setting.
@@ -14319,18 +14273,12 @@
* b0-7 => NSS1, MCS 0-7
* b8-15 => NSS2, MCS 0-7 and so on for other NSS.
* For OFDM/CCK targets, 8 bits correspond to one NSS setting.
- *
- * @QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_LINK_ID: u8, used to specify the
- * MLO link ID of a link to be configured. Optional attribute.
- * No need of this attribute in non-MLO cases. If the attribute is
- * not provided, ratemask will be applied for setup link.
*/
enum qca_wlan_vendor_attr_ratemask_params {
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_LIST = 1,
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_TYPE = 2,
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_BITMAP = 3,
- QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_LINK_ID = 4,
/* keep last */
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_AFTER_LAST,
@@ -16846,200 +16794,4 @@
QCA_WLAN_VENDOR_ATTR_FW_PAGE_FAULT_REPORT_LAST - 1,
};
-/**
- * enum qca_wlan_btm_support: BTM support configuration
- *
- * @QCA_WLAN_BTM_SUPPORT_DEFAULT: Restore default BTM support policy. The driver
- * follows the BSS Transition bit in the Extended Capabilities element from the
- * connect request IEs with the default BTM support policy.
- *
- * @QCA_WLAN_BTM_SUPPORT_DISABLE: Disable BTM support for the subsequent
- * (re)association attempts. The driver shall restore the default BTM support
- * policy during the first disconnection after successful association. When this
- * configuration is enabled, the driver shall overwrite the BSS Transition bit
- * as zero in the Extended Capabilities element while sending (Re)Association
- * Request frames. Also, the driver shall drop the BTM frames from userspace and
- * the connected AP when this configuration is enabled.
- */
-enum qca_wlan_btm_support {
- QCA_WLAN_BTM_SUPPORT_DEFAULT = 0,
- QCA_WLAN_BTM_SUPPORT_DISABLE = 1,
-};
-
-/**
- * enum qca_wlan_vendor_data_rate_type - Represents the possible values for
- * attribute %QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_RATE_TYPE.
- *
- * @QCA_WLAN_VENDOR_DATA_RATE_TYPE_LEGACY: Data rate type is a legacy rate code
- * used in OFDM/CCK.
- *
- * @QCA_WLAN_VENDOR_DATA_RATE_TYPE_MCS: Data rate type is an MCS index.
- *
- */
-enum qca_wlan_vendor_data_rate_type {
- QCA_WLAN_VENDOR_DATA_RATE_TYPE_LEGACY = 0,
- QCA_WLAN_VENDOR_DATA_RATE_TYPE_MCS = 1,
-};
-
-/**
- * enum qca_wlan_vendor_attr_adjust_tx_power_rate - Definition
- * of data rate related attributes which is used inside nested attribute
- * %QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CHAIN_RATE_CONFIG.
- *
- * @QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_RATE_TYPE: u8 data rate type.
- * For this attribute, valid values are enumerated in enum
- * %qca_wlan_vendor_data_rate_type.
- *
- * @QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_RATE_VALUE: u8 value.
- * This attribute value is interpreted according to the value of attribute
- * %QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_RATE_TYPE. For legacy config
- * type, this attribute value is defined in the units of 0.5 Mbps.
- * For non legacy config type, this attribute carries the MCS index number.
- *
- * @QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_RATE_POWER_VALUE: u8 value in dBm.
- * Usually the target computes a final transmit power that is the maximum
- * power level that doesn't exceed the limits enforced by various sources
- * like chip-specific conformance test limits (CTL), Specific Absorption
- * Rate (SAR), Transmit Power Control (TPC), wiphy-specific limits, STA-specific
- * limits, channel avoidance limits, Automated Frequency Coordination (AFC),
- * and others. In some cases it may be desirable to use a power level that is
- * lower than the maximum power level allowed by all of these limits, so this
- * attribute provides an additional limit that can be used to reduce the
- * transmit power level.
- *
- */
-enum qca_wlan_vendor_attr_adjust_tx_power_rate {
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_RATE_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_RATE_TYPE = 1,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_RATE_VALUE = 2,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_RATE_POWER_VALUE = 3,
-
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CONFIG_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CONFIG_MAX =
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CONFIG_AFTER_LAST - 1,
-};
-
-/**
- * enum qca_wlan_vendor_attr_adjust_tx_power_chain_config - Definition
- * of chain related attributes which is used inside nested attribute
- * %QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_CHAIN_CONFIG.
- *
- * @QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CHAIN_INDEX: u8 value.
- * Represents a particular chain for which transmit power adjustment needed.
- *
- * @QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CHAIN_RATE_CONFIG: A nested
- * attribute containing data rate related information to adjust transmit
- * power. The attributes used inside this nested attributes are defined in
- * enum qca_wlan_vendor_attr_adjust_tx_power_rate.
- */
-enum qca_wlan_vendor_attr_adjust_tx_power_chain_config {
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CHAIN_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CHAIN_INDEX = 1,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CHAIN_RATE_CONFIG = 2,
-
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CHAIN_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CHAIN_MAX =
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_CHAIN_AFTER_LAST - 1,
-};
-
-/**
- * enum qca_wlan_vendor_attr_adjust_tx_power_band_config - Definition
- * of band related attributes which is used inside nested attribute
- * %QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_CONFIG.
- *
- * @QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_INDEX: u8 value to
- * indicate band for which configuration applies. Valid values are enumerated
- * in enum %nl80211_band.
- *
- * @QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_CHAIN_CONFIG: A nested
- * attribute containing per chain related information to adjust transmit
- * power. The attributes used inside this nested attribute are defined in
- * enum qca_wlan_vendor_attr_adjust_tx_power_chain_config.
- *
- */
-enum qca_wlan_vendor_attr_adjust_tx_power_band_config {
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_INDEX = 1,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_CHAIN_CONFIG = 2,
-
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_MAX =
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_AFTER_LAST - 1,
-};
-
-/**
- * enum qca_wlan_vendor_attr_adjust_tx_power - Definition of attributes
- * for %QCA_NL80211_VENDOR_SUBCMD_ADJUST_TX_POWER subcommand.
- *
- * @QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_CONFIG: A nested attribute
- * containing per band related information to adjust transmit power.
- * The attributes used inside this nested attributes are defined in
- * enum qca_wlan_vendor_attr_adjust_tx_power_band_config.
- */
-enum qca_wlan_vendor_attr_adjust_tx_power {
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_BAND_CONFIG = 1,
-
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_MAX =
- QCA_WLAN_VENDOR_ATTR_ADJUST_TX_POWER_AFTER_LAST - 1,
-};
-
-/**
- * enum qca_wlan_vendor_spectral_data_transport_mode - Attribute
- * values for QCA_WLAN_VENDOR_ATTR_SPECTRAL_DATA_TRANSPORT_MODE.
- *
- * @QCA_WLAN_VENDOR_SPECTRAL_DATA_TRANSPORT_NETLINK: Use netlink to
- * send spectral data to userspace applications.
- * @QCA_WLAN_VENDOR_SPECTRAL_DATA_TRANSPORT_RELAY: Use relay interface
- * to send spectral data to userspace applications.
- */
-enum qca_wlan_vendor_spectral_data_transport_mode {
- QCA_WLAN_VENDOR_SPECTRAL_DATA_TRANSPORT_NETLINK = 0,
- QCA_WLAN_VENDOR_SPECTRAL_DATA_TRANSPORT_RELAY = 1,
-};
-
-/* enum qca_wlan_vendor_spectral_scan_complete_status - Attribute
- * values for QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_STATUS to
- * indicate the completion status for a spectral scan.
- *
- * @QCA_WLAN_VENDOR_SPECTRAL_SCAN_COMPLETE_STATUS_SUCCESSFUL:
- * Indicates a successful completion of the scan.
- *
- * @QCA_WLAN_VENDOR_SPECTRAL_SCAN_COMPLETE_STATUS_TIMEOUT: Indicates
- * a timeout has occured while processing the spectral reports.
- */
-enum qca_wlan_vendor_spectral_scan_complete_status {
- QCA_WLAN_VENDOR_SPECTRAL_SCAN_COMPLETE_STATUS_SUCCESSFUL = 0,
- QCA_WLAN_VENDOR_SPECTRAL_SCAN_COMPLETE_STATUS_TIMEOUT = 1,
-};
-
-/* enum qca_wlan_vendor_attr_spectral_scan_complete - Definition of
- * attributes for @QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_COMPLETE
- * to indicate scan status and samples received from hardware.
- *
- * @QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_INVALID: Invalid attribute
- *
- * @QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_STATUS: u32 attribute.
- * Indicates completion status, either the scan is successful or a timeout
- * is issued by the driver.
- * See enum qca_wlan_vendor_spectral_scan_complete_status.
- *
- * @QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_RECEIVED_SAMPLES: u32
- * attribute. Number of spectral samples received after the scan has started.
- */
-enum qca_wlan_vendor_attr_spectral_scan_complete {
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_STATUS = 1,
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_RECEIVED_SAMPLES = 2,
-
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_MAX =
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_COMPLETE_AFTER_LAST - 1,
-};
-
#endif /* QCA_VENDOR_H */
diff --git a/src/common/wpa_common.c b/src/common/wpa_common.c
index 6ea3311..c82fd0e 100644
--- a/src/common/wpa_common.c
+++ b/src/common/wpa_common.c
@@ -1104,7 +1104,7 @@
link_id = pos[2] & 0x0f;
wpa_printf(MSG_DEBUG, "FT: MLO GTK (Link ID %u)",
link_id);
- if (link_id >= MAX_NUM_MLD_LINKS)
+ if (link_id >= MAX_NUM_MLO_LINKS)
break;
parse->valid_mlo_gtks |= BIT(link_id);
parse->mlo_gtk[link_id] = pos;
@@ -1119,7 +1119,7 @@
link_id = pos[2 + 6] & 0x0f;
wpa_printf(MSG_DEBUG, "FT: MLO IGTK (Link ID %u)",
link_id);
- if (link_id >= MAX_NUM_MLD_LINKS)
+ if (link_id >= MAX_NUM_MLO_LINKS)
break;
parse->valid_mlo_igtks |= BIT(link_id);
parse->mlo_igtk[link_id] = pos;
@@ -1134,7 +1134,7 @@
link_id = pos[2 + 6] & 0x0f;
wpa_printf(MSG_DEBUG, "FT: MLO BIGTK (Link ID %u)",
link_id);
- if (link_id >= MAX_NUM_MLD_LINKS)
+ if (link_id >= MAX_NUM_MLO_LINKS)
break;
parse->valid_mlo_bigtks |= BIT(link_id);
parse->mlo_bigtk[link_id] = pos;
@@ -1353,7 +1353,7 @@
/* TODO: This count should be done based on all _requested_,
* not _accepted_ links. */
- for (link_id = 0; link_id < MAX_NUM_MLD_LINKS; link_id++) {
+ for (link_id = 0; link_id < MAX_NUM_MLO_LINKS; link_id++) {
if (parse->mlo_gtk[link_id]) {
if (parse->rsn)
prot_ie_count--;
@@ -3551,7 +3551,7 @@
selector == RSN_KEY_DATA_MLO_GTK) {
link_id = (p[0] & RSN_MLO_GTK_KDE_PREFIX0_LINK_ID_MASK) >>
RSN_MLO_GTK_KDE_PREFIX0_LINK_ID_SHIFT;
- if (link_id >= MAX_NUM_MLD_LINKS)
+ if (link_id >= MAX_NUM_MLO_LINKS)
return 2;
ie->valid_mlo_gtks |= BIT(link_id);
@@ -3569,7 +3569,7 @@
selector == RSN_KEY_DATA_MLO_IGTK) {
link_id = (p[8] & RSN_MLO_IGTK_KDE_PREFIX8_LINK_ID_MASK) >>
RSN_MLO_IGTK_KDE_PREFIX8_LINK_ID_SHIFT;
- if (link_id >= MAX_NUM_MLD_LINKS)
+ if (link_id >= MAX_NUM_MLO_LINKS)
return 2;
ie->valid_mlo_igtks |= BIT(link_id);
@@ -3587,7 +3587,7 @@
selector == RSN_KEY_DATA_MLO_BIGTK) {
link_id = (p[8] & RSN_MLO_BIGTK_KDE_PREFIX8_LINK_ID_MASK) >>
RSN_MLO_BIGTK_KDE_PREFIX8_LINK_ID_SHIFT;
- if (link_id >= MAX_NUM_MLD_LINKS)
+ if (link_id >= MAX_NUM_MLO_LINKS)
return 2;
ie->valid_mlo_bigtks |= BIT(link_id);
@@ -3605,7 +3605,7 @@
selector == RSN_KEY_DATA_MLO_LINK) {
link_id = (p[0] & RSN_MLO_LINK_KDE_LI_LINK_ID_MASK) >>
RSN_MLO_LINK_KDE_LI_LINK_ID_SHIFT;
- if (link_id >= MAX_NUM_MLD_LINKS)
+ if (link_id >= MAX_NUM_MLO_LINKS)
return 2;
ie->valid_mlo_links |= BIT(link_id);
diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
index 01efeea..a2c7033 100644
--- a/src/common/wpa_common.h
+++ b/src/common/wpa_common.h
@@ -9,8 +9,6 @@
#ifndef WPA_COMMON_H
#define WPA_COMMON_H
-#include "common/defs.h"
-
/* IEEE 802.11i */
#define PMKID_LEN 16
#define PMK_LEN 32
@@ -559,6 +557,8 @@
const u8 *ie2, size_t ie2len);
int wpa_insert_pmkid(u8 *ies, size_t *ies_len, const u8 *pmkid, bool replace);
+#define MAX_NUM_MLO_LINKS 15
+
struct wpa_ft_ies {
const u8 *mdie;
size_t mdie_len;
@@ -596,14 +596,14 @@
const u8 *rsnxe;
size_t rsnxe_len;
u16 valid_mlo_gtks; /* bitmap of valid link GTK subelements */
- const u8 *mlo_gtk[MAX_NUM_MLD_LINKS];
- size_t mlo_gtk_len[MAX_NUM_MLD_LINKS];
+ const u8 *mlo_gtk[MAX_NUM_MLO_LINKS];
+ size_t mlo_gtk_len[MAX_NUM_MLO_LINKS];
u16 valid_mlo_igtks; /* bitmap of valid link IGTK subelements */
- const u8 *mlo_igtk[MAX_NUM_MLD_LINKS];
- size_t mlo_igtk_len[MAX_NUM_MLD_LINKS];
+ const u8 *mlo_igtk[MAX_NUM_MLO_LINKS];
+ size_t mlo_igtk_len[MAX_NUM_MLO_LINKS];
u16 valid_mlo_bigtks; /* bitmap of valid link BIGTK subelements */
- const u8 *mlo_bigtk[MAX_NUM_MLD_LINKS];
- size_t mlo_bigtk_len[MAX_NUM_MLD_LINKS];
+ const u8 *mlo_bigtk[MAX_NUM_MLO_LINKS];
+ size_t mlo_bigtk_len[MAX_NUM_MLO_LINKS];
struct wpabuf *fte_buf;
};
@@ -700,17 +700,17 @@
const u8 *wmm;
size_t wmm_len;
u16 valid_mlo_gtks; /* bitmap of valid link GTK KDEs */
- const u8 *mlo_gtk[MAX_NUM_MLD_LINKS];
- size_t mlo_gtk_len[MAX_NUM_MLD_LINKS];
+ const u8 *mlo_gtk[MAX_NUM_MLO_LINKS];
+ size_t mlo_gtk_len[MAX_NUM_MLO_LINKS];
u16 valid_mlo_igtks; /* bitmap of valid link IGTK KDEs */
- const u8 *mlo_igtk[MAX_NUM_MLD_LINKS];
- size_t mlo_igtk_len[MAX_NUM_MLD_LINKS];
+ const u8 *mlo_igtk[MAX_NUM_MLO_LINKS];
+ size_t mlo_igtk_len[MAX_NUM_MLO_LINKS];
u16 valid_mlo_bigtks; /* bitmap of valid link BIGTK KDEs */
- const u8 *mlo_bigtk[MAX_NUM_MLD_LINKS];
- size_t mlo_bigtk_len[MAX_NUM_MLD_LINKS];
+ const u8 *mlo_bigtk[MAX_NUM_MLO_LINKS];
+ size_t mlo_bigtk_len[MAX_NUM_MLO_LINKS];
u16 valid_mlo_links; /* bitmap of valid MLO link KDEs */
- const u8 *mlo_link[MAX_NUM_MLD_LINKS];
- size_t mlo_link_len[MAX_NUM_MLD_LINKS];
+ const u8 *mlo_link[MAX_NUM_MLO_LINKS];
+ size_t mlo_link_len[MAX_NUM_MLO_LINKS];
};
int wpa_parse_kde_ies(const u8 *buf, size_t len, struct wpa_eapol_ie_parse *ie);
diff --git a/src/common/wpa_ctrl.h b/src/common/wpa_ctrl.h
index f614250..c5bb9ab 100644
--- a/src/common/wpa_ctrl.h
+++ b/src/common/wpa_ctrl.h
@@ -413,9 +413,6 @@
/* parameters: <STA address> <dialog token> <report mode> <beacon report> */
#define BEACON_RESP_RX "BEACON-RESP-RX "
-/* parameters: <STA address> <dialog token> <link measurement report> */
-#define LINK_MSR_RESP_RX "LINK-MSR-RESP-RX "
-
/* PMKSA cache entry added; parameters: <BSSID> <network_id> */
#define PMKSA_CACHE_ADDED "PMKSA-CACHE-ADDED "
/* PMKSA cache entry removed; parameters: <BSSID> <network_id> */