summaryrefslogtreecommitdiffstats
path: root/sys/net80211
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2010-06-10 20:58:34 +0000
committerrpaulo <rpaulo@FreeBSD.org>2010-06-10 20:58:34 +0000
commit826b4773a0520f9b5bb292e2804d6c28fc65ea8a (patch)
treef89924c9eb941a3ce97021fd4680a9789ced08a0 /sys/net80211
parent8d7910925e50805ebb58ef3731a82a7a32796be7 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/net80211/ieee80211_sta.c2
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)
OpenPOWER on IntegriCloud