Date: Sat, 13 Nov 2004 23:42:07 GMT From: Sam Leffler <sam@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 65063 for review Message-ID: <200411132342.iADNg7Ne033510@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=65063 Change 65063 by sam@sam_ebb on 2004/11/13 23:41:07 Cleanup common definitions: add _ieee80211.h to hold intrinsic types and move some types around. This resolves various issues with the ioctl and radiotap support needing to duplicate definitions because it wasn't feasible to include ieee80211_var.h. Affected files ... .. //depot/projects/wifi/sys/net80211/_ieee80211.h#1 add .. //depot/projects/wifi/sys/net80211/ieee80211.h#3 edit .. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#8 edit .. //depot/projects/wifi/sys/net80211/ieee80211_node.h#10 edit .. //depot/projects/wifi/sys/net80211/ieee80211_var.h#10 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211.h#3 (text+ko) ==== @@ -609,14 +609,4 @@ #define IEEE80211_RTS_MIN 1 #define IEEE80211_RTS_MAX IEEE80211_MAX_LEN -enum { - IEEE80211_AUTH_NONE = 0, - IEEE80211_AUTH_OPEN = 1, /* open */ - IEEE80211_AUTH_SHARED = 2, /* shared-key */ - IEEE80211_AUTH_8021X = 3, /* 802.1x */ - IEEE80211_AUTH_AUTO = 4, /* auto-select/accept */ - /* NB: these are used only for ioctls */ - IEEE80211_AUTH_WPA = 5, /* WPA/RSN w/ 802.1x/PSK */ -}; - #endif /* _NET80211_IEEE80211_H_ */ ==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#8 (text+ko) ==== @@ -37,6 +37,7 @@ /* * IEEE 802.11 ioctls. */ +#include <net80211/_ieee80211.h> #include <net80211/ieee80211.h> #include <net80211/ieee80211_crypto.h> @@ -243,7 +244,7 @@ * scanning. */ struct ieee80211req_chanlist { - u_int8_t ic_channels[32]; /* 256 channels */ + u_int8_t ic_channels[IEEE80211_CHAN_BYTES]; }; /* @@ -251,10 +252,7 @@ */ struct ieee80211req_chaninfo { u_int ic_nchans; - struct ieee80211_chaninfo { - u_int16_t ic_freq; /* setting in Mhz */ - u_int16_t ic_flags; /* see below */ - } ic_chans[256]; + struct ieee80211_channel ic_chans[IEEE80211_CHAN_MAX]; }; /* @@ -292,7 +290,8 @@ u_int8_t isi_erp; /* ERP element */ u_int8_t isi_macaddr[IEEE80211_ADDR_LEN]; u_int8_t isi_nrates; - u_int8_t isi_rates[15]; /* negotiated rates */ + /* negotiated rates */ + u_int8_t isi_rates[IEEE80211_RATE_MAXSIZE]; u_int8_t isi_txrate; /* index to isi_rates[] */ u_int8_t isi_ie_len; /* IE length */ u_int16_t isi_associd; /* assoc response */ @@ -392,10 +391,6 @@ /* 43-44 available */ #define IEEE80211_IOC_STA_INFO 45 /* station/neighbor info */ -#ifndef IEEE80211_CHAN_ANY -#define IEEE80211_CHAN_ANY 0xffff /* token for ``any channel'' */ -#endif - /* * Scan result data returned for IEEE80211_IOC_SCAN_RESULTS. */ @@ -410,7 +405,7 @@ u_int8_t isr_erp; /* ERP element */ u_int8_t isr_bssid[IEEE80211_ADDR_LEN]; u_int8_t isr_nrates; - u_int8_t isr_rates[15]; /* XXX */ + u_int8_t isr_rates[IEEE80211_RATE_MAXSIZE]; u_int8_t isr_ssid_len; /* SSID length */ u_int8_t isr_ie_len; /* IE length */ u_int8_t isr_pad[5]; ==== //depot/projects/wifi/sys/net80211/ieee80211_node.h#10 (text+ko) ==== @@ -65,14 +65,6 @@ (((const u_int8_t *)(addr))[IEEE80211_ADDR_LEN - 1] % \ IEEE80211_NODE_HASHSIZE) -#define IEEE80211_RATE_SIZE 8 /* 802.11 standard */ -#define IEEE80211_RATE_MAXSIZE 15 /* max rates we'll handle */ - -struct ieee80211_rateset { - u_int8_t rs_nrates; - u_int8_t rs_rates[IEEE80211_RATE_MAXSIZE]; -}; - struct ieee80211_rsnparms { u_int8_t rsn_mcastcipher; /* mcast/group cipher */ u_int8_t rsn_mcastkeylen; /* mcast key length */ ==== //depot/projects/wifi/sys/net80211/ieee80211_var.h#10 (text+ko) ==== @@ -51,139 +51,17 @@ #error "No support for your operating system!" #endif +#include <net80211/_ieee80211.h> #include <net80211/ieee80211.h> #include <net80211/ieee80211_crypto.h> #include <net80211/ieee80211_ioctl.h> /* for ieee80211_stats */ #include <net80211/ieee80211_node.h> #include <net80211/ieee80211_proto.h> -#define IEEE80211_CHAN_MAX 255 -#define IEEE80211_CHAN_BYTES howmany(IEEE80211_CHAN_MAX, NBBY) -#define IEEE80211_CHAN_ANY 0xffff /* token for ``any channel'' */ -#define IEEE80211_CHAN_ANYC \ - ((struct ieee80211_channel *) IEEE80211_CHAN_ANY) - #define IEEE80211_TXPOWER_MAX 100 /* .5 dbM (XXX units?) */ #define IEEE80211_TXPOWER_MIN 0 /* kill radio */ -enum ieee80211_phytype { - IEEE80211_T_DS, /* direct sequence spread spectrum */ - IEEE80211_T_FH, /* frequency hopping */ - IEEE80211_T_OFDM, /* frequency division multiplexing */ - IEEE80211_T_TURBO, /* high rate OFDM, aka turbo mode */ -}; -#define IEEE80211_T_CCK IEEE80211_T_DS /* more common nomenclature */ - -/* XXX not really a mode; there are really multiple PHY's */ -enum ieee80211_phymode { - IEEE80211_MODE_AUTO = 0, /* autoselect */ - IEEE80211_MODE_11A = 1, /* 5GHz, OFDM */ - IEEE80211_MODE_11B = 2, /* 2GHz, CCK */ - IEEE80211_MODE_11G = 3, /* 2GHz, OFDM */ - IEEE80211_MODE_FH = 4, /* 2GHz, GFSK */ - IEEE80211_MODE_TURBO = 5, /* 5GHz, OFDM, 2x clock */ -}; -#define IEEE80211_MODE_MAX (IEEE80211_MODE_TURBO+1) - -enum ieee80211_opmode { - IEEE80211_M_STA = 1, /* infrastructure station */ - IEEE80211_M_IBSS = 0, /* IBSS (adhoc) station */ - IEEE80211_M_AHDEMO = 3, /* Old lucent compatible adhoc demo */ - IEEE80211_M_HOSTAP = 6, /* Software Access Point */ - IEEE80211_M_MONITOR = 8 /* Monitor mode */ -}; - -/* - * 802.11g protection mode. - */ -enum ieee80211_protmode { - IEEE80211_PROT_NONE = 0, /* no protection */ - IEEE80211_PROT_CTSONLY = 1, /* CTS to self */ - IEEE80211_PROT_RTSCTS = 2, /* RTS-CTS */ -}; - -/* - * Roaming mode is effectively who controls the operation - * of the 802.11 state machine when operating as a station. - * State transitions are controlled either by the driver - * (typically when management frames are processed by the - * hardware/firmware), the host (auto/normal operation of - * the 802.11 layer), or explicitly through ioctl requests - * when applications like wpa_supplicant want control. - */ -enum ieee80211_roamingmode { - IEEE80211_ROAMING_DEVICE= 0, /* driver/hardware control */ - IEEE80211_ROAMING_AUTO = 1, /* 802.11 layer control */ - IEEE80211_ROAMING_MANUAL= 2, /* application control */ -}; - -/* - * Channels are specified by frequency and attributes. - */ -struct ieee80211_channel { - u_int16_t ic_freq; /* setting in Mhz */ - u_int16_t ic_flags; /* see below */ -}; - -/* bits 0-3 are for private use by drivers */ -/* channel attributes */ -#define IEEE80211_CHAN_TURBO 0x0010 /* Turbo channel */ -#define IEEE80211_CHAN_CCK 0x0020 /* CCK channel */ -#define IEEE80211_CHAN_OFDM 0x0040 /* OFDM channel */ -#define IEEE80211_CHAN_2GHZ 0x0080 /* 2 GHz spectrum channel. */ -#define IEEE80211_CHAN_5GHZ 0x0100 /* 5 GHz spectrum channel */ -#define IEEE80211_CHAN_PASSIVE 0x0200 /* Only passive scan allowed */ -#define IEEE80211_CHAN_DYN 0x0400 /* Dynamic CCK-OFDM channel */ -#define IEEE80211_CHAN_GFSK 0x0800 /* GFSK channel (FHSS PHY) */ - -/* - * Useful combinations of channel characteristics. - */ -#define IEEE80211_CHAN_FHSS \ - (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_GFSK) -#define IEEE80211_CHAN_A \ - (IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM) -#define IEEE80211_CHAN_B \ - (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK) -#define IEEE80211_CHAN_PUREG \ - (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_OFDM) -#define IEEE80211_CHAN_G \ - (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_DYN) -#define IEEE80211_CHAN_T \ - (IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO) - -#define IEEE80211_IS_CHAN_FHSS(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_FHSS) == IEEE80211_CHAN_FHSS) -#define IEEE80211_IS_CHAN_A(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_A) == IEEE80211_CHAN_A) -#define IEEE80211_IS_CHAN_B(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_B) == IEEE80211_CHAN_B) -#define IEEE80211_IS_CHAN_PUREG(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_PUREG) == IEEE80211_CHAN_PUREG) -#define IEEE80211_IS_CHAN_G(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_G) == IEEE80211_CHAN_G) -#define IEEE80211_IS_CHAN_T(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_T) == IEEE80211_CHAN_T) - -#define IEEE80211_IS_CHAN_2GHZ(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_2GHZ) != 0) -#define IEEE80211_IS_CHAN_5GHZ(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_5GHZ) != 0) -#define IEEE80211_IS_CHAN_OFDM(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_OFDM) != 0) -#define IEEE80211_IS_CHAN_CCK(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_CCK) != 0) -#define IEEE80211_IS_CHAN_GFSK(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_GFSK) != 0) - -/* ni_chan encoding for FH phy */ -#define IEEE80211_FH_CHANMOD 80 -#define IEEE80211_FH_CHAN(set,pat) (((set)-1)*IEEE80211_FH_CHANMOD+(pat)) -#define IEEE80211_FH_CHANSET(chan) ((chan)/IEEE80211_FH_CHANMOD+1) -#define IEEE80211_FH_CHANPAT(chan) ((chan)%IEEE80211_FH_CHANMOD) - #define IEEE80211_PS_SLEEP 0x1 /* STA is in power saving mode */ - #define IEEE80211_PS_MAX_QUEUE 50 /* maximum saved packets */ struct ieee80211_aclator;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200411132342.iADNg7Ne033510>
