wpa_supplicant core change to support 11b only mode
Detect 11b modes in association req/resp frames.
Bug: 163912712
Test: atest VtsHalWifiSupplicantV1_0TargetTest \
VtsHalWifiSupplicantV1_1TargetTest \
VtsHalWifiSupplicantV1_2TargetTest \
VtsHalWifiSupplicantV1_3TargetTest \
VtsHalWifiSupplicantV1_4TargetTest
Test: manual test with 11b only AP to confirm 11b mode is detected and
passed to throughput predictor correctly.
Change-Id: I259efa09edf67a46990b52de290ee66dff627b66
diff --git a/src/common/ieee802_11_common.c b/src/common/ieee802_11_common.c
index b158077..71baf9b 100644
--- a/src/common/ieee802_11_common.c
+++ b/src/common/ieee802_11_common.c
@@ -1411,7 +1411,8 @@
static int is_11b(u8 rate)
{
- return rate == 0x02 || rate == 0x04 || rate == 0x0b || rate == 0x16;
+ return rate == 0x02 || rate == 0x04 || rate == 0x0b || rate == 0x16
+ || rate == 0x82 || rate == 0x84 || rate == 0x8b || rate == 0x96;
}
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index e2cae4b..d08deb4 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -2621,6 +2621,8 @@
data->assoc_info.resp_ies_len,
&resp_elems, 0) != ParseFailed) {
wpa_s->connection_set = 1;
+ wpa_s->connection_11b_only = supp_rates_11b_only(&req_elems) ||
+ supp_rates_11b_only(&resp_elems);
wpa_s->connection_ht = req_elems.ht_capabilities &&
resp_elems.ht_capabilities;
/* Do not include subset of VHT on 2.4 GHz vendor
diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index 9a9ed8d..9f10ef9 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
@@ -779,6 +779,7 @@
unsigned int connection_max_nss_tx:4;
unsigned int connection_channel_bandwidth:5;
unsigned int disable_mbo_oce:1;
+ unsigned int connection_11b_only:1;
struct os_reltime last_mac_addr_change;
int last_mac_addr_style;