From 4442f89b49a898383c874def50a11aab97b03845 Mon Sep 17 00:00:00 2001 From: sam Date: Wed, 27 Dec 2006 18:46:18 +0000 Subject: 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 --- sys/net80211/ieee80211_var.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sys/net80211/ieee80211_var.h') diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index 00e38d4..5dbc3de 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -285,6 +285,8 @@ struct ieee80211com { void ieee80211_ifattach(struct ieee80211com *); void ieee80211_ifdetach(struct ieee80211com *); +const struct ieee80211_rateset *ieee80211_get_suprates(struct ieee80211com *, + const struct ieee80211_channel *); void ieee80211_announce(struct ieee80211com *); void ieee80211_media_init(struct ieee80211com *, ifm_change_cb_t, ifm_stat_cb_t); @@ -303,7 +305,7 @@ int ieee80211_chan2ieee(struct ieee80211com *, struct ieee80211_channel *); u_int ieee80211_ieee2mhz(u_int, u_int); int ieee80211_setmode(struct ieee80211com *, enum ieee80211_phymode); enum ieee80211_phymode ieee80211_chan2mode(struct ieee80211com *, - struct ieee80211_channel *); + const struct ieee80211_channel *); /* * Key update synchronization methods. XXX should not be visible. -- cgit v1.1