diff options
author | sam <sam@FreeBSD.org> | 2006-12-27 18:46:18 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2006-12-27 18:46:18 +0000 |
commit | 4442f89b49a898383c874def50a11aab97b03845 (patch) | |
tree | 8bd925a7f6c33cd28325df02b1a6153b8b091d2d /sys/net80211/ieee80211_node.c | |
parent | 03269f3b4c923667476d52b5c6c3711ae678d017 (diff) | |
download | FreeBSD-src-4442f89b49a898383c874def50a11aab97b03845.zip FreeBSD-src-4442f89b49a898383c874def50a11aab97b03845.tar.gz |
First cut at half/quarter-rate 11a channel support (e.g. for use
in the Public Safety Band):
o add channel flags to identify half/quarter-rate operation
o add rate sets (need to check spec on 4Mb/s in 1/4 rate)
o add if_media definitions for new rates
o split net80211 channel setup out into ieee80211_chan_init
o fixup ieee80211_mhz2ieee and ieee80211_ieee2mhz to understand half/quarter
rate channels: note we temporarily use a nonstandard/hack numbering that
avoids overlap with 2.4G channels because we don't (yet) have enough
state to identify and/or map overlapping channel sets
o fixup ieee80211_ifmedia_init so it can be called post attach and will
recalculate the channel list and associated state; this enables changing
channel-related state like the regulatory domain after attach (will be
needed for 802.11d support too)
o add ieee80211_get_suprates to return a reference to the supported rate
set for a given channel
o add 3, 4.5, and 27 MB/s tx rates to rate <-> media conversion routines
o const-poison channel arg to ieee80211_chan2mode
Diffstat (limited to 'sys/net80211/ieee80211_node.c')
-rw-r--r-- | sys/net80211/ieee80211_node.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c index d9c88c9..700d4b0 100644 --- a/sys/net80211/ieee80211_node.c +++ b/sys/net80211/ieee80211_node.c @@ -230,7 +230,7 @@ ieee80211_set_chan(struct ieee80211com *ic, if (chan == IEEE80211_CHAN_ANYC) /* XXX while scanning */ chan = ic->ic_curchan; ni->ni_chan = chan; - ni->ni_rates = ic->ic_sup_rates[ieee80211_chan2mode(ic, chan)]; + ni->ni_rates = *ieee80211_get_suprates(ic, chan); } /* @@ -344,8 +344,7 @@ ieee80211_next_scan(struct ieee80211com *ic) * XXX drivers should do this as needed, * XXX for now maintain compatibility */ - ic->ic_bss->ni_rates = - ic->ic_sup_rates[ieee80211_chan2mode(ic, chan)]; + ic->ic_bss->ni_rates = *ieee80211_get_suprates(ic, chan); ieee80211_new_state(ic, IEEE80211_S_SCAN, -1); return 1; } |