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