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 #include <include.h>
00029
00030 extern UINT8 TypeOfCard;
00031
00032
00033
00034
00035
00036 const char *RateToString(int rate)
00037 {
00038 debug(3, "(Rate = 0x%02X, Rate & 0x7F = 0x%02X, Rate = %d)\n", rate,
00039 rate & 0x7F, rate);
00040 switch (rate & 0x7F) {
00041 case 0:
00042 return "0Mb/s";
00043 break;
00044 case 2:
00045 case 10:
00046 return "1Mb/s";
00047 break;
00048 case 4:
00049 case 20:
00050 return "2Mb/s";
00051 break;
00052 case 11:
00053 case 55:
00054 return "5.5Mb/s";
00055 break;
00056 case 12:
00057 return "6Mb/s";
00058 break;
00059 case 18:
00060 return "9Mb/s";
00061 break;
00062 case 22:
00063 case 110:
00064 return "11Mb/s";
00065 break;
00066 case 24:
00067 return "12Mb/s";
00068 break;
00069 case 36:
00070 return "18Mb/s";
00071 break;
00072 case 44:
00073 return "22Mb/s";
00074 break;
00075 case 48:
00076 return "24Mb/s";
00077 break;
00078 case 66:
00079 return "33Mb/s";
00080 break;
00081 case 72:
00082 return "36Mb/s";
00083 break;
00084 case 88:
00085 return "44Mb/s";
00086 break;
00087 case 96:
00088 return "48Mb/s";
00089 break;
00090 case 108:
00091 return "54Mb/s";
00092 break;
00093 default:
00094 return "???";
00095 break;
00096 }
00097 return "???";
00098 }
00099
00100 char *TypeOfClientToString(int TypeOfClient)
00101 {
00102 static const char *TypeOfClientList[16] = {
00103 TYPE_BIT_00, TYPE_BIT_01, TYPE_BIT_02, TYPE_BIT_03,
00104 TYPE_BIT_04, TYPE_BIT_05, TYPE_BIT_06, TYPE_BIT_07,
00105 TYPE_BIT_08, TYPE_BIT_09, TYPE_BIT_0A, TYPE_BIT_0B,
00106 TYPE_BIT_0C, TYPE_BIT_0D, TYPE_BIT_0E, TYPE_BIT_0F
00107 };
00108
00109 return ((char *) TypeOfClientList[(TypeOfClient & 0x0F)]);
00110 }
00111
00112 char *SubTypeOfClientToString(int TypeOfClient)
00113 {
00114 const char *SubTypeOfClientList[16] = {
00115 SUBTYPE_BIT_00, SUBTYPE_BIT_01, SUBTYPE_BIT_02,
00116 SUBTYPE_BIT_03,
00117 SUBTYPE_BIT_04, SUBTYPE_BIT_05, SUBTYPE_BIT_06,
00118 SUBTYPE_BIT_07,
00119 SUBTYPE_BIT_08, SUBTYPE_BIT_09, SUBTYPE_BIT_0A,
00120 SUBTYPE_BIT_0B,
00121 SUBTYPE_BIT_0C, SUBTYPE_BIT_0D, SUBTYPE_BIT_0E,
00122 SUBTYPE_BIT_0F
00123 };
00124
00125 return ((char *)
00126 SubTypeOfClientList[((TypeOfClient & 0xF0) >> 4)]);
00127 }
00128
00129 char *BoolToStr(int Boolean)
00130 {
00131 const char *YesNo[2] = { STR_NO, STR_YES };
00132
00133 Boolean = !(!Boolean);
00134 return ((char *) YesNo[Boolean]);
00135 }
00136
00137 char *BoolToWepNoWep(int Boolean)
00138 {
00139 const char *WepNoWep[2] = { STR_NOWEP, STR_WEP };
00140
00141 Boolean = !(!Boolean);
00142 return ((char *) WepNoWep[Boolean]);
00143 }
00144
00145 char *BoolToStaAp(int Boolean)
00146 {
00147 const char *StaAp[2] = { STR_STA, STR_AP };
00148
00149 Boolean = !(!Boolean);
00150 return ((char *) StaAp[Boolean]);
00151 }
00152
00153 const char *TypeOfPacketToString(UINT16 TypeOfPacket)
00154 {
00155 switch (WLAN_GET_FC_FTYPE(TypeOfPacket)) {
00156
00157 case WLAN_FTYPE_MGMT:
00158
00159 switch (WLAN_GET_FC_FSTYPE(TypeOfPacket)) {
00160 case WLAN_FSTYPE_ASSOCREQ:
00161 return ("ASSREQ");
00162 break;
00163 case WLAN_FSTYPE_ASSOCRESP:
00164 return ("ASSRES");
00165 break;
00166 case WLAN_FSTYPE_REASSOCREQ:
00167 return ("REASSQ");
00168 break;
00169 case WLAN_FSTYPE_REASSOCRESP:
00170 return ("REASSS");
00171 break;
00172 case WLAN_FSTYPE_PROBEREQ:
00173 return ("PRBREQ");
00174 break;
00175 case WLAN_FSTYPE_PROBERESP:
00176 return ("PRBRES");
00177 break;
00178 case WLAN_FSTYPE_BEACON:
00179 return ("BEACON");
00180 break;
00181 case WLAN_FSTYPE_ATIM:
00182 return ("ATIM");
00183 break;
00184 case WLAN_FSTYPE_DISASSOC:
00185 return ("DESASS");
00186 break;
00187 case WLAN_FSTYPE_AUTHEN:
00188 return ("AUTHEN");
00189 break;
00190 case WLAN_FSTYPE_DEAUTHEN:
00191 return ("DEAUTH");
00192 break;
00193 default:
00194 return ("UNKNOW");
00195 }
00196 break;
00197 case WLAN_FTYPE_CTL:
00198 switch (WLAN_GET_FC_FSTYPE(TypeOfPacket)) {
00199
00200 case WLAN_FSTYPE_PSPOLL:
00201 return ("PSPOLL");
00202 break;
00203 case WLAN_FSTYPE_RTS:
00204 return ("RTS");
00205 break;
00206 case WLAN_FSTYPE_CTS:
00207 return ("CTS");
00208 break;
00209 case WLAN_FSTYPE_ACK:
00210 return ("ACK");
00211 break;
00212 case WLAN_FSTYPE_CFEND:
00213 return ("CFEND");
00214 break;
00215 case WLAN_FSTYPE_CFENDCFACK:
00216 return ("CFEACK");
00217 break;
00218 default:
00219 return ("UNKNOW");
00220 }
00221 break;
00222 case WLAN_FTYPE_DATA:
00223 switch (WLAN_GET_FC_FSTYPE(TypeOfPacket)) {
00224
00225 case WLAN_FSTYPE_DATAONLY:
00226 return ("DATA");
00227 break;
00228 case WLAN_FSTYPE_DATA_CFACK:
00229 return ("DATACK");
00230 break;
00231 case WLAN_FSTYPE_DATA_CFPOLL:
00232 return ("DATPOL");
00233 break;
00234 case WLAN_FSTYPE_DATA_CFACK_CFPOLL:
00235 return ("DTPLAK");
00236 break;
00237 case WLAN_FSTYPE_NULL:
00238 return ("NULL");
00239 break;
00240 case WLAN_FSTYPE_CFACK:
00241 return ("CFACK");
00242 break;
00243 case WLAN_FSTYPE_CFPOLL:
00244 return ("CFPOL");
00245 break;
00246 case WLAN_FSTYPE_CFACK_CFPOLL:
00247 return ("CFPLAK");
00248 break;
00249 default:
00250 return ("UNKNOW");
00251 }
00252 break;
00253 default:
00254 return ("UNKNOW");
00255 }
00256 }