Revert "[wpa_supplicant] cumilative patch from commit 3a5d1a7e6"
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: I4a7a5b8ccb6b4822353bacc29649587cd5a3cb80
diff --git a/wpa_supplicant/rrm.c b/wpa_supplicant/rrm.c
index 7ce854b..8e51717 100644
--- a/wpa_supplicant/rrm.c
+++ b/wpa_supplicant/rrm.c
@@ -772,7 +772,6 @@
static int wpas_beacon_rep_add_frame_body(struct bitfield *eids,
- struct bitfield *ext_eids,
enum beacon_report_detail detail,
struct wpa_bss *bss, u8 *buf,
size_t buf_len, const u8 **ies_buf,
@@ -829,9 +828,7 @@
*/
while (ies_len > 2 && 2U + ies[1] <= ies_len && rem_len > 0) {
if (detail == BEACON_REPORT_DETAIL_ALL_FIELDS_AND_ELEMENTS ||
- (eids && bitfield_is_set(eids, ies[0])) ||
- (ext_eids && ies[0] == WLAN_EID_EXTENSION && ies[1] &&
- bitfield_is_set(ext_eids, ies[2]))) {
+ (eids && bitfield_is_set(eids, ies[0]))) {
u8 elen = ies[1];
if (2 + elen > buf + buf_len - pos ||
@@ -879,8 +876,7 @@
os_memcpy(buf, rep, sizeof(*rep));
- ret = wpas_beacon_rep_add_frame_body(data->eids, data->ext_eids,
- data->report_detail,
+ ret = wpas_beacon_rep_add_frame_body(data->eids, data->report_detail,
bss, buf + sizeof(*rep),
14 + *ie_len, ie, ie_len,
idx == 0);
@@ -936,8 +932,8 @@
struct rrm_measurement_beacon_report rep;
u8 idx = 0;
- if (!ether_addr_equal(data->bssid, broadcast_ether_addr) &&
- !ether_addr_equal(data->bssid, bss->bssid))
+ if (os_memcmp(data->bssid, broadcast_ether_addr, ETH_ALEN) != 0 &&
+ os_memcmp(data->bssid, bss->bssid, ETH_ALEN) != 0)
return 0;
if (data->ssid_len &&
@@ -1047,7 +1043,6 @@
struct beacon_rep_data *data,
u8 sid, u8 slen, const u8 *subelem)
{
- struct bitfield *eids;
u8 report_info, i;
switch (sid) {
@@ -1101,7 +1096,6 @@
break;
case WLAN_BEACON_REQUEST_SUBELEM_REQUEST:
- case WLAN_BEACON_REQUEST_SUBELEM_EXT_REQUEST:
if (data->report_detail !=
BEACON_REPORT_DETAIL_REQUESTED_ONLY) {
wpa_printf(MSG_DEBUG,
@@ -1117,46 +1111,20 @@
return -1;
}
- if (sid == WLAN_BEACON_REQUEST_SUBELEM_EXT_REQUEST) {
- if (slen < 2) {
- wpa_printf(MSG_DEBUG,
- "Invalid extended request");
- return -1;
- }
- if (subelem[0] != WLAN_EID_EXTENSION) {
- wpa_printf(MSG_DEBUG,
- "Skip unknown Requested Element ID %u in Extended Request subelement",
- subelem[0]);
- break;
- }
-
- /* Skip the Requested Element ID field */
- subelem++;
- slen--;
- }
-
- if ((sid == WLAN_BEACON_REQUEST_SUBELEM_REQUEST &&
- data->eids) ||
- (sid == WLAN_BEACON_REQUEST_SUBELEM_EXT_REQUEST &&
- data->ext_eids)) {
+ if (data->eids) {
wpa_printf(MSG_DEBUG,
- "Beacon Request: Request sub elements appear more than once");
+ "Beacon Request: Request subelement appears more than once");
return -1;
}
- eids = bitfield_alloc(255);
- if (!eids) {
+ data->eids = bitfield_alloc(255);
+ if (!data->eids) {
wpa_printf(MSG_DEBUG, "Failed to allocate EIDs bitmap");
return -1;
}
- if (sid == WLAN_BEACON_REQUEST_SUBELEM_REQUEST)
- data->eids = eids;
- else
- data->ext_eids = eids;
-
for (i = 0; i < slen; i++)
- bitfield_set(eids, subelem[i]);
+ bitfield_set(data->eids, subelem[i]);
break;
case WLAN_BEACON_REQUEST_SUBELEM_AP_CHANNEL:
/* Skip - it will be processed when freqs are added */
@@ -1512,29 +1480,6 @@
}
-static bool wpas_beacon_rep_scan_match(struct wpa_supplicant *wpa_s,
- const u8 *bssid)
-{
- u8 i;
-
- if (!wpa_s->valid_links)
- return ether_addr_equal(wpa_s->current_bss->bssid, bssid);
-
- for (i = 0; i < MAX_NUM_MLD_LINKS; i++) {
- if (!(wpa_s->valid_links & BIT(i)))
- continue;
-
- if (ether_addr_equal(wpa_s->links[i].bssid, bssid))
- return true;
- }
-
- wpa_printf(MSG_DEBUG, "RRM: MLD: no match for TSF BSSID=" MACSTR,
- MAC2STR(bssid));
-
- return false;
-}
-
-
int wpas_beacon_rep_scan_process(struct wpa_supplicant *wpa_s,
struct wpa_scan_results *scan_res,
struct scan_info *info)
@@ -1556,7 +1501,8 @@
MAC2STR(info->scan_start_tsf_bssid),
MAC2STR(wpa_s->current_bss->bssid));
if ((wpa_s->drv_rrm_flags & WPA_DRIVER_FLAGS_SUPPORT_BEACON_REPORT) &&
- !wpas_beacon_rep_scan_match(wpa_s, info->scan_start_tsf_bssid)) {
+ os_memcmp(info->scan_start_tsf_bssid, wpa_s->current_bss->bssid,
+ ETH_ALEN) != 0) {
wpa_printf(MSG_DEBUG,
"RRM: Ignore scan results due to mismatching TSF BSSID");
goto out;
@@ -1571,8 +1517,8 @@
if ((wpa_s->drv_rrm_flags &
WPA_DRIVER_FLAGS_SUPPORT_BEACON_REPORT) &&
- !wpas_beacon_rep_scan_match(wpa_s,
- scan_res->res[i]->tsf_bssid)) {
+ os_memcmp(scan_res->res[i]->tsf_bssid,
+ wpa_s->current_bss->bssid, ETH_ALEN) != 0) {
wpa_printf(MSG_DEBUG,
"RRM: Ignore scan result for " MACSTR
" due to mismatching TSF BSSID" MACSTR,
@@ -1641,7 +1587,6 @@
eloop_cancel_timeout(wpas_rrm_scan_timeout, wpa_s, NULL);
bitfield_free(data->eids);
- bitfield_free(data->ext_eids);
os_free(data->scan_params.freqs);
os_memset(data, 0, sizeof(*data));
}