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
68 extern void osInitTable(initTable_t *InitTable);
69
70 void quit_func(void);
71 void dummy_func(void);
72
73 void init_extended_tools(void);
74 void deinit_extended_tools(void);
75
76 char 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 ************************************************************************
86 DESCRIPTION: Sends a text message to host
87
88 CONTEXT: Any process, the 'p_shared_memory' points
89 to the shared memory block
90 ************************************************************************/
console_printf_terminal(const char * arg_list,...)91 int 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 ************************************************************************
121 DESCRIPTION: Sends a text message to host
122
123 CONTEXT: Any process, the 'p_shared_memory' points
124 to the shared memory block
125 ************************************************************************/
console_send_buffer_to_host(tiUINT8 module_inedx,tiUINT8 * buffer,tiUINT16 length)126 int 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
dummy_func()199 void dummy_func()
200 {
201 console_printf_terminal("1: not implemented yet!!\n");
202 }
203
quit_func(void)204 void quit_func(void)
205 {
206 consoleStop();
207 }
208
print_usage(char * eeprom_file_name,char * init_file_name,char * firmware_file_name)209 int 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
init_console_menu(void)225 int 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 */
init_driver(char * adapter_name,char * eeprom_file_name,char * init_file_name,char * firmware_file_name)1167 int 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
1269 init_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
init_extended_tools()1294 void 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
deinit_extended_tools()1309 void 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
main(int argc,char ** argv)1330 int 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