Date: Thu, 31 Oct 2013 02:04:53 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r257412 - head/sys/net80211 Message-ID: <201310310204.r9V24r6U054147@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310310204.r9V24r6U054147>