svn commit: r210474 - stable/8/sys/net80211
Rui Paulo
rpaulo at FreeBSD.org
Sun Jul 25 17:40:49 UTC 2010
Author: rpaulo
Date: Sun Jul 25 17:40:48 2010
New Revision: 210474
URL: http://svn.freebsd.org/changeset/base/210474
Log:
MFC r209016, r209022:
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
Obtained from: DragonFly
Modified:
stable/8/sys/net80211/ieee80211_sta.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/net80211/ieee80211_sta.c
==============================================================================
--- stable/8/sys/net80211/ieee80211_sta.c Sun Jul 25 17:11:57 2010 (r210473)
+++ stable/8/sys/net80211/ieee80211_sta.c Sun Jul 25 17:40:48 2010 (r210474)
@@ -585,7 +585,7 @@ sta_input(struct ieee80211_node *ni, str
}
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)
More information about the svn-src-stable-8
mailing list