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