diff options
author | rpaulo <rpaulo@FreeBSD.org> | 2010-06-10 20:58:34 +0000 |
---|---|---|
committer | rpaulo <rpaulo@FreeBSD.org> | 2010-06-10 20:58:34 +0000 |
commit | 826b4773a0520f9b5bb292e2804d6c28fc65ea8a (patch) | |
tree | f89924c9eb941a3ce97021fd4680a9789ced08a0 /sys/net80211/ieee80211_sta.c | |
parent | 8d7910925e50805ebb58ef3731a82a7a32796be7 (diff) | |
download | FreeBSD-src-826b4773a0520f9b5bb292e2804d6c28fc65ea8a.zip FreeBSD-src-826b4773a0520f9b5bb292e2804d6c28fc65ea8a.tar.gz |
Some odd APs send beacons on the same TX queue as non-beacons. This breaks
802.11 duplicate detection. Upon looking at the standard, we discover
that 802.11-2007 says:
"A receiving QoS STA is also required to keep only the most recent
cache entry per<Address 2, TID, sequence-number> triple, storing only
the most recently received fragment number for that triple. A receiving
STA may omit tuples obtained from broadcast/multicast or ATIM frames
from the cache."
To fix this, we just disable duplicate detection for multicast/broadcast
frames.
Reviewed by: sam
MFC after: 4 weeks
Obtained from: DragonFly
Diffstat (limited to 'sys/net80211/ieee80211_sta.c')
-rw-r--r-- | sys/net80211/ieee80211_sta.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_sta.c b/sys/net80211/ieee80211_sta.c index adf8fb5..e6b9268 100644 --- a/sys/net80211/ieee80211_sta.c +++ b/sys/net80211/ieee80211_sta.c @@ -584,7 +584,7 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int nf) } IEEE80211_RSSI_LPF(ni->ni_avgrssi, rssi); ni->ni_noise = nf; - if (HAS_SEQ(type)) { + if (HAS_SEQ(type) !IEEE80211_IS_MULTICAST(wh->i_addr1)) { uint8_t tid = ieee80211_gettid(wh); if (IEEE80211_QOS_HAS_SEQ(wh) && TID_TO_WME_AC(tid) >= WME_AC_VI) |