summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_node.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2009-01-29 23:11:18 +0000
committersam <sam@FreeBSD.org>2009-01-29 23:11:18 +0000
commit49cefc1300aa8e48d53ad9448df13a6e24eb27a0 (patch)
treed73017b63199bf1fa8f5c7ddaf5e7b4ce449c3e3 /sys/net80211/ieee80211_node.c
parent5fee012a8eac634a09959e77fe8a3e7d036e7aea (diff)
downloadFreeBSD-src-49cefc1300aa8e48d53ad9448df13a6e24eb27a0.zip
FreeBSD-src-49cefc1300aa8e48d53ad9448df13a6e24eb27a0.tar.gz
set ni_txparms for static turbo mode
Diffstat (limited to 'sys/net80211/ieee80211_node.c')
-rw-r--r--sys/net80211/ieee80211_node.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c
index 8aa9770..088dbbc 100644
--- a/sys/net80211/ieee80211_node.c
+++ b/sys/net80211/ieee80211_node.c
@@ -227,20 +227,25 @@ static void
node_setuptxparms(struct ieee80211_node *ni)
{
struct ieee80211vap *vap = ni->ni_vap;
+ enum ieee80211_phymode mode;
if (ni->ni_flags & IEEE80211_NODE_HT) {
if (IEEE80211_IS_CHAN_5GHZ(ni->ni_chan))
- ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11NA];
+ mode = IEEE80211_MODE_11NA;
else
- ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11NG];
+ mode = IEEE80211_MODE_11NG;
} else { /* legacy rate handling */
- if (IEEE80211_IS_CHAN_A(ni->ni_chan))
- ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11A];
+ /* NB: 108A/108G should be handled as 11a/11g respectively */
+ if (IEEE80211_IS_CHAN_ST(ni->ni_chan))
+ mode = IEEE80211_MODE_STURBO_A;
+ else if (IEEE80211_IS_CHAN_A(ni->ni_chan))
+ mode = IEEE80211_MODE_11A;
else if (ni->ni_flags & IEEE80211_NODE_ERP)
- ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11G];
+ mode = IEEE80211_MODE_11G;
else
- ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11B];
+ mode = IEEE80211_MODE_11B;
}
+ ni->ni_txparms = &vap->iv_txparms[mode];
}
/*
OpenPOWER on IntegriCloud