diff options
author | Sara Sharon <sara.sharon@intel.com> | 2019-01-16 19:22:56 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2019-02-08 15:56:37 +0300 |
commit | 78ac51f81532c1e361a31ac112c1fea470ea9036 (patch) | |
tree | 902a6460da1d4ee980bba2220151b931b520a6a9 /net/mac80211/scan.c | |
parent | 0cd01efb03396c5368b1a32eed0ccb2aa453bdc8 (diff) | |
download | linux-78ac51f81532c1e361a31ac112c1fea470ea9036.tar.xz |
mac80211: support multi-bssid
Add support for multi-bssid.
This includes:
- Parsing multi-bssid element
- Overriding DTIM values
- Taking into account in various places the inner BSSID instead of
transmitter BSSID
- Save aside some multi-bssid properties needed by drivers
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r-- | net/mac80211/scan.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c index 20211cbc63f4..0cf066700623 100644 --- a/net/mac80211/scan.c +++ b/net/mac80211/scan.c @@ -144,8 +144,8 @@ ieee80211_bss_info_update(struct ieee80211_local *local, struct ieee80211_channel *channel) { bool beacon = ieee80211_is_beacon(mgmt->frame_control); - struct cfg80211_bss *cbss; - struct ieee80211_bss *bss; + struct cfg80211_bss *cbss, *non_tx_cbss; + struct ieee80211_bss *bss, *non_tx_bss; struct cfg80211_inform_bss bss_meta = { .boottime_ns = rx_status->boottime_ns, }; @@ -212,6 +212,13 @@ ieee80211_bss_info_update(struct ieee80211_local *local, bss = (void *)cbss->priv; ieee80211_update_bss_from_elems(local, bss, &elems, rx_status, beacon); + list_for_each_entry(non_tx_cbss, &cbss->nontrans_list, nontrans_list) { + non_tx_bss = (void *)non_tx_cbss->priv; + + ieee80211_update_bss_from_elems(local, non_tx_bss, &elems, + rx_status, beacon); + } + return bss; } |