MLD: Do not consider ignored BSSs for links when parsing RNR info
This avoids, e.g., trying to use a BSS that is rejected by mac80211 as a link, which could fail the connection as a whole. Note that this is not perfect. Ideally, the internal state would have a more context sensitive ignore flag so that one could still use a BSS as a link in some situation. Signed-off-by: Benjamin Berg <benjamin.berg@intel.com> Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
This commit is contained in:
parent
92d8d1d760
commit
e6eebd0d5c
1 changed files with 9 additions and 5 deletions
|
@ -18,6 +18,7 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "notify.h"
|
#include "notify.h"
|
||||||
#include "scan.h"
|
#include "scan.h"
|
||||||
|
#include "bssid_ignore.h"
|
||||||
#include "bss.h"
|
#include "bss.h"
|
||||||
|
|
||||||
static void wpa_bss_set_hessid(struct wpa_bss *bss)
|
static void wpa_bss_set_hessid(struct wpa_bss *bss)
|
||||||
|
@ -1535,13 +1536,16 @@ wpa_bss_parse_ml_rnr_ap_info(struct wpa_supplicant *wpa_s,
|
||||||
wpa_printf(MSG_DEBUG, "MLD: mld ID=%u, link ID=%u",
|
wpa_printf(MSG_DEBUG, "MLD: mld ID=%u, link ID=%u",
|
||||||
*mld_params, link_id);
|
*mld_params, link_id);
|
||||||
|
|
||||||
|
|
||||||
if (!neigh_bss) {
|
if (!neigh_bss) {
|
||||||
*missing |= BIT(link_id);
|
*missing |= BIT(link_id);
|
||||||
} else if (!ssid ||
|
} else if ((!ssid ||
|
||||||
(bss_params & (RNR_BSS_PARAM_SAME_SSID |
|
(bss_params & (RNR_BSS_PARAM_SAME_SSID |
|
||||||
RNR_BSS_PARAM_CO_LOCATED)) ||
|
RNR_BSS_PARAM_CO_LOCATED)) ||
|
||||||
wpa_scan_res_match(wpa_s, 0, neigh_bss,
|
wpa_scan_res_match(wpa_s, 0, neigh_bss,
|
||||||
ssid, 1, 0)) {
|
ssid, 1, 0)) &&
|
||||||
|
!wpa_bssid_ignore_is_listed(
|
||||||
|
wpa_s, neigh_bss->bssid)) {
|
||||||
struct mld_link *l;
|
struct mld_link *l;
|
||||||
|
|
||||||
l = &bss->mld_links[bss->n_mld_links];
|
l = &bss->mld_links[bss->n_mld_links];
|
||||||
|
|
Loading…
Reference in a new issue