forked from luck/tmp_suning_uos_patched
mac80211: Accept broadcast probe responses on 6GHz band
An AP that operates on 6GHz may respond with a broadcast probe response. Don't ignore such frames. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Link: https://lore.kernel.org/r/20200131111300.891737-14-luca@coelho.fi Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
f46209b9ff
commit
85b27ef734
|
@ -3683,13 +3683,28 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,
|
|||
struct ieee80211_mgmt *mgmt = (void *)skb->data;
|
||||
struct ieee80211_if_managed *ifmgd;
|
||||
struct ieee80211_rx_status *rx_status = (void *) skb->cb;
|
||||
struct ieee80211_channel *channel;
|
||||
size_t baselen, len = skb->len;
|
||||
|
||||
ifmgd = &sdata->u.mgd;
|
||||
|
||||
sdata_assert_lock(sdata);
|
||||
|
||||
if (!ether_addr_equal(mgmt->da, sdata->vif.addr))
|
||||
/*
|
||||
* According to Draft P802.11ax D6.0 clause 26.17.2.3.2:
|
||||
* "If a 6 GHz AP receives a Probe Request frame and responds with
|
||||
* a Probe Response frame [..], the Address 1 field of the Probe
|
||||
* Response frame shall be set to the broadcast address [..]"
|
||||
* So, on 6GHz band we should also accept broadcast responses.
|
||||
*/
|
||||
channel = ieee80211_get_channel(sdata->local->hw.wiphy,
|
||||
rx_status->freq);
|
||||
if (!channel)
|
||||
return;
|
||||
|
||||
if (!ether_addr_equal(mgmt->da, sdata->vif.addr) &&
|
||||
(channel->band != NL80211_BAND_6GHZ ||
|
||||
!is_broadcast_ether_addr(mgmt->da)))
|
||||
return; /* ignore ProbeResp to foreign address */
|
||||
|
||||
baselen = (u8 *) mgmt->u.probe_resp.variable - (u8 *) mgmt;
|
||||
|
|
Loading…
Reference in New Issue
Block a user