svn commit: r257412 - head/sys/net80211

Adrian Chadd adrian at FreeBSD.org
Thu Oct 31 02:04:53 UTC 2013


Author: adrian
Date: Thu Oct 31 02:04:53 2013
New Revision: 257412
URL: http://svnweb.freebsd.org/changeset/base/257412

Log:
  Don't treat the node as an 11n node if 11n rates are disabled.
  
  For now, the AMRR code only knows about _either_ MCS or non-MCS rates.
  It doesn't know how to downgrade (ie, doing 11b CCK rates if MCS0 isn't
  reliable.)
  
  PR:		kern/183428

Modified:
  head/sys/net80211/ieee80211_amrr.c

Modified: head/sys/net80211/ieee80211_amrr.c
==============================================================================
--- head/sys/net80211/ieee80211_amrr.c	Thu Oct 31 02:03:30 2013	(r257411)
+++ head/sys/net80211/ieee80211_amrr.c	Thu Oct 31 02:04:53 2013	(r257412)
@@ -131,6 +131,12 @@ amrr_deinit(struct ieee80211vap *vap)
 	free(vap->iv_rs, M_80211_RATECTL);
 }
 
+/*
+ * Return whether 11n rates are possible.
+ *
+ * Some 11n devices may return HT information but no HT rates.
+ * Thus, we shouldn't treat them as an 11n node.
+ */
 static int
 amrr_node_is_11n(struct ieee80211_node *ni)
 {
@@ -139,6 +145,8 @@ amrr_node_is_11n(struct ieee80211_node *
 		return (0);
 	if (ni->ni_chan == IEEE80211_CHAN_ANYC)
 		return (0);
+	if (IEEE80211_IS_CHAN_HT(ni->ni_chan) && ni->ni_htrates.rs_nrates == 0)
+		return (0);
 	return (IEEE80211_IS_CHAN_HT(ni->ni_chan));
 }
 


More information about the svn-src-head mailing list