00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef _NET80211__IEEE80211_H_
00035 #define _NET80211__IEEE80211_H_
00036
00037 enum ieee80211_phytype {
00038 IEEE80211_T_DS,
00039 IEEE80211_T_FH,
00040 IEEE80211_T_OFDM,
00041 IEEE80211_T_TURBO
00042 };
00043 #define IEEE80211_T_CCK IEEE80211_T_DS
00044
00045
00046 enum ieee80211_phymode {
00047 IEEE80211_MODE_AUTO = 0,
00048 IEEE80211_MODE_11A = 1,
00049 IEEE80211_MODE_11B = 2,
00050 IEEE80211_MODE_11G = 3,
00051 IEEE80211_MODE_FH = 4,
00052 IEEE80211_MODE_TURBO_A = 5,
00053 IEEE80211_MODE_TURBO_G = 6
00054 };
00055 #define IEEE80211_MODE_MAX (IEEE80211_MODE_TURBO_G+1)
00056
00057 enum ieee80211_opmode {
00058 IEEE80211_M_STA = 1,
00059 IEEE80211_M_IBSS = 0,
00060 IEEE80211_M_AHDEMO = 3,
00061 IEEE80211_M_HOSTAP = 6,
00062 IEEE80211_M_MONITOR = 8
00063 };
00064
00065
00066
00067
00068 enum ieee80211_protmode {
00069 IEEE80211_PROT_NONE = 0,
00070 IEEE80211_PROT_CTSONLY = 1,
00071 IEEE80211_PROT_RTSCTS = 2
00072 };
00073
00074
00075
00076
00077 enum ieee80211_authmode {
00078 IEEE80211_AUTH_NONE = 0,
00079 IEEE80211_AUTH_OPEN = 1,
00080 IEEE80211_AUTH_SHARED = 2,
00081 IEEE80211_AUTH_8021X = 3,
00082 IEEE80211_AUTH_AUTO = 4,
00083
00084 IEEE80211_AUTH_WPA = 5
00085 };
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 enum ieee80211_roamingmode {
00097 IEEE80211_ROAMING_DEVICE= 0,
00098 IEEE80211_ROAMING_AUTO = 1,
00099 IEEE80211_ROAMING_MANUAL= 2
00100 };
00101
00102
00103
00104
00105 struct ieee80211_channel {
00106 u_int16_t ic_freq;
00107 u_int16_t ic_flags;
00108 };
00109
00110 #define IEEE80211_CHAN_MAX 255
00111 #define IEEE80211_CHAN_BYTES 32
00112 #define IEEE80211_CHAN_ANY 0xffff
00113 #define IEEE80211_CHAN_ANYC \
00114 ((struct ieee80211_channel *) IEEE80211_CHAN_ANY)
00115
00116
00117
00118 #define IEEE80211_CHAN_TURBO 0x0010
00119 #define IEEE80211_CHAN_CCK 0x0020
00120 #define IEEE80211_CHAN_OFDM 0x0040
00121 #define IEEE80211_CHAN_2GHZ 0x0080
00122 #define IEEE80211_CHAN_5GHZ 0x0100
00123 #define IEEE80211_CHAN_PASSIVE 0x0200
00124 #define IEEE80211_CHAN_DYN 0x0400
00125 #define IEEE80211_CHAN_GFSK 0x0800
00126
00127
00128
00129
00130 #define IEEE80211_CHAN_FHSS \
00131 (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_GFSK)
00132 #define IEEE80211_CHAN_A \
00133 (IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM)
00134 #define IEEE80211_CHAN_B \
00135 (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK)
00136 #define IEEE80211_CHAN_PUREG \
00137 (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_OFDM)
00138 #define IEEE80211_CHAN_G \
00139 (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_DYN)
00140 #define IEEE80211_CHAN_T \
00141 (IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO)
00142 #define IEEE80211_CHAN_108G \
00143 (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO)
00144
00145 #define IEEE80211_IS_CHAN_FHSS(_c) \
00146 (((_c)->ic_flags & IEEE80211_CHAN_FHSS) == IEEE80211_CHAN_FHSS)
00147 #define IEEE80211_IS_CHAN_A(_c) \
00148 (((_c)->ic_flags & IEEE80211_CHAN_A) == IEEE80211_CHAN_A)
00149 #define IEEE80211_IS_CHAN_B(_c) \
00150 (((_c)->ic_flags & IEEE80211_CHAN_B) == IEEE80211_CHAN_B)
00151 #define IEEE80211_IS_CHAN_PUREG(_c) \
00152 (((_c)->ic_flags & IEEE80211_CHAN_PUREG) == IEEE80211_CHAN_PUREG)
00153 #define IEEE80211_IS_CHAN_G(_c) \
00154 (((_c)->ic_flags & IEEE80211_CHAN_G) == IEEE80211_CHAN_G)
00155 #define IEEE80211_IS_CHAN_T(_c) \
00156 (((_c)->ic_flags & IEEE80211_CHAN_T) == IEEE80211_CHAN_T)
00157 #define IEEE80211_IS_CHAN_108G(_c) \
00158 (((_c)->ic_flags & IEEE80211_CHAN_108G) == IEEE80211_CHAN_108G)
00159
00160 #define IEEE80211_IS_CHAN_2GHZ(_c) \
00161 (((_c)->ic_flags & IEEE80211_CHAN_2GHZ) != 0)
00162 #define IEEE80211_IS_CHAN_5GHZ(_c) \
00163 (((_c)->ic_flags & IEEE80211_CHAN_5GHZ) != 0)
00164 #define IEEE80211_IS_CHAN_OFDM(_c) \
00165 (((_c)->ic_flags & IEEE80211_CHAN_OFDM) != 0)
00166 #define IEEE80211_IS_CHAN_CCK(_c) \
00167 (((_c)->ic_flags & IEEE80211_CHAN_CCK) != 0)
00168 #define IEEE80211_IS_CHAN_GFSK(_c) \
00169 (((_c)->ic_flags & IEEE80211_CHAN_GFSK) != 0)
00170
00171
00172 #define IEEE80211_FH_CHANMOD 80
00173 #define IEEE80211_FH_CHAN(set,pat) (((set)-1)*IEEE80211_FH_CHANMOD+(pat))
00174 #define IEEE80211_FH_CHANSET(chan) ((chan)/IEEE80211_FH_CHANMOD+1)
00175 #define IEEE80211_FH_CHANPAT(chan) ((chan)%IEEE80211_FH_CHANMOD)
00176
00177
00178
00179
00180 #define IEEE80211_RATE_SIZE 8
00181 #define IEEE80211_RATE_MAXSIZE 15
00182
00183 struct ieee80211_rateset {
00184 u_int8_t rs_nrates;
00185 u_int8_t rs_rates[IEEE80211_RATE_MAXSIZE];
00186 };
00187
00188 #endif