1/******************************************************************************* 2**+--------------------------------------------------------------------------+** 3**| |** 4**| Copyright 1998-2008 Texas Instruments, Inc. - http://www.ti.com/ |** 5**| |** 6**| Licensed under the Apache License, Version 2.0 (the "License"); |** 7**| you may not use this file except in compliance with the License. |** 8**| You may obtain a copy of the License at |** 9**| |** 10**| http://www.apache.org/licenses/LICENSE-2.0 |** 11**| |** 12**| Unless required by applicable law or agreed to in writing, software |** 13**| distributed under the License is distributed on an "AS IS" BASIS, |** 14**| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |** 15**| See the License for the specific language governing permissions and |** 16**| limitations under the License. |** 17**| |** 18**+--------------------------------------------------------------------------+** 19*******************************************************************************/ 20 21#include <stdio.h> 22#include <stdlib.h> 23 24#ifdef _WINDOWS 25#else /* __LINUX__ */ 26 #include <errno.h> 27#include <unistd.h> 28#include <sys/types.h> 29#include <sys/stat.h> 30#include <fcntl.h> 31#include <sys/ioctl.h> 32#include <sys/socket.h> 33#include <linux/if.h> 34#include <linux/wireless.h> 35#include <stdarg.h> 36#include <sys/socket.h> 37#include <linux/in.h> 38#include "ipc.h" 39#include "wipp_ctrl.h" 40#include "eth_utils.h" 41#include "dbg_module.h" 42#include "g_tester.h" 43 #define LINUX_OS_FILES 44#endif 45 46#define MAX_CERT_FILE_NAME_LENGTH 32 47#define MAX_CERT_PASSWORD_LENGTH 32 48#define MAX_CERT_USER_NAME_LENGTH 32 49#define MAX_PSK_STRING_LENGTH 64 /* MAX string phrase is 63 chars, but hexa phrase is 64 chars excactly */ 50#define MIN_PSK_STRING_LENGTH 8 /* MIN string phrase is 8 chars */ 51 52#include "paramOut.h" 53#include "linux_ioctl_common.h" 54#include "tiioctl.h" 55#include "console.h" 56#include "ticon.h" 57#include "cu_cmd.h" 58 59#define WLAN_DEVICE_NAME (_T("TIWLNAPI1")) 60 61#ifdef EXC_MODULE_INCLUDED 62#include "TI_AdapterEXC.h" 63#endif /*EXC_MODULE_INCLUDED*/ 64#include "TI_AdapterApiC.h" 65#include "TI_IPC_Api.h" 66 67 68extern void osInitTable(initTable_t *InitTable); 69 70void quit_func(void); 71void dummy_func(void); 72 73void init_extended_tools(void); 74void deinit_extended_tools(void); 75 76char g_drv_name[IFNAMSIZ + 1]; 77 78#ifdef _WINDOWS 79#endif /* ifdef _WINDOWS */ 80 81#define MAX_HOST_MESSAGE_SIZE (256) 82 83/************************************************************************ 84 * console_printf_terminal * 85 ************************************************************************ 86DESCRIPTION: Sends a text message to host 87 88CONTEXT: Any process, the 'p_shared_memory' points 89 to the shared memory block 90************************************************************************/ 91int console_printf_terminal(const char *arg_list ,...) 92{ 93#ifndef _WINDOWS /*TRS:WDK slightly different code needed for each OS*/ 94 va_list ap; 95 tiUINT8 msg[MAX_HOST_MESSAGE_SIZE]; 96 int message_length; 97 98 /***********************/ 99 /* Format the message */ 100 /*********************/ 101 102 va_start(ap, arg_list); 103 message_length = vsnprintf((char*)&msg[0], sizeof(msg), arg_list, ap); 104 105 /*********************************/ 106 /* Send the message to the host */ 107 /*******************************/ 108 109 return console_send_buffer_to_host(ETHERNET_UTILS_TERMINAL_MODULE_ID, msg, message_length); 110 111#else /* _WINDOWS */ 112#endif /* _WINDOWS */ 113} 114 115#ifndef _WINDOWS 116#define ETHERNET_PROTOCOL_PREFIX_SIZE (3) 117#define MUX_UART_PROTOCOL_PREFIX_SIZE (2) 118/************************************************************************ 119 * console_send_buffer_to_host * 120 ************************************************************************ 121DESCRIPTION: Sends a text message to host 122 123CONTEXT: Any process, the 'p_shared_memory' points 124 to the shared memory block 125************************************************************************/ 126int console_send_buffer_to_host(tiUINT8 module_inedx, tiUINT8 *buffer, tiUINT16 length) 127{ 128 tiUINT8 output_path = SHARED_MEMORY_OUTPUT_PATH(module_inedx); 129 tiUINT8 protocol_header[3]; 130 int return_size, ret; 131 132 /*****************/ 133 /* Sanity check */ 134 /***************/ 135 136 if (output_path == OUTPUT_PATH_ETHERNET) 137 { 138 /***********************/ 139 /* Output to ethernet */ 140 /*********************/ 141 142 /* Prepare the header */ 143 protocol_header[0] = 'W'; /* Ethernet protocol Prefix */ 144 protocol_header[1] = length & 0xFF; /* Message size (first byte) */ 145 protocol_header[2] = (length >> 8) & 0xFF; /* Message size (second byte) */ 146 147 /* Send the header */ 148 ret = write(SHARED_MEMORY_IPC_PIPE(module_inedx), protocol_header, ETHERNET_PROTOCOL_PREFIX_SIZE); 149 if( ret <= 0 ) 150 { 151 printf("\tERROR: %s() returned %d (err=%d)\n\n", __FUNCTION__, ret, errno ); 152 return 0; 153 } 154 155 /* Send the message */ 156 ret = write(SHARED_MEMORY_IPC_PIPE(module_inedx), buffer, length); 157 if( ret <= 0 ) 158 { 159 printf("\tERROR1: %s() returned %d (err=%d)\n\n", __FUNCTION__, ret, errno ); 160 return 0; 161 } 162 163 return_size = (ETHERNET_PROTOCOL_PREFIX_SIZE + length); 164 } 165 else if (output_path == OUTPUT_PATH_MUX_UART) 166 { 167 /***********************/ 168 /* OUTPUT to mux UART */ 169 /*********************/ 170 171 /* Write the protocol prefix */ 172 protocol_header[0] = (28 << 3); 173 protocol_header[1] = length; 174 fwrite(protocol_header, 1, MUX_UART_PROTOCOL_PREFIX_SIZE, stdout); 175 176 /* Write the message */ 177 fwrite(buffer, 1, length, stdout); 178 179 return_size = (MUX_UART_PROTOCOL_PREFIX_SIZE + length); 180 } 181 else 182 { 183 /*******************/ 184 /* OUTPUT to UART */ 185 /*****************/ 186 187 /* Use the original printf function */ 188 return_size = printf("%s", buffer); 189 } 190 191 return return_size; 192} 193#endif /* __LINUX__ */ 194 195 196#ifdef _WINDOWS 197#endif /* WINDOWS */ 198 199void dummy_func() 200{ 201 console_printf_terminal("1: not implemented yet!!\n"); 202} 203 204void quit_func(void) 205{ 206 consoleStop(); 207} 208 209int print_usage(char *eeprom_file_name, char *init_file_name, char *firmware_file_name) 210{ 211#ifdef _WINDOWS 212#else 213 fprintf(stderr, "Usage: ./wlan_cu [driver_name] [options]\n"); 214#endif 215 fprintf(stderr, " -s <filename> - run script\n"); 216 fprintf(stderr, " -e <filename> - eeprom image file name. Dft=%s\n", eeprom_file_name); 217 fprintf(stderr, " -i <filename> - init file name. Dft=%s\n", init_file_name); 218 fprintf(stderr, " -f <filename> - firmware image file name. Dft=%s\n",firmware_file_name); 219 fprintf(stderr, " -b - bypass supplicant\n"); 220#ifdef _WINDOWS 221#endif /* ifdef _WINDOWS */ 222 return 1; 223} 224 225int init_console_menu(void) 226{ 227 handle_t h, h1, h2; 228 229 /* -------------------------------------------- Driver -------------------------------------------- */ 230 231 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "Driver", "Driver start/stop" ) ); 232 { 233 ConParm_t aaa[] = { { "start_suppl_manager", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 234 consoleAddToken(h, "Start", "Start driver", (FuncToken_t) cmd_start_driver, aaa ); 235 } 236 consoleAddToken(h, "stoP", "Stop driver", (FuncToken_t) cmd_stop_driver, NULL ); 237 consoleAddToken(h, "stAtus", "Print status", (FuncToken_t) cmd_show_status, NULL ); 238 239 /* -------------------------------------------- Connection -------------------------------------------- */ 240 241 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "Connection", "Connection management" ) ); 242 consoleAddToken(h, "Bssid_list", "Bssid_list", (FuncToken_t) cmd_bssid_list, NULL ); 243 { 244 ConParm_t aaa[] = { { "ssid", CON_PARM_STRING | CON_PARM_OPTIONAL, 0, 32, 0 }, 245 { "bssid", CON_PARM_STRING | CON_PARM_OPTIONAL, 0, 32, 0 }, 246 CON_LAST_PARM }; 247 248 consoleAddToken(h, "Connect", "Connect", (FuncToken_t) cmd_connect, aaa ); 249 } 250 consoleAddToken(h, "Disassociate", "disconnect", (FuncToken_t) cmd_disassociate, NULL ); 251 consoleAddToken(h, "Status", "Print connection status", (FuncToken_t) cmd_show_status, NULL ); 252 consoleAddToken(h, "Full_bssid_list", "Full_bssid_list", (FuncToken_t) cmd_Full_bssid_list, NULL ); 253 consoleAddToken(h, "full_Primary_bssid", "Full_Primary_bssid", (FuncToken_t) cmd_FullPrimaryBbssid, NULL ); 254 255 256 /* -------------------------------------------- Management -------------------------------------------- */ 257 258 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "Management", "Station management" ) ); 259 { 260 ConParm_t aaa[] = { { "ssid", CON_PARM_LINE | CON_PARM_OPTIONAL, 0, 32, 0 }, CON_LAST_PARM }; 261 consoleAddToken(h, "Ssid", "Set prefered SSID", (FuncToken_t) cmd_modify_ssid, aaa ); 262 } 263 { 264 ConParm_t aaa[] = { { "channel", /*CON_PARM_RANGE | */CON_PARM_OPTIONAL, 0, 0/*1000*/, 0 }, CON_LAST_PARM }; 265 consoleAddToken(h, "Channel", "Set the channel", (FuncToken_t) cmd_modify_channel, aaa ); 266 } 267 { 268 ConParm_t aaa[] = { { "tx rate", CON_PARM_STRING | CON_PARM_OPTIONAL, 0, 32, 0 }, CON_LAST_PARM }; 269 consoleAddToken(h, "Rate", "Get TX data rate in Mbps (1,2,5.5,11,22)", (FuncToken_t) cmd_modify_rate, aaa ); 270 } 271 { 272 ConParm_t aaa[] = { { "BSS_type", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 273 consoleAddToken(h, "Mode", "BSS_type", (FuncToken_t) cmd_modify_bss_type, aaa ); 274 } 275 { 276 ConParm_t aaa[] = { { "frag", /*CON_PARM_RANGE | */CON_PARM_OPTIONAL, 0/*256*/, 0/*2346*/, 0 }, CON_LAST_PARM }; 277 consoleAddToken(h, "Frag", "Set the fragmentation threshold <256..2346>", (FuncToken_t) cmd_modify_frag_threshold, aaa ); 278 } 279 { 280 ConParm_t aaa[] = { { "rts", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 281 consoleAddToken(h, "rts", "Set RTS threshold <0..2347>", (FuncToken_t) cmd_modify_rts_threshold, aaa); 282 } 283 { 284 ConParm_t aaa[] = { { "preamble", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 1, 0 }, CON_LAST_PARM }; 285 consoleAddToken(h, "prEamble", "Set preamble type 1=short 0=long", (FuncToken_t) cmd_modify_preamble, aaa ); 286 } 287 { 288 ConParm_t aaa[] = { { "slot", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 289 consoleAddToken(h, "sLot", "Set short slot", (FuncToken_t) cmd_modify_short_slot, aaa ); 290 } 291 consoleAddToken(h, "Info", "Get Selected BSSID Info", (FuncToken_t) cmd_get_selected_bssid_info, NULL ); 292 consoleAddToken(h, "DriverState", "Get Driver State", (FuncToken_t) cmd_get_driver_state, NULL ); 293 consoleAddToken(h, "siGnal", "Get Current RSSI level", (FuncToken_t) cmd_get_rsii_level, NULL ); 294 consoleAddToken(h, "snr ratiO", "Get Current SNR radio", (FuncToken_t) cmd_get_snr_ratio, NULL ); 295 296 297 { 298 ConParm_t aaa[] = { { "Tx power level", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 299 consoleAddToken(h, "tX_power_level_table", "Tx power level", (FuncToken_t) cmd_show_tx_power_level_table, aaa ); 300 consoleAddToken(h, "tx_power_dBm_div10", "Tx power level", (FuncToken_t) cmd_tx_power_dbm, aaa ); 301 } 302 consoleAddToken(h, "arP ip addresses table", "Get ARP IP address table", (FuncToken_t) cmd_get_arpIpTable, NULL); 303 consoleAddToken(h, "groUp address table", "Get Group address table", (FuncToken_t) cmd_get_GroupAddressTable, NULL); 304 305 306 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "802_11d_h", "802_11D_H" ) ); 307 { 308 ConParm_t aaa[] = { { "802_11_D", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 309 ConParm_t bbb[] = { 310 { "min DFS channel", CON_PARM_RANGE, 0, 180, 40 }, 311 { "max DFS channel", CON_PARM_RANGE, 0, 180, 140 }, 312 CON_LAST_PARM}; 313 314 consoleAddToken(h1, "D_enableDisable", "enableDisable_d", (FuncToken_t) cmd_enableDisable_802_11d, aaa ); 315 consoleAddToken(h1, "H_enableDisable", "enableDisable_h", (FuncToken_t) cmd_enableDisable_802_11h, aaa ); 316 consoleAddToken(h1, "d_Country_2_4Ie", "d_Country_2_4Ie", (FuncToken_t) cmd_d_Country_2_4Ie, aaa ); 317 consoleAddToken(h1, "d_cOuntry_5Ie", "d_Country_5Ie", (FuncToken_t) cmd_d_Country_5Ie, aaa ); 318 319 consoleAddToken(h1, "dfS_range", "DFS_range", (FuncToken_t) cmd_DFS_range, bbb ); 320 321 } 322 323 324 /* b-only, g-only, b&g mode, a-only, a&g mode b-plus-mode */ 325 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "Antenna", "tx/rx selected antenna" ) ); 326 { 327 ConParm_t aaa[] = { { "Enable RX diversity", CON_PARM_RANGE, 0, 1, 0 }, 328 { "RX selected antenna", CON_PARM_RANGE, 1, 2, 2 }, 329 { "Enable TX diversity", CON_PARM_RANGE, 0, 1, 0 }, 330 { "TX selected antenna", CON_PARM_RANGE, 1, 2, 2 }, 331 { "Share RX and TX antennas", CON_PARM_RANGE, 0, 1, 1 }, 332 CON_LAST_PARM }; 333 consoleAddToken(h1, "Diversityparams", "Set antenna diversity params", (FuncToken_t) cmd_modify_antenna_diversity, aaa ); 334 } 335 336 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "beacoN", "Set Beacon Filter Desired State" ) ); 337 { 338 ConParm_t beaconFilterDesiredState[] = { { "Set Beacon Desired State", CON_PARM_OPTIONAL, 0, 0, 0 }, 339 CON_LAST_PARM }; 340 consoleAddToken(h1, "Set Beacon Filter Desired State","Set Beacon Filter Current State", (FuncToken_t) cmd_Beacon_Filter_Set_Desired_State, beaconFilterDesiredState ); 341 consoleAddToken(h1, "Get Beacon Filter Current State","Get Beacon Filter Current State", (FuncToken_t) cmd_Beacon_Filter_Get_Desired_State, beaconFilterDesiredState ); 342 } 343 344 345 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "adVanced", "Advanced params" ) ); 346 { 347 ConParm_t aaa[] = { { "ext_rates", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 348 consoleAddToken(h1, "Draft", "Draft", (FuncToken_t) cmd_modify_ext_rates_ie, aaa ); 349 } 350 { 351 ConParm_t aaa[] = { { "rates", CON_PARM_OPTIONAL | CON_PARM_LINE, 0, 120, 0 }, CON_LAST_PARM }; 352 consoleAddToken(h1, "Supported rates", "rates", (FuncToken_t) cmd_modify_supported_rates, aaa ); 353 } 354 { 355 ConParm_t aaa[] = { { "CtsToSelf", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 1, 0 }, CON_LAST_PARM }; 356 consoleAddToken(h1, "Cts to self", "Enable/Disable CTS to self", (FuncToken_t) cmd_modify_ctsToSelf, aaa ); 357 } 358 CHK_NULL(h2 = (handle_t) consoleAddDirExt( (handle_t) h1, "rx data Filter", "Rx Data Filter" ) ); 359 consoleAddToken(h2, "Enable", "Enable Rx Data Filtering", (FuncToken_t) cmd_enable_rx_data_filters, NULL ); 360 consoleAddToken(h2, "Disable", "Enable Rx Data Filtering", (FuncToken_t) cmd_disable_rx_data_filters, NULL ); 361 { 362 ConParm_t aaa[] = 363 { 364 { "Offset", CON_PARM_RANGE, 0, 255, 0 }, 365 { "Mask", CON_PARM_STRING, 0, 64, 0 }, 366 { "Pattern", CON_PARM_STRING, 0, 128, 0 }, 367 CON_LAST_PARM 368 }; 369 consoleAddToken(h2, "Add", "Add Rx Data Filter", (FuncToken_t) cmd_add_rx_data_filter, aaa ); 370 } 371 { 372 ConParm_t aaa[] = 373 { 374 { "Offset", CON_PARM_RANGE, 0, 255, 0 }, 375 { "Mask", CON_PARM_STRING, 0, 64, 0 }, 376 { "Pattern", CON_PARM_STRING, 0, 128, 0 }, 377 CON_LAST_PARM 378 }; 379 consoleAddToken(h2, "Remove", "Remove Rx Data Filter", (FuncToken_t) cmd_remove_rx_data_filter, aaa ); 380 } 381 consoleAddToken(h2, "Statistics", "Print Rx Data Filtering Statistics", (FuncToken_t) cmd_get_rx_data_filters_statistics, NULL ); 382 383 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "Show", "Show params" ) ); 384 consoleAddToken(h, "Statistics", "Show statistics", (FuncToken_t) cmd_show_statistics, NULL ); 385 { 386 ConParm_t aaa[] = { { "Clear stats on read", CON_PARM_OPTIONAL | CON_PARM_RANGE, 0, 1, 0 }, CON_LAST_PARM }; 387 consoleAddToken(h, "Tx statistics", "Show tx statistics", (FuncToken_t) cmd_show_tx_statistics, aaa ); 388 } 389 consoleAddToken(h, "Advanced", "Show advanced params", (FuncToken_t) cmd_show_advanced_params, NULL ); 390 391 consoleAddToken(h, "Power consumption", "Show power consumption statistics", (FuncToken_t) cmd_show_power_consumption_stats, NULL ); 392 393 /* -------------------------------------------- Privacy -------------------------------------------- */ 394 395 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "Privacy", "Privacy configuration" ) ); 396 { 397 ConParm_t aaa[] = { { "mode", CON_PARM_OPTIONAL, 0, 0, 0 },CON_LAST_PARM }; 398 consoleAddToken(h, "Authentication", "Set authentication mode", 399 (FuncToken_t)cmd_privacy_auth, aaa ); 400 } 401 { 402 ConParm_t aaa[] = { { "type", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 403 consoleAddToken(h, "EAP", "Set EAP type", (FuncToken_t)cmd_privacy_eap, aaa ); 404 } 405 { 406 ConParm_t aaa[] = { { "type", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 407 consoleAddToken(h, "encRyption", "Set Encryption type", (FuncToken_t)cmd_privacy_encrypt, aaa); 408 } 409 410 { 411 ConParm_t aaa[] = { { "type", 0, 0, 0, 0 }, CON_LAST_PARM }; 412 consoleAddToken(h, "Keytype", "Set key type", (FuncToken_t) cmd_privacy_key_type, aaa ); 413 } 414 415 { 416 ConParm_t aaa[] = { { "mode", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 417 consoleAddToken(h, "Mixedmode", "Set mixed mode", (FuncToken_t) cmd_privacy_mixed_mode, aaa ); 418 } 419 420 { 421 ConParm_t aaa[] = { 422 { "User:", CON_PARM_STRING, 0, MAX_CERT_USER_NAME_LENGTH, 0 }, 423 { "Password:", CON_PARM_STRING | CON_PARM_OPTIONAL, 0, MAX_CERT_PASSWORD_LENGTH , 0 }, 424 CON_LAST_PARM }; 425 consoleAddToken(h, "Credentials", "Set Credentials ", (FuncToken_t)cmd_privacy_credent, aaa); 426 } 427 { 428 ConParm_t aaa[] = 429 { 430 { "Passphrase", CON_PARM_STRING, MIN_PSK_STRING_LENGTH, MAX_PSK_STRING_LENGTH, 0}, 431 { "key type (hex | text) [text]", CON_PARM_OPTIONAL | CON_PARM_STRING, 0, 5, 0}, 432 CON_LAST_PARM 433 }; 434 consoleAddToken(h, "PSKPassphrase", "Set PSK Passphrase", (FuncToken_t)cmd_privacy_PSKPassphrase, aaa ); 435 } 436#ifdef _WINDOWS // TRS:HLC certificate hash for Windows 437#else 438 { 439 ConParm_t aaa[] = { { "Certificate Name:", CON_PARM_STRING, 0, MAX_CERT_FILE_NAME_LENGTH, 0 }, 440 { "Validate (yes - 1 /no - 0):", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 441 consoleAddToken(h, "cerTificate", "Set Certificate",(FuncToken_t)cmd_privacy_certificate, aaa); 442 443 } 444#endif 445 { 446 ConParm_t aaa[] = { { "option", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 447 consoleAddToken(h, "wpa_Options", "Set WPA options", (FuncToken_t)cmd_privacy_wpa_options, aaa ); 448 } 449 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "Wep", "Wep" ) ); 450 { 451 ConParm_t aaa[] = 452 { 453 { "Key Value", CON_PARM_STRING, 0, 64, 0}, 454 { "Tx Key Index", 0, 0, 0, 0 }, 455 { "Default Key (yes - 1 /no - 0)", 0, 0, 0, 0 }, 456 { "key type (hex | text) [hex]", CON_PARM_OPTIONAL | CON_PARM_STRING, 0, 5, 0}, 457 CON_LAST_PARM 458 }; 459 consoleAddToken(h1, "Add", "Add WEP", (FuncToken_t)cmd_privacy_addkey, aaa ); 460 } 461 { 462 ConParm_t aaa[] = { { "Key Index", 0, 0, 0, 0 }, CON_LAST_PARM }; 463 consoleAddToken(h1, "Remove", "Remove WEP", (FuncToken_t)cmd_privacy_removekey, aaa); 464 } 465 consoleAddToken(h1, "Get Default Key ID", "Get Default Key ID", (FuncToken_t)cmd_privacy_getdefaultkey, NULL); 466 467 468#ifdef EXC_MODULE_INCLUDED 469 add_EXC_menu( h ); 470#endif/*EXC_MODULE_INCLUDED*/ 471 472 /* -------------------------------------------- Scan -------------------------------------------- */ 473 474 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "scAn", "Scan Service Configuration" ) ); 475 consoleAddToken(h, "Start", "Start Application Scan", (FuncToken_t) cmd_Scan_Start, NULL ); 476 consoleAddToken(h, "sTop", "Stop Application Scan", (FuncToken_t) cmd_Scan_Stop, NULL ); 477 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "configApp", "Configure Application Scan Params" ) ); 478 { 479 ConParm_t aaa[] = { 480 { "SSID", CON_PARM_STRING, 0, 33, 0 }, 481#ifdef TI_DBG /* limitn application scan to normal only in release version */ 482 { "Scan Type", CON_PARM_RANGE, SCAN_TYPE_NORMAL_PASSIVE, SCAN_TYPE_TRIGGERED_ACTIVE, 0 }, 483#else 484 { "Scan Type", CON_PARM_RANGE, SCAN_TYPE_NORMAL_PASSIVE, SCAN_TYPE_NORMAL_ACTIVE, 0 }, 485#endif 486 { "Band", CON_PARM_RANGE, 0, 1, 0 }, 487 { "Probe Request Number", CON_PARM_RANGE, 0, 255, 0 }, 488 { "Probe Request Rate", CON_PARM_RANGE, 0, DRV_RATE_MASK_54_OFDM, 0 }, 489 490#ifdef TI_DBG 491 { "Tid", CON_PARM_RANGE, 0, 255, 0 }, 492#endif 493 { "Number of Channels", CON_PARM_RANGE, 0, 16, 0 }, 494 CON_LAST_PARM }; 495 consoleAddToken(h1, "Global", "Config Global Params", (FuncToken_t) cmd_Scan_app_global_config, aaa ); 496 } 497 { 498 ConParm_t aaa[] = { 499 { "Index", CON_PARM_RANGE, 0, 30, 0 }, 500 { "BSSID (xx:xx:xx:xx:xx:xx)", CON_PARM_STRING, 0, 18, 0 }, 501 { "Max Dwell Time", CON_PARM_RANGE, 0, 100000000, 0 }, 502 { "Min Dwell Time", CON_PARM_RANGE, 0, 100000000, 0 }, 503 { "ET Condition", CON_PARM_RANGE, SCAN_ET_COND_DISABLE, SCAN_ET_COND_ANY_FRAME, 0 }, 504 { "ET Frame Number", CON_PARM_RANGE, 0, 255, 0 }, 505 { "TX power level", CON_PARM_RANGE, 0, MAX_TX_POWER, 0 }, 506 { "Channel Number", CON_PARM_RANGE, 0, 255, 0 }, 507 CON_LAST_PARM }; 508 consoleAddToken(h1, "Channel", "Config Channel Params", (FuncToken_t) cmd_Scan_app_channel_config, aaa ); 509 } 510 consoleAddToken(h1, "cLear", "Clear All Params", (FuncToken_t) cmd_Scan_app_clear, NULL ); 511 consoleAddToken(h1, "Display", "Display Params", (FuncToken_t) cmd_Scan_app_display, NULL ); 512 513 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "configPolicy", "Configure scan manager scan policy" ) ); 514 { 515 ConParm_t aaa[] = { 516 { "Normal scan interval (msec)", CON_PARM_RANGE, 0, 3600000, 5000 }, 517 { "Deteriorating scan interval", CON_PARM_RANGE, 0, 3600000, 3000 }, 518 { "Max Track Failures", CON_PARM_RANGE, 0, 20, 3 }, 519 { "BSS list size", CON_PARM_RANGE, 0, 16, 8 }, 520 { "BSS Number to start discovery", CON_PARM_RANGE, 0, 16, 4 }, 521 { "Number of bands", CON_PARM_RANGE, 0, 2, 1 }, 522 CON_LAST_PARM }; 523 consoleAddToken(h1, "Gloabal", "Set Global policy Params", (FuncToken_t) cmd_Scan_policy_global_config, aaa ); 524 } 525 526 CHK_NULL(h2 = (handle_t) consoleAddDirExt( (handle_t) h1, "Band", "Configure band scan policy" ) ); 527 { 528 ConParm_t aaa[] = { 529 { "Index", CON_PARM_RANGE, 0, 1, 0 }, 530 { "Band", CON_PARM_RANGE, 0, 1, 0 }, 531 { "RSSI threshold", CON_PARM_RANGE| CON_PARM_SIGN, -100, 0, 0 }, 532 { "Channel number for discovery cycle", CON_PARM_RANGE, 0, 30, 5 }, 533 { "Number of Channels", CON_PARM_RANGE, 0, 30, 0 }, 534 CON_LAST_PARM }; 535 consoleAddToken(h2, "Misc", "Set misc band params", (FuncToken_t) cmd_Scan_band_global_config, aaa ); 536 } 537 { 538 ConParm_t aaa[] = { 539 { "Band Index", CON_PARM_RANGE, 0, 1, 0 }, 540 { "Channel Index", CON_PARM_RANGE, 0, 29, 0 }, 541 { "Channel", CON_PARM_RANGE, 0, 160, 0 }, 542 CON_LAST_PARM }; 543 consoleAddToken(h2, "Channel", "Set Channel params", (FuncToken_t) cmd_Scan_band_channel_config, aaa ); 544 } 545 { 546 ConParm_t aaa[] = { 547 { "Band Index", CON_PARM_RANGE, 0, 1, 0 }, 548 { "Scan Type", CON_PARM_RANGE, 0, 5, 0 }, 549 { "ET event", CON_PARM_RANGE, SCAN_ET_COND_DISABLE, SCAN_ET_COND_ANY_FRAME, SCAN_ET_COND_DISABLE }, 550 { "ET num of frames", CON_PARM_RANGE, 0, 255,0 }, 551 { "Triggering AC", CON_PARM_RANGE, 0, 255, 0 }, 552 { "Scan Duration (SPS)", CON_PARM_RANGE, 0, 100000000, 2000 }, 553 { "Max dwell time", CON_PARM_RANGE, 0, 100000000, 60000 }, 554 { "Min dwell time", CON_PARM_RANGE, 0, 100000000, 30000 }, 555 { "Probe req. number", CON_PARM_RANGE, 0, 255, 2 }, 556 557 { "Probe req. rate", CON_PARM_RANGE, 0, DRV_RATE_MASK_54_OFDM, 0 }, 558 559 { "TX power level", CON_PARM_RANGE, 0, MAX_TX_POWER, 0 }, 560 CON_LAST_PARM }; 561 consoleAddToken(h2, "Track", "Set tracking method params", (FuncToken_t) cmd_Scan_band_track_config, aaa ); 562 } 563 { 564 ConParm_t aaa[] = { 565 { "Band Index", CON_PARM_RANGE, 0, 1, 0 }, 566 { "Scan Type", CON_PARM_RANGE, 0, 5, 0 }, 567 { "ET event", CON_PARM_RANGE, SCAN_ET_COND_DISABLE, SCAN_ET_COND_ANY_FRAME, SCAN_ET_COND_DISABLE }, 568 { "ET num of frames", CON_PARM_RANGE, 0, 255,0 }, 569 { "Triggering AC", CON_PARM_RANGE, 0, 255, 0 }, 570 { "Scan Duration (SPS)", CON_PARM_RANGE, 0, 100000000, 2000 }, 571 { "Max dwell time", CON_PARM_RANGE, 0, 100000000, 60000 }, 572 { "Min dwell time", CON_PARM_RANGE, 0, 100000000, 30000 }, 573 { "Probe req. number", CON_PARM_RANGE, 0, 255, 2 }, 574 575 { "Probe req. rate", CON_PARM_RANGE, 0, DRV_RATE_MASK_54_OFDM, 0 }, 576 577 { "TX power level", CON_PARM_RANGE, 0, MAX_TX_POWER, 0 }, 578 CON_LAST_PARM }; 579 consoleAddToken(h2, "Discovery", "Set Discovery method params", (FuncToken_t) cmd_Scan_band_discover_config, aaa ); 580 } 581 { 582 ConParm_t aaa[] = { 583 { "Band Index", CON_PARM_RANGE, 0, 1, 0 }, 584 { "Scan Type", CON_PARM_RANGE, 0, 5, 0 }, 585 { "ET event", CON_PARM_RANGE, SCAN_ET_COND_DISABLE, SCAN_ET_COND_ANY_FRAME, SCAN_ET_COND_DISABLE }, 586 { "ET num of frames", CON_PARM_RANGE, 0, 255,0 }, 587 { "Triggering AC", CON_PARM_RANGE, 0, 255, 0 }, 588 { "Scan Duration (SPS)", CON_PARM_RANGE, 0, 100000000, 2000 }, 589 { "Max dwell time", CON_PARM_RANGE, 0, 100000000, 60000 }, 590 { "Min dwell time", CON_PARM_RANGE, 0, 100000000, 30000 }, 591 { "Probe req. number", CON_PARM_RANGE, 0, 255, 2 }, 592 593 { "Probe req. rate", CON_PARM_RANGE, 0, DRV_RATE_MASK_54_OFDM, 0 }, 594 595 { "TX power level", CON_PARM_RANGE, 0, MAX_TX_POWER, 0 }, 596 CON_LAST_PARM }; 597 consoleAddToken(h2, "Immediate", "Set Immediate method params", (FuncToken_t) cmd_Scan_band_immed_config, aaa ); 598 } 599 600 601 consoleAddToken(h1, "Display", "Display Policy Params", (FuncToken_t) cmd_Scan_policy_display, NULL ); 602 consoleAddToken(h1, "Clear", "Clear Polciy Params", (FuncToken_t) cmd_Scan_policy_clear, NULL ); 603 consoleAddToken(h1, "Store", "Send policy to scan manager", (FuncToken_t) cmd_Scan_policy_store, NULL ); 604 consoleAddToken(h1, "bsslisT", "Display BSS list", (FuncToken_t) cmd_Scan_get_bss_list, NULL ); 605 606 607 /************ ROAMING manager commands - start ********************/ 608 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "roaminG", "Roaming Manager configuration" ) ); 609 consoleAddToken(h, "Enable", "Enable Internal Roaming", (FuncToken_t) cmd_Roaming_enable, NULL ); 610 consoleAddToken(h, "Disable", "Disable Internal Roaming", (FuncToken_t) cmd_Roaming_disable, NULL ); 611 { 612 ConParm_t aaa[] = { 613 { "Low pass filter time", CON_PARM_DEFVAL, 0, 1440, 30 }, CON_LAST_PARM }; 614 consoleAddToken(h, "Low pass filter", "Time in sec ", (FuncToken_t) cmd_Roaming_lowPassFilter, aaa ); 615 } 616 { 617 ConParm_t aaa[] = { 618 { "Quality threshold", CON_PARM_DEFVAL | CON_PARM_SIGN, -150, 0, -100 }, CON_LAST_PARM }; 619 consoleAddToken(h, "Quality threshold", "Quality indicator", (FuncToken_t) cmd_Roaming_qualityIndicator, aaa ); 620 } 621 622 consoleAddToken(h, "Get ", "Get Roaming config params ", (FuncToken_t) cmd_Roaming_getConfParams, NULL ); 623 624 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "Thresholds", "Set Roaming MNGR triggers thresholds" ) ); 625 { 626 ConParm_t aaa[] = { 627 { "Tx retry", CON_PARM_DEFVAL, 0, 255, 20 }, CON_LAST_PARM }; 628 consoleAddToken(h1, "Tx retry ", "Consecutive number of TX retries", (FuncToken_t) cmd_Roaming_dataRetryThreshold, aaa ); 629 } 630 { 631 ConParm_t aaa[] = { 632 { "Bss loss", CON_PARM_DEFVAL, 1, 255, 4 }, CON_LAST_PARM }; 633 consoleAddToken(h1, "Bss loss ", "Number of TBTTs", (FuncToken_t) cmd_Roaming_numExpectedTbttForBSSLoss, aaa ); 634 } 635 { 636 ConParm_t aaa[] = { 637 { "tx Rate threshold", CON_PARM_DEFVAL, 0, 54, 2 }, CON_LAST_PARM }; 638 consoleAddToken(h1, "tx Rate threshold ", "TX rate (fallback) threshold", (FuncToken_t) cmd_Roaming_txRateThreshold, aaa ); 639 } 640 { 641 ConParm_t aaa[] = { 642 { "Low rssi threshold", CON_PARM_DEFVAL | CON_PARM_SIGN, -150, 0, -80 }, CON_LAST_PARM }; 643 644 consoleAddToken(h1, "Low rssi threshold ", "Low RSSI threshold", (FuncToken_t) cmd_Roaming_lowRssiThreshold, aaa ); 645 } 646 { 647 ConParm_t aaa[] = { 648 { "low Snr threshold", CON_PARM_DEFVAL, 0, 255, 10 }, CON_LAST_PARM }; 649 consoleAddToken(h1, "low Snr threshold ", "Low SNR threshold", (FuncToken_t) cmd_Roaming_lowSnrThreshold, aaa ); 650 } 651 { 652 ConParm_t aaa[] = { 653 { "low Quality for scan", CON_PARM_DEFVAL | CON_PARM_SIGN, -150, -40, -85 }, CON_LAST_PARM }; 654 consoleAddToken(h1, "low Quality for scan ", "Increase the background scan", (FuncToken_t) cmd_Roaming_lowQualityForBackgroungScanCondition, aaa ); 655 } 656 { 657 ConParm_t aaa[] = { 658 { "Normal quality for scan", CON_PARM_DEFVAL | CON_PARM_SIGN, -150, -40, -70 }, CON_LAST_PARM }; 659 consoleAddToken(h1, "Normal Quality for scan ", "Reduce the background scan", (FuncToken_t) cmd_Roaming_normalQualityForBackgroungScanCondition, aaa ); 660 } 661 { 662 ConParm_t aaa[] = { 663 { "Rssi filter weight", CON_PARM_DEFVAL, 0, 100, 10 }, CON_LAST_PARM }; 664 consoleAddToken(h1, "rssI filter weight ", "Set weight for the last RSSI value in the AVG calculation", (FuncToken_t) cmd_Roaming_rssiFilterWeight, aaa ); 665 } 666 { 667 ConParm_t aaa[] = { 668 { "Snr filter weight", CON_PARM_DEFVAL, 0, 100, 10 }, CON_LAST_PARM }; 669 consoleAddToken(h1, "snr Filter weight ", "Set weight for the last SNR value in the AVG calculation", (FuncToken_t) cmd_Roaming_snrFilterWeight, aaa ); 670 } 671 672 /************ ROAMING manager commands - end ********************/ 673 674 /* -------------------------------------------- QOS -------------------------------------------- */ 675 676 677 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "qOs", "Quality of service" ) ); 678 679 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "Upsd", "UPSD Sub-menu" ) ); 680 { ConParm_t TspecParams[] = { 681 { "UserPriority", CON_PARM_RANGE, 0, 7, 1 }, 682 { "NominalMSDUsize", CON_PARM_RANGE, 1, 2312, 1 }, 683 { "MeanDataRate (Bps units)", CON_PARM_RANGE, 0, 54000000, 0 }, 684 { "MinimumPHYRate (Mbps units)", CON_PARM_RANGE , 0, 54, 0 }, 685 { "SurplusBandwidthAllowance", CON_PARM_RANGE , 0, 7, 0 }, 686 { "UPSD Mode (0 - Legacy, 1 - U-APSD)", CON_PARM_RANGE , 0, 1, 0 }, 687 CON_LAST_PARM }; 688 consoleAddToken(h1, "Add", "Add TSPEC", (FuncToken_t) cmd_add_tspec, TspecParams ); 689 } 690 { 691 ConParm_t UPid[] = { { "User priority", CON_PARM_RANGE, 0, 7, 1 }, CON_LAST_PARM }; 692 consoleAddToken(h1, "Get", "Get TSPEC Params", (FuncToken_t) cmd_get_tspec_params, UPid ); 693 } 694 { 695 ConParm_t UPid[] = { { "UserPriority", CON_PARM_RANGE, 0, 7, 1 }, 696 { "ReasonCode", CON_PARM_RANGE, 32, 45, 32 }, CON_LAST_PARM }; 697 consoleAddToken(h1, "Delete", "Delete TSPEC", (FuncToken_t) cmd_delete_tspec, UPid ); 698 } 699 700 consoleAddToken(h1, "aP params", "Get AP QoS parameters", (FuncToken_t) cmd_get_ap_qos_params, NULL ); 701 consoleAddToken(h1, "ap Capabilities", "Get AP QoS capabilities parameters", (FuncToken_t) cmd_get_ap_qos_capabilities, NULL ); 702 703 { 704 ConParm_t ACid[] = { { "AC", CON_PARM_RANGE, 0, 3, 3 }, CON_LAST_PARM }; 705 consoleAddToken(h1, "ac Status", "Get Current AC Status", (FuncToken_t) cmd_get_ac_status, ACid ); 706 } 707 708 { 709 ConParm_t MediumUsageParams[] = { 710 { "AC", CON_PARM_RANGE, 0, 3, 3 }, 711 { "HighThreshold", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 100, 1 }, 712 { "LowThreshold", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 100, 1 }, 713 CON_LAST_PARM }; 714 consoleAddToken(h1, "Medium usage", "Medium usage threshold", (FuncToken_t) cmd_medium_usage_threshold, MediumUsageParams ); 715 } 716 { 717 ConParm_t PhyRateParams[] = { 718 { "AC", CON_PARM_RANGE, 0, 3, 3 }, 719 { "HighThreshold", CON_PARM_RANGE | CON_PARM_OPTIONAL, 1, 54, 1 }, 720 { "LowThreshold", CON_PARM_RANGE | CON_PARM_OPTIONAL, 1, 54, 1 }, 721 CON_LAST_PARM }; 722 consoleAddToken(h1, "phy Rate", "PHY rate threshold", (FuncToken_t) cmd_phy_rate_threshold, PhyRateParams ); 723 } 724 consoleAddToken(h1, "dEsired ps mode", "Get desired PS mode", (FuncToken_t) cmd_get_desired_ps_mode, NULL ); 725 726 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "Classifier", "Classifier sub-menu" ) ); 727 { 728 ConParm_t aaa[] = {{ "con0 Port = ", CON_PARM_RANGE, 0, 65535, 0 }, 729 { "con0 Pri = ", CON_PARM_RANGE, 0, 7, 0 }, 730 { "con1 Port = ", CON_PARM_RANGE, 0, 65535, 0 }, 731 { "con1 Pri = ", CON_PARM_RANGE, 0, 7, 0 }, 732 { "con2 Port = ", CON_PARM_RANGE, 0, 65535, 0 }, 733 { "con2 Pri = ", CON_PARM_RANGE, 0, 7, 0 }, 734 { "con3 Port = ", CON_PARM_RANGE, 0, 65535, 0 }, 735 { "con3 Pri = ", CON_PARM_RANGE, 0, 7, 0 }, 736 { "cons Ip1 = ", CON_PARM_RANGE, 0,255 , 0 }, 737 { "cons Ip2 = ", CON_PARM_RANGE, 0,255 , 0 }, 738 { "cons Ip3 = ", CON_PARM_RANGE, 0,255 , 0 }, 739 { "cons Ip4 = ", CON_PARM_RANGE, 0,255 , 0 }, 740 CON_LAST_PARM }; 741 consoleAddToken(h1, "TxClassifier", "Config Tx Classifier", (FuncToken_t) cmd_config_tx_classifier, aaa ); 742 } 743 744 { ConParm_t aaa[] = { 745 { "Type", CON_PARM_RANGE, DSCP_CLSFR, CLSFR_TYPE_MAX, 0 }, 746 { "D-Tag", CON_PARM_RANGE, CLASSIFIER_DTAG_MIN, CLASSIFIER_DTAG_MAX, CLASSIFIER_DTAG_DEF }, 747 { "Param1", CON_PARM_RANGE, 0, 65535, 0 }, 748 { "Ip1", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 749 { "Ip2", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 750 { "Ip3", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 751 { "Ip4", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 752 CON_LAST_PARM }; 753 consoleAddToken(h1, "Insert ", "Insert new classification entry", (FuncToken_t) cmd_insert_clsfr_entry, aaa ); 754 } 755 756 { ConParm_t aaa[] = { 757 { "Type", CON_PARM_RANGE, DSCP_CLSFR, CLSFR_TYPE_MAX, 0 }, 758 { "D-Tag", CON_PARM_RANGE, CLASSIFIER_DTAG_MIN, CLASSIFIER_DTAG_MAX, CLASSIFIER_DTAG_DEF }, 759 { "Param1", CON_PARM_RANGE, 0, 65535, 0 }, 760 { "Ip1", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 761 { "Ip2", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 762 { "Ip3", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 763 { "Ip4", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 764 CON_LAST_PARM }; 765 consoleAddToken(h1, "Remove", "Remove classification entry", (FuncToken_t) cmd_remove_clsfr_entry, aaa ); 766 } 767 768 { 769 ConParm_t aaa[] = { 770 { "acID", CON_PARM_RANGE, 0, 3, 0 }, 771 { "MaxLifeTime", CON_PARM_RANGE , 0, 1024, 0 }, 772 { "Reserved and ignored (ShortMaxRetries)", CON_PARM_RANGE , 0, 255, 0 }, 773 { "Reserved and ignored (LongMaxRetries)", CON_PARM_RANGE , 0, 255, 0 }, 774 { "Reserved and ignored (RxTimeout)", CON_PARM_RANGE , 0, 65535, 0 }, 775 { "Voice delivery Protocol (VO QUEUE ONLY : 0 - None, 1 - PS POLL)", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 1, 0 }, 776 { "PS Delivery Protocol (1 - U-APSD, 2 - Legacy)", CON_PARM_RANGE | CON_PARM_OPTIONAL, 1 /*PS_SCHEME_UPSD_TRIGGER*/, 2/*PS_SCHEME_LEGACY_PSPOLL*/, 2/*PS_SCHEME_LEGACY_PSPOLL*/}, 777 CON_LAST_PARM }; 778 consoleAddToken(h, "QosParams ", "Set QOS Parameters", (FuncToken_t) cmd_set_qos_params, aaa ); 779 } 780 781 { 782 ConParm_t aaa[] = { 783 { "dtag0_to_ac", CON_PARM_RANGE, 0, 3, 0 }, 784 { "dtag1_to_ac", CON_PARM_RANGE, 0, 3, 0 }, 785 { "dtag2_to_ac", CON_PARM_RANGE, 0, 3, 0 }, 786 { "dtag3_to_ac", CON_PARM_RANGE, 0, 3, 0 }, 787 { "dtag4_to_ac", CON_PARM_RANGE, 0, 3, 0 }, 788 { "dtag5_to_ac", CON_PARM_RANGE, 0, 3, 0 }, 789 { "dtag6_to_ac", CON_PARM_RANGE, 0, 3, 0 }, 790 { "dtag7_to_ac", CON_PARM_RANGE, 0, 3, 0 }, 791 CON_LAST_PARM }; 792 consoleAddToken(h, "Set_dtag2ac_mapping_table ", "Set dtag2ac mapping table", (FuncToken_t) cmd_set_dtag_to_ac_mapping_table, aaa ); 793 } 794 795 { 796 ConParm_t aaa[] = { 797 { "Enable", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 1, 0 }, 798 { "vadTimerDuration", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 100, 0 }, 799 CON_LAST_PARM }; 800 consoleAddToken(h, "setVad ", "Set VAD", (FuncToken_t) cmd_set_vad, aaa ); 801 } 802 { 803 ConParm_t aaa[] = { { "AC", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 3, 3 }, CON_LAST_PARM }; 804 consoleAddToken(h, "Poll AP packets", "Poll Ap Packets", (FuncToken_t) cmd_poll_ap_packets, aaa ); 805 } 806 807 { 808 ConParm_t aaa[] = { 809 { "PsPoll", CON_PARM_RANGE, 0, 65000, 0 }, 810 { "UPSD", CON_PARM_RANGE , 0, 65000, 0 }, 811 CON_LAST_PARM }; 812 consoleAddToken(h, "Rx TimeOut ", "Rx TimeOut ", (FuncToken_t) cmd_set_rxTimeOut_params, aaa ); 813 } 814 { 815 ConParm_t aaa[] = { 816 { "MaxRxLifeTime", CON_PARM_OPTIONAL|CON_PARM_RANGE, 0, 0xffffffff, 0 }, 817 CON_LAST_PARM }; 818 consoleAddToken(h, "Max Rx Lifetime", "Max Rx Lifetime", (FuncToken_t) cmd_MaxRxLifetime_params, aaa ); 819 } 820 821 822 823 824 825 /* -------------------------------------------- Power Management -------------------------------------------- */ 826 827 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "poWer", "Power Management" ) ); 828 { 829 /* Set Power Mode Command */ 830 ConParm_t powerModeCmd[] = { 831 { "PowerMode", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 3, 1 }, /* Min/Max/Def */ 832 CON_LAST_PARM }; 833 consoleAddToken(h, "set_Power_mode", "Set user power mode", (FuncToken_t) cmd_set_power_mode, powerModeCmd ); 834 835 } 836 { 837 /* Set Power Save Power level Command */ 838 ConParm_t powerSavePowerLevelCmd[] = { 839 { "PowerSavePowerLevel", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 2, 2 }, /* Min/Max/Def */ 840 CON_LAST_PARM }; 841 consoleAddToken(h, "set_powersave_powerLevel", "Set the Power level during PowerSave", (FuncToken_t) cmd_set_PowerSave_PowerLevel, powerSavePowerLevelCmd ); 842 843 } 844 { 845 /* Set default Power level Command */ 846 ConParm_t defaultPowerLevelCmd[] = { 847 { "DefaultPowerLevel", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 2, 2 }, /* Min/Max/Def */ 848 CON_LAST_PARM }; 849 consoleAddToken(h, "set_deFault_powerlevel", "Set the default power level", (FuncToken_t) cmd_set_Default_PowerLevel, defaultPowerLevelCmd ); 850 851 } 852 { 853 /* Set doze mode in auto power mode */ 854 ConParm_t powerSaveDozeMode[] = { 855 { "DozeModeInAuto", CON_PARM_RANGE | CON_PARM_OPTIONAL, AUTO_POWER_MODE_DOZE_MODE_MIN_VALUE, AUTO_POWER_MODE_DOZE_MODE_MAX_VALUE, AUTO_POWER_MODE_DOZE_MODE_DEF_VALUE }, 856 CON_LAST_PARM }; 857 consoleAddToken(h, "set_doZe_mode_in_auto", "Set doze mode in auto power mode", (FuncToken_t) cmd_set_DozeModeInAutoPowerLevel, powerSaveDozeMode ); 858 859 } 860 { 861 ConParm_t TrafficIntensityParams[] = { 862 { "HighThreshold (packets/sec)", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 1000, 100 }, 863 { "LowThreshold (packets/sec)", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 1000, 25 }, 864 { "CheckInterval (ms)", CON_PARM_RANGE | CON_PARM_OPTIONAL, 100, 10000, 1000 }, 865 CON_LAST_PARM }; 866 consoleAddToken(h, "traffic_Thresholds", "Set/Get traffic intensity thresholds", (FuncToken_t) cmd_traffic_intensity_threshold, TrafficIntensityParams ); 867 } 868 consoleAddToken(h, "eNable", "enable traffic intensity events", (FuncToken_t) cmd_enable_traffic_events, NULL ); 869 consoleAddToken(h, "Disable", "disable traffic intensity events", (FuncToken_t) cmd_disable_traffic_events, NULL ); 870 871 /* -------------------------------------------- Events -------------------------------------------- */ 872 873 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "eVents", "Events" ) ); 874 { 875 ConParm_t aaa[] = { { "type", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 876 consoleAddToken(h, "Register", "IPC events", (FuncToken_t)cmd_events_register, aaa); 877 } 878 { 879 ConParm_t aaa[] = { { "type", CON_PARM_OPTIONAL, 0, 0, 0 }, CON_LAST_PARM }; 880 consoleAddToken(h, "Unregister", "IPC events", (FuncToken_t)cmd_events_unregister, aaa); 881 } 882 CHK_NULL(h = (handle_t) consoleAddDirExt( NULL, "File", "restore configuration" ) ); 883 { 884 ConParm_t aaa[] = { { "filename", CON_PARM_STRING, 0, 128, 0 }, CON_LAST_PARM }; 885 consoleAddToken(h, "Load", "Load profile", (FuncToken_t) cmd_file_load, aaa ); 886 } 887 888 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "Bt CoExsistance", "BT - Wlan CoExsistance" ) ); 889 { 890 ConParm_t aaa[] = { { "enable", CON_PARM_RANGE | CON_PARM_OPTIONAL, 891 SOFT_GEMINI_ENABLED_MIN, SOFT_GEMINI_ENABLED_MAX, 0 }, CON_LAST_PARM }; 892 consoleAddToken(h, "Enable", "Enable BT Coexistense", (FuncToken_t) cmd_bt_coe_enable, aaa ); 893 } 894 { 895 ConParm_t aaa[] = { { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 896 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 897 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 898 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 899 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 900 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 901 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 902 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 903 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 904 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 905 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 906 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 907 { "rate", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 255, 0 }, 908 CON_LAST_PARM }; 909 consoleAddToken(h, "Rate", "Select Rates", (FuncToken_t) cmd_bt_coe_rate, aaa ); 910 } 911 { 912 ConParm_t aaa[] = { 913 { "wlanRxMinRateToRespectBtHp", CON_PARM_RANGE | CON_PARM_OPTIONAL , 914 SOFT_GEMINI_PARAMS_WLAN_RX_MIN_RATE_MIN , SOFT_GEMINI_PARAMS_WLAN_RX_MIN_RATE_MAX, 0 }, 915 { "btHpMaxTime", CON_PARM_RANGE | CON_PARM_OPTIONAL, 916 SOFT_GEMINI_PARAMS_BT_HP_MAXTIME_MIN, SOFT_GEMINI_PARAMS_BT_HP_MAXTIME_MAX, 0 }, 917 { "wlanHpMaxTime", CON_PARM_RANGE | CON_PARM_OPTIONAL , 918 SOFT_GEMINI_PARAMS_WLAN_HP_MAX_TIME_MIN, SOFT_GEMINI_PARAMS_WLAN_HP_MAX_TIME_MAX, 0 }, 919 { "senseDisableTimer", CON_PARM_RANGE | CON_PARM_OPTIONAL , 920 SOFT_GEMINI_PARAMS_SENSE_DISABLE_TIMER_MIN, SOFT_GEMINI_PARAMS_SENSE_DISABLE_TIMER_MAX, 0 }, 921 { "protectiveRxTimeBeforeBtHp", CON_PARM_RANGE | CON_PARM_OPTIONAL , 922 SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_MAX, 0 }, 923 { "protectiveTxTimeBeforeBtHp", CON_PARM_RANGE | CON_PARM_OPTIONAL , 924 SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_MAX, 0 }, 925 { "protectiveRxTimeBeforeBtHpFastAp", CON_PARM_RANGE | CON_PARM_OPTIONAL , 926 SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_FAST_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_FAST_MAX, 0 }, 927 { "protectiveTxTimeBeforeBtHpFastAp", CON_PARM_RANGE | CON_PARM_OPTIONAL , 928 SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_FAST_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_FAST_MAX, 0 }, 929 { "protectiveWlanCycleTimeForFastAp", CON_PARM_RANGE | CON_PARM_OPTIONAL , 930 SOFT_GEMINI_PARAMS_CYCLE_TIME_FAST_MIN, SOFT_GEMINI_PARAMS_CYCLE_TIME_FAST_MAX, 0 }, 931 { "btAntiStarvationPeriod", CON_PARM_RANGE | CON_PARM_OPTIONAL , 932 SOFT_GEMINI_PARAMS_ANTI_STARVE_PERIOD_MIN , SOFT_GEMINI_PARAMS_ANTI_STARVE_PERIOD_MAX, 0 }, 933 { "timeoutNextBtLpPacket", CON_PARM_RANGE | CON_PARM_OPTIONAL , 934 SOFT_GEMINI_PARAMS_TIMEOUT_NEXT_BT_LP_PACKET_MIN, SOFT_GEMINI_PARAMS_TIMEOUT_NEXT_BT_LP_PACKET_MAX,0 }, 935 { "wakeUpTimeBeforeBeacon", CON_PARM_RANGE | CON_PARM_OPTIONAL , 936 SOFT_GEMINI_PARAMS_TIME_BEFORE_BEACON_MIN , SOFT_GEMINI_PARAMS_TIME_BEFORE_BEACON_MAX, 0 }, 937 { "hpdmMaxGuardTime", CON_PARM_RANGE | CON_PARM_OPTIONAL , 938 SOFT_GEMINI_PARAMS_HPDM_MAX_TIME_MIN , SOFT_GEMINI_PARAMS_HPDM_MAX_TIME_MAX, 0 }, 939 { "timeoutNextWlanPacket", CON_PARM_RANGE | CON_PARM_OPTIONAL , 940 SOFT_GEMINI_PARAMS_TIME_OUT_NEXT_WLAN_MIN , SOFT_GEMINI_PARAMS_TIME_OUT_NEXT_WLAN_MAX, 0 }, 941 { "sgAntennaType", CON_PARM_RANGE | CON_PARM_OPTIONAL , 942 SOFT_GEMINI_PARAMS_SG_ANTENNA_TYPE_MIN, SOFT_GEMINI_PARAMS_SG_ANTENNA_TYPE_MAX , 0 }, 943 { "signalingType", CON_PARM_RANGE | CON_PARM_OPTIONAL , 944 SOFT_GEMINI_PARAMS_SIGNALING_TYPE_MIN, SOFT_GEMINI_PARAMS_SIGNALING_TYPE_MAX , 0 }, 945 { "afhLeverageOn", CON_PARM_RANGE | CON_PARM_OPTIONAL , 946 SOFT_GEMINI_PARAMS_AFH_LEVERAGE_ON_MIN, SOFT_GEMINI_PARAMS_AFH_LEVERAGE_ON_MAX, 0 }, 947 { "numberQuietCycle", CON_PARM_RANGE | CON_PARM_OPTIONAL , 948 SOFT_GEMINI_PARAMS_NUMBER_QUIET_CYCLE_MIN, SOFT_GEMINI_PARAMS_NUMBER_QUIET_CYCLE_MAX , 0 }, 949 { "maxNumCts", CON_PARM_RANGE | CON_PARM_OPTIONAL , 950 SOFT_GEMINI_PARAMS_MAX_NUM_CTS_MIN, SOFT_GEMINI_PARAMS_MAX_NUM_CTS_MAX, 0 }, 951 { "numberOfWlanPackets", CON_PARM_RANGE | CON_PARM_OPTIONAL , 952 SOFT_GEMINI_PARAMS_NUMBER_OF_WLAN_PACKETS_MIN, SOFT_GEMINI_PARAMS_NUMBER_OF_WLAN_PACKETS_MAX,0 }, 953 { "numberOfBtPackets", CON_PARM_RANGE | CON_PARM_OPTIONAL , 954 SOFT_GEMINI_PARAMS_NUMBER_OF_BT_PACKETS_MIN, SOFT_GEMINI_PARAMS_NUMBER_OF_BT_PACKETS_MAX,0 }, 955 { "numberOfMissedRxForAvalancheTrigger", CON_PARM_RANGE | CON_PARM_OPTIONAL , 956 SOFT_GEMINI_PARAMS_RX_FOR_AVALANCHE_MIN, SOFT_GEMINI_PARAMS_RX_FOR_AVALANCHE_MAX, 0 }, 957 { "wlanElpHpSupport", CON_PARM_RANGE | CON_PARM_OPTIONAL , 958 SOFT_GEMINI_PARAMS_ELP_HP_MIN, SOFT_GEMINI_PARAMS_ELP_HP_MAX, 0 }, 959 { "btAntiStarvationNumberOfCyclesWithinThePeriod", CON_PARM_RANGE | CON_PARM_OPTIONAL , 960 SOFT_GEMINI_PARAMS_ANTI_STARVE_NUM_CYCLE_MIN , SOFT_GEMINI_PARAMS_ANTI_STARVE_NUM_CYCLE_MAX, 0 }, 961 { "ackModeDuringBtLpInDualAnt", CON_PARM_RANGE | CON_PARM_OPTIONAL , 962 SOFT_GEMINI_PARAMS_ACK_MODE_MIN , SOFT_GEMINI_PARAMS_ACK_MODE_MAX, 0 }, 963 { "allowPaSdToggleDuringBtActivityEnable", CON_PARM_RANGE | CON_PARM_OPTIONAL , 964 SOFT_GEMINI_PARAMS_ALLOW_PA_SD_MIN , SOFT_GEMINI_PARAMS_ALLOW_PA_SD_MAX, 0 }, 965 { "sgAutoModeNoCts", CON_PARM_RANGE | CON_PARM_OPTIONAL , 966 SOFT_GEMINI_PARAMS_AUTO_MODE_NO_CTS_MIN , SOFT_GEMINI_PARAMS_AUTO_MODE_NO_CTS_MAX, 0 }, 967 { "numOfBtHpRespectedReq", CON_PARM_RANGE | CON_PARM_OPTIONAL , 968 SOFT_GEMINI_PARAMS_BT_HP_RESPECTED_MIN , SOFT_GEMINI_PARAMS_BT_HP_RESPECTED_MAX, 0 }, 969 CON_LAST_PARM }; 970 971 consoleAddToken(h, "Config", "Parameters configuration", (FuncToken_t) cmd_bt_coe_config, aaa ); 972 } 973 { 974 ConParm_t aaa[] = { { "status", CON_PARM_RANGE | CON_PARM_OPTIONAL, 0, 3, 0 }, CON_LAST_PARM }; 975 consoleAddToken(h, "Status", "Get status", (FuncToken_t) cmd_bt_coe_get_status, aaa ); 976 } 977#ifdef EXC_MODULE_INCLUDED 978 /************ MEASUREMENT commands - start ********************/ 979 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "measuremenT", "Measurement configuration" ) ); 980 consoleAddToken(h, "Enable", "Enable Measurement", (FuncToken_t) cmd_Measurement_enable, NULL ); 981 consoleAddToken(h, "Disable", "Disable Measurement", (FuncToken_t) cmd_Measurement_disable, NULL ); 982 { 983 ConParm_t aaa[] = { 984 { "Change max duration", CON_PARM_RANGE, 0, 2000, 300 }, CON_LAST_PARM }; 985 consoleAddToken(h, "Max duration", "Time in msec ", (FuncToken_t) cmd_Measurement_setMaxDuration, aaa ); 986 } 987 /************ MEASUREMENT commands - end ********************/ 988#endif /* EXC_MODULE_INCLUDED*/ 989 990#ifdef TI_DBG 991 992 /* -------------------------------------------- Report -------------------------------------------- */ 993 994 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) NULL, "Report", "Debug features" ) ); 995 { 996 ConParm_t aaa[] = 997 { 998 { "module table", CON_PARM_STRING | CON_PARM_OPTIONAL , WLAN_MAX_LOG_MODULES, WLAN_MAX_LOG_MODULES, 0 }, 999 CON_LAST_PARM }; 1000 consoleAddToken(h1, "Set", "set report module table", (FuncToken_t) cmd_report_set, aaa ); 1001 } 1002 { 1003 ConParm_t aaa[] = 1004 { 1005 { "module", CON_PARM_OPTIONAL, 0, 0, 0 }, 1006 CON_LAST_PARM 1007 }; 1008 consoleAddToken(h1, "Add", "set report for specified module", (FuncToken_t) cmd_report_add, aaa ); 1009 } 1010 { 1011 ConParm_t aaa[] = 1012 { 1013 { "module", CON_PARM_OPTIONAL, 0, 0, 0 }, 1014 CON_LAST_PARM 1015 }; 1016 consoleAddToken(h1, "Clear", "clear report for specified module", (FuncToken_t) cmd_report_clear, aaa ); 1017 } 1018 { 1019 ConParm_t aaa[] = { { "level", CON_PARM_OPTIONAL , 0, 0, 0 }, CON_LAST_PARM }; 1020 consoleAddToken(h1, "Level", "set report severity level", (FuncToken_t) cmd_report_severity_level, aaa ); 1021 } 1022 { 1023 ConParm_t aaa[] = { { "osDbgState", CON_PARM_OPTIONAL , 0, 0, 0 }, CON_LAST_PARM }; 1024 consoleAddToken(h1, "Osdbgstate", "set OS abstraction layer debug dtate", (FuncToken_t) cmd_report_os_dbg_state, aaa ); 1025 } 1026 1027 /* -------------------------------------------- Debug -------------------------------------------- */ 1028 1029 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "dEbug", "Debug features" ) ); 1030 { 1031 ConParm_t aaa[] = {{ "reg_num", 0, 0, 0, 0 }, 1032 { "value", CON_PARM_OPTIONAL , 0, 0, 0 }, CON_LAST_PARM }; 1033 consoleAddToken(h, "Register", "read/write HW register", (FuncToken_t) cmd_hw_register, aaa ); 1034 } 1035 1036 { 1037 ConParm_t aaa[] = {{ "func_num", CON_PARM_OPTIONAL, 0, 0, 0 }, 1038 { "param", CON_PARM_OPTIONAL , 0, 0, 0 }, CON_LAST_PARM }; 1039 consoleAddToken(h, "print", "print driver debug info", (FuncToken_t) cmd_debug_driver_print, aaa ); 1040 } 1041 1042 1043 { 1044 ConParm_t aaa[] = { { "func_num", CON_PARM_OPTIONAL, 0, 0, 0 }, 1045 { "string param", CON_PARM_LINE, 0, 128, 0 }, 1046 CON_LAST_PARM }; 1047 consoleAddToken(h, "Buffer", "Pass the buffer to the driver", (FuncToken_t)cmd_debug_buffer_put, aaa ); 1048 } 1049 1050#ifdef DRIVER_PROFILING 1051 consoleAddToken(h, "proFile report", "Show driver resource usage", (FuncToken_t) cmd_profile_report, NULL ); 1052 { 1053 ConParm_t aaa[] = {{ "command_type", CON_PARM_DEFVAL | CON_PARM_RANGE, 1, 3, 3 }, 1054 { "resolution", CON_PARM_OPTIONAL , 0, 0, 0 }, 1055 CON_LAST_PARM 1056 }; 1057 consoleAddToken(h, "Cpu estimator command", "start/stop/reset cpu estimator", (FuncToken_t) cmd_profile_cpu_estimator_command, aaa ); 1058 } 1059 1060#endif 1061 1062 1063#endif /*TI_DBG*/ 1064 1065 /* -------------------------------------------- PLT -------------------------------------------- */ 1066 1067 CHK_NULL(h = (handle_t) consoleAddDirExt( (handle_t) NULL, "pLt", "PLatform table Testings" ) ); 1068 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "Register", "Register Read/Write" ) ); 1069 { 1070 ConParm_t aaa[] = {{ "address(hex)", CON_PARM_STRING, 1, 8, 0 }, 1071 CON_LAST_PARM }; 1072 consoleAddToken(h1, "Read", "read register", (FuncToken_t) cmd_PLT_RegisterRead, aaa ); 1073 } 1074 1075 { 1076 ConParm_t aaa[] = {{ "address(hex)", CON_PARM_STRING, 1, 8, 0 }, 1077 { "value(hex)", CON_PARM_STRING, 1, 8, 0 }, 1078 CON_LAST_PARM }; 1079 consoleAddToken(h1, "Write", "write register", (FuncToken_t) cmd_PLT_RegisterWrite, aaa ); 1080 } 1081 1082 { 1083 ConParm_t aaa[] = {{ "Band", CON_PARM_OPTIONAL|CON_PARM_RANGE, 0, 2, 0 }, 1084 { "Channel", CON_PARM_OPTIONAL|CON_PARM_RANGE , 1, 161, 0 }, CON_LAST_PARM }; 1085 consoleAddToken(h, "rAdio tune", "Set the RX channel", (FuncToken_t) cmd_PLT_RadioTune, aaa ); 1086 } 1087 1088 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "rx Per", "RX PER test" ) ); 1089 { 1090 ConParm_t aaa[] = {CON_LAST_PARM}; 1091 consoleAddToken(h1, "Start", "Stop RX PER counters", (FuncToken_t) cmd_PLT_RxPerStart, aaa ); 1092 consoleAddToken(h1, "stoP", "Stop RX PER counters", (FuncToken_t) cmd_PLT_RxPerStop, aaa ); 1093 consoleAddToken(h1, "Clear", "Clear RX PER counters", (FuncToken_t) cmd_PLT_RxPerClear, aaa ); 1094 consoleAddToken(h1, "Get", "Get RX PER counters", (FuncToken_t) cmd_PLT_RxPerGet, aaa ); 1095 } 1096 1097 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "Tx", "TX test test" ) ); 1098 { 1099 ConParm_t aaa[] = {{ "Band", CON_PARM_OPTIONAL|CON_PARM_RANGE, 0, 2, 0 }, 1100 { "Channel", CON_PARM_OPTIONAL , 1, 161, 0 }, CON_LAST_PARM }; 1101 consoleAddToken(h1, "Cw", "Start CW test", (FuncToken_t) cmd_PLT_TxCW, aaa ); 1102 } 1103 { 1104 ConParm_t aaa[] = {{ "Band (0 - 2.4Ghz(B/G), 1 - 5Ghz(A), 2 - Japan(4.9Ghz))", CON_PARM_OPTIONAL|CON_PARM_RANGE, 0, 2, 0 }, 1105 { "Channel: (1..14(2.4Ghz), 1..180(5Ghz))", CON_PARM_OPTIONAL|CON_PARM_RANGE , 1, 161, 14 }, 1106 { "Rate: 1-1M,2-2M,3-5.5M,4-11M,6-6M,7-9M,8-12M,9-18M.10-24M,11-36M,12-48M,13-54M", CON_PARM_OPTIONAL|CON_PARM_RANGE , 1, 13, 13 }, 1107 { "preamble (0-long, 1-short)", CON_PARM_OPTIONAL|CON_PARM_RANGE , 0, 1, 1 }, 1108 { "InterPacketDelay- Delay between packets (uSec)", CON_PARM_OPTIONAL|CON_PARM_RANGE , 0, 0xffffffff, 0 }, 1109 { "Number of TX frames (0 - endless)", CON_PARM_OPTIONAL|CON_PARM_RANGE , 0, 0xffffffff, 100 }, 1110 { "Test mode (5-Random data, 9-ZOZO(0,1,0,1,...))", CON_PARM_OPTIONAL|CON_PARM_RANGE , 5, 9, 9 }, 1111 { "Sequance number mode (0 - fixed, 1 - incremented)", CON_PARM_OPTIONAL|CON_PARM_RANGE , 0, 1, 0 }, 1112 { "packet data length [bytes] (0 - 2284)", CON_PARM_OPTIONAL|CON_PARM_RANGE , 0, 2284, 100 }, 1113 { "peer mac address (xx:xx:xx:xx:xx:xx)", CON_PARM_STRING, 0, 18, 0 }, 1114 CON_LAST_PARM }; 1115 consoleAddToken(h1, "coNtinues", "Start TX continues test", (FuncToken_t) cmd_PLT_TxContinues, aaa ); 1116 1117 } 1118 { 1119 ConParm_t aaa[] = {CON_LAST_PARM}; 1120 consoleAddToken(h1, "Stop", "Stop TX tests", (FuncToken_t) cmd_PLT_TxStop, aaa ); 1121 } 1122 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "Mib", "Mibs" ) ); 1123 consoleAddToken(h1, "Counter table", "Read_MIB_CounterTable", (FuncToken_t) cmd_PLT_MIB_CounterTable, NULL); 1124 consoleAddToken(h1, "station Id", "MIB_Station_id", (FuncToken_t) cmd_PLT_MIB_StationID, NULL ); 1125 1126 /* -------------------------------------------- PLT Calibrations -------------------------------------------- */ 1127 CHK_NULL(h1 = (handle_t) consoleAddDirExt( (handle_t) h, "Calibration", "RX/TX calibrations" ) ); 1128 { 1129 ConParm_t aaa[] = { 1130 { "Expected Rssi (Input signal generated power [1/16 db])", CON_PARM_RANGE|CON_PARM_SIGN, -2000, 2000, 0 }, 1131 { "Channel", CON_PARM_RANGE|CON_PARM_DEFVAL , 1, 161, 1 }, 1132 { "Band (0- 2.4Ghz, 1- 5Ghz, 2- 4.9Ghz)", CON_PARM_RANGE|CON_PARM_DEFVAL , 0, 2, 0 }, 1133 { "Interval between Samples (uSec)", CON_PARM_OPTIONAL|CON_PARM_DEFVAL , 0, 0xffff, 100 }, 1134 { "Number of samples", CON_PARM_OPTIONAL|CON_PARM_RANGE|CON_PARM_DEFVAL , 1, 2000, 1000 }, 1135 CON_LAST_PARM }; 1136 consoleAddToken(h1, "RX", "RX calibration", (FuncToken_t) cmd_PLT_RxCal, aaa ); 1137 } 1138 1139 CHK_NULL(h2 = (handle_t) consoleAddDirExt( (handle_t) h1, "TX", "TX calibrations" ) ); 1140 { 1141 ConParm_t aaa[] = {{ "Ref Tx power dBM/10 ",CON_PARM_RANGE, MIN_TX_POWER, MAX_TX_POWER, 0 }, 1142 CON_LAST_PARM }; 1143 consoleAddToken(h2, "Start", "Start TX calibration", (FuncToken_t) cmd_PLT_TxCalStart, aaa ); 1144 } 1145 consoleAddToken(h2, "stoP", "Stop TX calibration", (FuncToken_t) cmd_PLT_TxCalStop, NULL ); 1146 consoleAddToken(h2, "gain Get", "Gain get", (FuncToken_t) cmd_PLT_TxCalGainGet, NULL ); 1147 { 1148 ConParm_t aaa[] = {{ "Gain adjust",CON_PARM_RANGE|CON_PARM_SIGN, 0, 124, 0 }, 1149 CON_LAST_PARM }; 1150 consoleAddToken(h2, "gain Adjust", "Set gain", (FuncToken_t) cmd_PLT_TxCalGainAdjust, aaa ); 1151 } 1152 1153 consoleAddToken(h1, "Get_NVS_Buffer", "Get the NVS buffers needed for update", (FuncToken_t) cmd_PLT_RxTxCalNVSUpdateBuffer, NULL ); 1154 1155 /* -------------------------------------------- Root -------------------------------------------- */ 1156 1157 consoleAddToken(NULL, "aboUt", "About", (FuncToken_t) cmd_show_about, NULL ); 1158 consoleAddToken(NULL, "Quit", "quit", (FuncToken_t) quit_func, NULL ); 1159#ifdef _WINDOWS 1160#endif /* ifdef _WINDOWS */ 1161 1162 return 0; 1163} 1164 1165 1166 /* Return '0' if success */ 1167int init_driver( char *adapter_name, char *eeprom_file_name, char *init_file_name, char *firmware_file_name ) 1168{ 1169#ifndef _WINDOWS 1170 FILE *f1=NULL, *f2=NULL, *f3 = NULL; 1171 UINT32 eeprom_image_length=0; 1172 UINT32 init_file_length=0; 1173 UINT32 firmware_image_length = 0; 1174 UINT32 req_size; 1175 tiwlan_dev_init_t *init_info=NULL; 1176#endif 1177 int rc = -1; 1178 ConParm_t param; 1179 tiUINT32 tmpData = 1; 1180 1181//TRS:MEB add ability to convert adapter_name to tiCHAR type 1182#ifndef _WINDOWS 1183 if( !adapter_name || !*adapter_name ) 1184 return rc; 1185 1186 g_id_adapter = TI_AdapterInit( adapter_name ); 1187 1188#else 1189#endif 1190//TRS end 1191 1192#ifdef _WINDOWS 1193#endif 1194 1195#ifndef _WINDOWS 1196 /* Send init request to the driver */ 1197 if (eeprom_file_name && 1198 (f1 = fopen(eeprom_file_name, "r"))!=NULL) 1199 { 1200 if (fseek(f1, 0, SEEK_END)) 1201 { 1202 fprintf(stderr, "Cannot seek eeprom image file <%s>\n", eeprom_file_name); 1203 goto init_driver_end; 1204 } 1205 eeprom_image_length = ftell(f1); 1206 printf("NVS size = %d\n", eeprom_image_length); /* Dm: */ 1207 rewind(f1); 1208 } 1209#ifdef FIRMWARE_DYNAMIC_LOAD 1210 if (firmware_file_name && 1211 (f2 = fopen(firmware_file_name, "r"))!=NULL) 1212 { 1213 if (fseek(f2, 0, SEEK_END)) 1214 { 1215 fprintf(stderr, "Cannot seek firmware file <%s>\n", firmware_file_name); 1216 goto init_driver_end; 1217 } 1218 firmware_image_length = ftell(f2); 1219 rewind(f2); 1220 } 1221#endif 1222 if (init_file_name && 1223 (f3 = fopen(init_file_name, "r"))!=NULL) 1224 { 1225 if (fseek(f3, 0, SEEK_END)) 1226 { 1227 fprintf(stderr, "Cannot seek init file <%s>\n", init_file_name); 1228 goto init_driver_end; 1229 } 1230 init_file_length = ftell(f3); 1231 rewind(f3); 1232 } 1233 1234 /* Now when we can calculate the request length. allocate it and read the files */ 1235 req_size = offsetof(tiwlan_dev_init_t, data)+ eeprom_image_length + (init_file_length+1) + firmware_image_length; 1236 init_info = (tiwlan_dev_init_t *)malloc(req_size); 1237 if (!init_info) 1238 { 1239 fprintf(stderr, "No memory to allocate init request (%d bytes)\n", req_size); 1240 goto init_driver_end; 1241 } 1242 init_info->eeprom_image_length = eeprom_image_length; 1243 init_info->firmware_image_length = firmware_image_length; 1244 init_info->init_file_length = init_file_length; 1245 if (eeprom_image_length && 1246 fread(&init_info->data[0], 1, eeprom_image_length, f1)<eeprom_image_length) 1247 { 1248 fprintf(stderr, "Error reading eeprom image %s, %s\n", eeprom_file_name, strerror(errno)); 1249 goto init_driver_end; 1250 } 1251 if (firmware_image_length && 1252 fread(&init_info->data[eeprom_image_length], 1, firmware_image_length, f2)<firmware_image_length) 1253 { 1254 fprintf(stderr, "Error reading firmware image %s, %s\n", firmware_file_name, strerror(errno)); 1255 goto init_driver_end; 1256 } 1257 if (init_file_length && 1258 fread(&init_info->data[eeprom_image_length+firmware_image_length], 1, init_file_length, f3)<init_file_length) 1259 { 1260 fprintf(stderr, "Error reading init_file %s, %s\n", init_file_name, strerror(errno)); 1261 goto init_driver_end; 1262 } 1263 1264 rc = IPC_DeviceIoControl(adapter_name, TIWLN_SET_INIT_INFO, init_info, req_size, NULL, 0, NULL); 1265 1266 /*Send configMge start command as the cli is started*/ 1267 IPC_DeviceIoControl(adapter_name, TIWLN_DRIVER_STATUS_SET, &tmpData, sizeof(tiUINT32), NULL, 0, NULL); 1268 1269init_driver_end: 1270 if (f1) 1271 fclose(f1); 1272 if (f2) 1273 fclose(f2); 1274 if (f3) 1275 fclose(f3); 1276 if (init_info) 1277 free(init_info); 1278#endif 1279 1280 /*********************/ 1281 /* Reset CLI events */ 1282 /*******************/ 1283 1284 for (param.value = 0; param.value < IPC_EVENT_MAX; param.value++) 1285 { 1286 cmd_events_unregister(¶m, 1); 1287 } 1288 1289 return rc; 1290} 1291 1292/* TRS:GAA separated Windows/Linux setup routines for readability */ 1293#ifndef _WINDOWS 1294void init_extended_tools() 1295{ 1296 /* Initialize IPC */ 1297 ipc_initialize(); 1298 1299 /* Initialize ethernet utilities */ 1300 ethernet_utils_init(); 1301 1302 /* Initialize wipp control */ 1303 wipp_control_init(); 1304 1305 /* Initialize debug module task */ 1306 debug_module_init(); 1307} 1308 1309void deinit_extended_tools() 1310{ 1311 ipc_deinitialize(); 1312 1313 /* Deinitialize ethernet utilities */ 1314 ethernet_utils_deinit(); 1315 1316 /* Deinitialize wipp control */ 1317 wipp_control_deinit(); 1318 1319 /* Deinitializew debug module task */ 1320 debug_module_deinit(); 1321 } 1322#endif 1323 1324#ifdef _WINDOWS 1325#endif 1326//TRS:GAA end of specific O/S init/deinit routines 1327 1328 1329// TICON.EXE main module 1330int main(int argc, char ** argv) 1331{ 1332 int i; 1333 char *script_file = NULL; 1334 char *eeprom_file_name = "/NVS/nvs_map.bin"; 1335 char *init_file_name = "/voice/tiwlan.ini"; 1336 char *firmware_file_name = "/apps/firmware.bin"; 1337 int stop_UI = 0; 1338 int bypass_supplicant = 0; 1339 ConParm_t param; 1340 1341 // TRS:PGK -- To ensure that the data structure above is actually initialized to 1342 // a NULL string. 1343 g_drv_name[0] = '\0'; 1344 1345#ifndef _WINDOWS 1346 /* TRS:AS for WM extended tools have to be initialized after parsing of the command line arguments*/ 1347 init_extended_tools(); 1348#endif /* __LINUX__*/ 1349 if( argc > 1 ) 1350 { 1351 i=1; 1352 if( argv[i][0] != '-' ) 1353 { 1354 strcpy( g_drv_name, argv[i++] ); 1355 } 1356 for( ;i < argc; i++ ) 1357 { 1358 if( !strcmp(argv[i], "-h" ) || !strcmp(argv[i], "--help") ) 1359 return print_usage(eeprom_file_name, init_file_name, firmware_file_name); 1360 else if(!strcmp(argv[i], "-f" ) ) 1361 { 1362 firmware_file_name = argv[++i]; 1363 } 1364 else if(!strcmp(argv[i], "-e") && (i+1<argc)) 1365 { 1366 eeprom_file_name = argv[++i]; 1367 } 1368 else if(!strcmp(argv[i], "-b")) 1369 { 1370 bypass_supplicant = 1; 1371 } 1372 else if(!strcmp(argv[i], "-i") && (i+1<argc)) 1373 { 1374 init_file_name = argv[++i]; 1375 } 1376 else if(!strcmp(argv[i], "-s" ) ) 1377 { 1378 script_file = argv[++i]; 1379 } 1380#ifdef _WINDOWS // TRS:AS for Windows only. -w switch allows to not disable WZC. 1381#endif /* ifdef _WINDOWS */ 1382 else 1383 { 1384 fprintf(stderr, "ticon: unknown parameter '%s'\n", argv[i] ); 1385 1386#ifndef _WINDOWS 1387 deinit_extended_tools(); 1388#endif /* ifdef __LINUX__*/ 1389 1390 return 0; 1391 } 1392 } 1393 } 1394 1395 1396 if( !g_drv_name[0] ) 1397 { 1398 #ifndef _WINDOWS 1399 strcpy(g_drv_name, TIWLAN_DRV_NAME "0" ); 1400 #else 1401 #endif 1402 } 1403 1404 /* TRS:PGK -- before this function call, do not use console_printf_terminal() */ 1405 #ifdef _WINDOWS 1406 #endif /* ifdef _WINDOWS */ 1407 //console_printf_terminal("ticon: g_drv_name = %s\n", g_drv_name ); 1408 1409 // TRS:PGK -- From this point on, use console_printf_terminal() 1410 1411 if (init_driver(g_drv_name, eeprom_file_name, init_file_name, firmware_file_name) != 0) 1412 { 1413 deinit_extended_tools(); 1414 return -1; 1415 } 1416 1417#ifndef _WINDOWS 1418 /* Initialize g_tester module */ 1419 g_tester_init(); 1420#endif /* __LINUX__ */ 1421 1422 if (!bypass_supplicant) 1423 { 1424 console_printf_terminal("Starting up supplicant...\n" ); 1425 TI_StartSM(g_id_adapter); 1426 } 1427 1428 /* ----------------------------------------------------------- */ 1429 init_console_menu(); 1430 1431 init_scan_params(); 1432 1433#ifdef _WINDOWS 1434#endif /* ifdef _WINDOWS */ 1435 1436 if( script_file ) 1437 { 1438 stop_UI = consoleRunScript (script_file); 1439 } 1440 1441 if( !stop_UI ) 1442 consoleStart(); 1443 1444#ifndef _WINDOWS 1445 /* Deinitialize g_tester module */ 1446 g_tester_deinit(); 1447#endif /* __LINUX__ */ 1448 1449 // TRS:PGK -- NOW it is good to assume that the events might have been 1450 // registered in the past. 1451 for (param.value = 0; param.value < IPC_EVENT_MAX; param.value++) 1452 { 1453 cmd_events_unregister(¶m, 1); 1454 } 1455 1456 1457 if (!bypass_supplicant) 1458 { 1459 console_printf_terminal("Stop supplicant manager...\n" ); 1460 TI_StopSM(g_id_adapter); 1461 } 1462#ifdef _WINDOWS 1463#endif /* ifdef _WINDOWS */ 1464 1465 console_printf_terminal("De-init the adapter...\n" ); 1466 TI_AdapterDeinit(g_id_adapter); 1467 1468 deinit_extended_tools(); 1469 1470 printf("\nLeaving ticon\n"); //TRS:MEB added printf 1471 1472 return 1; 1473} 1474 1475