mac80211: reply to directed probes in IBSS
WFA certification and the WMM spec require that we always reply to unicast probe requests, so do that. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
05e051d8ae
Коммит
c269a20393
|
@ -664,12 +664,13 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
|
|||
}
|
||||
|
||||
static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata,
|
||||
struct ieee80211_mgmt *mgmt,
|
||||
size_t len)
|
||||
struct sk_buff *req)
|
||||
{
|
||||
struct ieee80211_rx_status *rx_status = IEEE80211_SKB_RXCB(req);
|
||||
struct ieee80211_mgmt *mgmt = (void *)req->data;
|
||||
struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
int tx_last_beacon;
|
||||
int tx_last_beacon, len = req->len;
|
||||
struct sk_buff *skb;
|
||||
struct ieee80211_mgmt *resp;
|
||||
u8 *pos, *end;
|
||||
|
@ -689,7 +690,7 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata,
|
|||
mgmt->bssid, tx_last_beacon);
|
||||
#endif /* CONFIG_MAC80211_IBSS_DEBUG */
|
||||
|
||||
if (!tx_last_beacon)
|
||||
if (!tx_last_beacon && !(rx_status->rx_flags & IEEE80211_RX_RA_MATCH))
|
||||
return;
|
||||
|
||||
if (memcmp(mgmt->bssid, ifibss->bssid, ETH_ALEN) != 0 &&
|
||||
|
@ -786,7 +787,7 @@ void ieee80211_ibss_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
|
|||
|
||||
switch (fc & IEEE80211_FCTL_STYPE) {
|
||||
case IEEE80211_STYPE_PROBE_REQ:
|
||||
ieee80211_rx_mgmt_probe_req(sdata, mgmt, skb->len);
|
||||
ieee80211_rx_mgmt_probe_req(sdata, skb);
|
||||
break;
|
||||
case IEEE80211_STYPE_PROBE_RESP:
|
||||
ieee80211_rx_mgmt_probe_resp(sdata, mgmt, skb->len,
|
||||
|
|
Загрузка…
Ссылка в новой задаче