164064216a8433360745f69edddce19a606659163The Android Open Source Project/*******************************************************************************
264064216a8433360745f69edddce19a606659163The Android Open Source Project**+--------------------------------------------------------------------------+**
364064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                          |**
464064216a8433360745f69edddce19a606659163The Android Open Source Project**| Copyright 1998-2008 Texas Instruments, Inc. - http://www.ti.com/         |**
564064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                          |**
664064216a8433360745f69edddce19a606659163The Android Open Source Project**| Licensed under the Apache License, Version 2.0 (the "License");          |**
764064216a8433360745f69edddce19a606659163The Android Open Source Project**| you may not use this file except in compliance with the License.         |**
864064216a8433360745f69edddce19a606659163The Android Open Source Project**| You may obtain a copy of the License at                                  |**
964064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                          |**
1064064216a8433360745f69edddce19a606659163The Android Open Source Project**|     http://www.apache.org/licenses/LICENSE-2.0                           |**
1164064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                          |**
1264064216a8433360745f69edddce19a606659163The Android Open Source Project**| Unless required by applicable law or agreed to in writing, software      |**
1364064216a8433360745f69edddce19a606659163The Android Open Source Project**| distributed under the License is distributed on an "AS IS" BASIS,        |**
1464064216a8433360745f69edddce19a606659163The Android Open Source Project**| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |**
1564064216a8433360745f69edddce19a606659163The Android Open Source Project**| See the License for the specific language governing permissions and      |**
1664064216a8433360745f69edddce19a606659163The Android Open Source Project**| limitations under the License.                                           |**
1764064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                          |**
1864064216a8433360745f69edddce19a606659163The Android Open Source Project**+--------------------------------------------------------------------------+**
1964064216a8433360745f69edddce19a606659163The Android Open Source Project*******************************************************************************/
2064064216a8433360745f69edddce19a606659163The Android Open Source Project
2164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
2264064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
2364064216a8433360745f69edddce19a606659163The Android Open Source Project
2464064216a8433360745f69edddce19a606659163The Android Open Source Project#include <stdio.h>
2564064216a8433360745f69edddce19a606659163The Android Open Source Project#include <string.h>
2664064216a8433360745f69edddce19a606659163The Android Open Source Project#include <stdlib.h>
2764064216a8433360745f69edddce19a606659163The Android Open Source Project#include <ctype.h>
2864064216a8433360745f69edddce19a606659163The Android Open Source Project
2964064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _WINDOWS
3064064216a8433360745f69edddce19a606659163The Android Open Source Project	#include <errno.h>
3164064216a8433360745f69edddce19a606659163The Android Open Source Project#include <stdio.h>
3264064216a8433360745f69edddce19a606659163The Android Open Source Project#include <unistd.h>
3364064216a8433360745f69edddce19a606659163The Android Open Source Project#include <termios.h>
3464064216a8433360745f69edddce19a606659163The Android Open Source Project#include <sys/socket.h>
3564064216a8433360745f69edddce19a606659163The Android Open Source Project#include <linux/if.h>
3664064216a8433360745f69edddce19a606659163The Android Open Source Project#include <linux/wireless.h>
3764064216a8433360745f69edddce19a606659163The Android Open Source Project
3864064216a8433360745f69edddce19a606659163The Android Open Source Project	#include "tnetwCommon.h"
3964064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* __LINUX__ */
4064064216a8433360745f69edddce19a606659163The Android Open Source Project
4164064216a8433360745f69edddce19a606659163The Android Open Source Project#include "g_tester.h"
4264064216a8433360745f69edddce19a606659163The Android Open Source Project#include "wspVer.h"
4364064216a8433360745f69edddce19a606659163The Android Open Source Project
4464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "paramOut.h"
4564064216a8433360745f69edddce19a606659163The Android Open Source Project#include "console.h"
4664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "ticon.h"
4764064216a8433360745f69edddce19a606659163The Android Open Source Project#include "cu_cmd.h"
4864064216a8433360745f69edddce19a606659163The Android Open Source Project#include "linux_ioctl_common.h"
4964064216a8433360745f69edddce19a606659163The Android Open Source Project#include "802_11Defs.h"
5064064216a8433360745f69edddce19a606659163The Android Open Source Project
5164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _T
5264064216a8433360745f69edddce19a606659163The Android Open Source Project#define _T(a)    a
5364064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
5464064216a8433360745f69edddce19a606659163The Android Open Source Project
5564064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _WINDOWS
5664064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE   g_id_adapter = 0;
5764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
5864064216a8433360745f69edddce19a606659163The Android Open Source Project
5964064216a8433360745f69edddce19a606659163The Android Open Source Project#define MAX_SSID_LEN 32
6064064216a8433360745f69edddce19a606659163The Android Open Source Project#define CLI_NUM_OF_TX_CLASFR_CON 4
6164064216a8433360745f69edddce19a606659163The Android Open Source Project
6264064216a8433360745f69edddce19a606659163The Android Open Source Projectscan_Params_t appScanParams;
6364064216a8433360745f69edddce19a606659163The Android Open Source Projectscan_Policy_t scanPolicy;
6464064216a8433360745f69edddce19a606659163The Android Open Source Project
6564064216a8433360745f69edddce19a606659163The Android Open Source Project/*** Roaming Manager configuration parameters ***/
6664064216a8433360745f69edddce19a606659163The Android Open Source ProjectroamingMngrConfigParams_t   roamingMngrConfigParams;
6764064216a8433360745f69edddce19a606659163The Android Open Source Project
6864064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic tiUINT32 events_mask = 0; // TRS:PGK
6964064216a8433360745f69edddce19a606659163The Android Open Source Project
7064064216a8433360745f69edddce19a606659163The Android Open Source Project#define NET_BASIC_MASK      0x80    /* defined in common/src/utils/utils.c */
7164064216a8433360745f69edddce19a606659163The Android Open Source Project
7264064216a8433360745f69edddce19a606659163The Android Open Source Project#define IS_BASIC_RATE(a)    ((a) & NET_BASIC_MASK)
7364064216a8433360745f69edddce19a606659163The Android Open Source Project
7464064216a8433360745f69edddce19a606659163The Android Open Source Project#define RATE_2_MBPS(a)    ((float)((a) & (NET_BASIC_MASK-1))/2)
7564064216a8433360745f69edddce19a606659163The Android Open Source Project
7664064216a8433360745f69edddce19a606659163The Android Open Source Project#define GET_NAME_BY_VALUE(arr, value)    get_name_by_value(arr, SIZE_ARR(arr), value)
7764064216a8433360745f69edddce19a606659163The Android Open Source Project
7864064216a8433360745f69edddce19a606659163The Android Open Source Project#define CHAN_FREQ_TABLE_SIZE        (sizeof(ChanFreq) / sizeof(struct CHAN_FREQ))
7964064216a8433360745f69edddce19a606659163The Android Open Source Project
8064064216a8433360745f69edddce19a606659163The Android Open Source Project#define RATE_TABLE_SIZE             (sizeof(rate2Str) / sizeof(named_value_t))
8164064216a8433360745f69edddce19a606659163The Android Open Source Project
8264064216a8433360745f69edddce19a606659163The Android Open Source Project#define ET_TABLE_SIZE               (sizeof(EtEvent2Str) / sizeof(named_value_t))
8364064216a8433360745f69edddce19a606659163The Android Open Source Project
8464064216a8433360745f69edddce19a606659163The Android Open Source Project/* EarlyTermination DISABLE mode - Should be same as in scan.h */
8564064216a8433360745f69edddce19a606659163The Android Open Source Project#define SCAN_ET_COND_DISABLE 0
8664064216a8433360745f69edddce19a606659163The Android Open Source Project
8764064216a8433360745f69edddce19a606659163The Android Open Source Project#define MAX_PSK_STRING_LENGTH       63
8864064216a8433360745f69edddce19a606659163The Android Open Source Project
8964064216a8433360745f69edddce19a606659163The Android Open Source Project#define MIN_PSK_STRING_LENGTH       8
9064064216a8433360745f69edddce19a606659163The Android Open Source Project
9164064216a8433360745f69edddce19a606659163The Android Open Source Project#define PSK_HEXA_LENGTH       64
9264064216a8433360745f69edddce19a606659163The Android Open Source Project
9364064216a8433360745f69edddce19a606659163The Android Open Source Project#define PSK_BUFF_LEN 65
9464064216a8433360745f69edddce19a606659163The Android Open Source Project
9564064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void get_bssid_list(ConParm_t parm[], U16 nParms, BOOL fullBssidList , OS_802_11_BSSID_EX *pBssid);
9664064216a8433360745f69edddce19a606659163The Android Open Source Project
9764064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic BOOL is_value_rate (tiUINT32 rate)
9864064216a8433360745f69edddce19a606659163The Android Open Source Project{
9964064216a8433360745f69edddce19a606659163The Android Open Source Project
10064064216a8433360745f69edddce19a606659163The Android Open Source Project   switch (rate)
10164064216a8433360745f69edddce19a606659163The Android Open Source Project   {
10264064216a8433360745f69edddce19a606659163The Android Open Source Project   case 1:
10364064216a8433360745f69edddce19a606659163The Android Open Source Project   case 2:
10464064216a8433360745f69edddce19a606659163The Android Open Source Project   case 5:
10564064216a8433360745f69edddce19a606659163The Android Open Source Project   case 6:
10664064216a8433360745f69edddce19a606659163The Android Open Source Project   case 9:
10764064216a8433360745f69edddce19a606659163The Android Open Source Project   case 11:
10864064216a8433360745f69edddce19a606659163The Android Open Source Project   case 12:
10964064216a8433360745f69edddce19a606659163The Android Open Source Project   case 18:
11064064216a8433360745f69edddce19a606659163The Android Open Source Project   case 22:
11164064216a8433360745f69edddce19a606659163The Android Open Source Project   case 24:
11264064216a8433360745f69edddce19a606659163The Android Open Source Project   case 36:
11364064216a8433360745f69edddce19a606659163The Android Open Source Project   case 48:
11464064216a8433360745f69edddce19a606659163The Android Open Source Project   case 54:
11564064216a8433360745f69edddce19a606659163The Android Open Source Project      return (TRUE);
11664064216a8433360745f69edddce19a606659163The Android Open Source Project   default:
11764064216a8433360745f69edddce19a606659163The Android Open Source Project      return (FALSE);
11864064216a8433360745f69edddce19a606659163The Android Open Source Project   }
11964064216a8433360745f69edddce19a606659163The Android Open Source Project
12064064216a8433360745f69edddce19a606659163The Android Open Source Project}
12164064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic BOOL is_value_rate (tiUINT32 rate);
12264064216a8433360745f69edddce19a606659163The Android Open Source Projectstruct CHAN_FREQ {
12364064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT8       chan;
12464064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32      freq;
12564064216a8433360745f69edddce19a606659163The Android Open Source Project} ChanFreq[] = {
12664064216a8433360745f69edddce19a606659163The Android Open Source Project    {1,2412000}, {2,2417000}, {3,2422000}, {4,2427000},
12764064216a8433360745f69edddce19a606659163The Android Open Source Project    {5,2432000}, {6,2437000}, {7,2442000}, {8,2447000},
12864064216a8433360745f69edddce19a606659163The Android Open Source Project    {9,2452000},
12964064216a8433360745f69edddce19a606659163The Android Open Source Project    {10,2457000}, {11,2462000}, {12,2467000}, {13,2472000},
13064064216a8433360745f69edddce19a606659163The Android Open Source Project    {14,2484000}, {36,5180000}, {40,5200000}, {44,5220000},
13164064216a8433360745f69edddce19a606659163The Android Open Source Project    {48,5240000}, {52,5260000}, {56,5280000}, {60,5300000},
13264064216a8433360745f69edddce19a606659163The Android Open Source Project    {64,5320000},
13364064216a8433360745f69edddce19a606659163The Android Open Source Project    {100,5500000}, {104,5520000}, {108,5540000}, {112,5560000},
13464064216a8433360745f69edddce19a606659163The Android Open Source Project    {116,5580000}, {120,5600000}, {124,5620000}, {128,5640000},
13564064216a8433360745f69edddce19a606659163The Android Open Source Project    {132,5660000}, {136,5680000}, {140,5700000}, {149,5745000},
13664064216a8433360745f69edddce19a606659163The Android Open Source Project    {153,5765000}, {157,5785000}, {161,5805000} };
13764064216a8433360745f69edddce19a606659163The Android Open Source Project
13864064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic named_value_t power_mode_val[] = {
13964064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_POWER_MODE_AUTO,        "AUTO" },
14064064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_POWER_MODE_ACTIVE,      "ACTIVE" },
14164064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_POWER_MODE_SHORT_DOZE,  "SHORT_DOZE" },
14264064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_POWER_MODE_LONG_DOZE,   "LONG_DOZE" }
14364064216a8433360745f69edddce19a606659163The Android Open Source Project};
14464064216a8433360745f69edddce19a606659163The Android Open Source Project
14564064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic named_value_t power_level_val[] = {
14664064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_POWER_LEVEL_ELP,        "ELP" },
14764064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_POWER_LEVEL_PD,      "PD" },
14864064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_POWER_LEVEL_AWAKE,  "AWAKE" }
14964064216a8433360745f69edddce19a606659163The Android Open Source Project};
15064064216a8433360745f69edddce19a606659163The Android Open Source Project
15164064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic named_value_t encrypt_type[] = {
15264064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_ENCRYPTION_TYPE_NONE,              "None" },
15364064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_ENCRYPTION_TYPE_WEP,               "WEP"  },
15464064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_ENCRYPTION_TYPE_TKIP,              "TKIP" },
15564064216a8433360745f69edddce19a606659163The Android Open Source Project        { OS_ENCRYPTION_TYPE_AES,               "AES" }
15664064216a8433360745f69edddce19a606659163The Android Open Source Project};
15764064216a8433360745f69edddce19a606659163The Android Open Source Project
15864064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic named_value_t scanType2Str[] = {
15964064216a8433360745f69edddce19a606659163The Android Open Source Project        { SCAN_TYPE_NORMAL_PASSIVE,             "Passive Normal Scan"               },
16064064216a8433360745f69edddce19a606659163The Android Open Source Project        { SCAN_TYPE_NORMAL_ACTIVE,              "Active Normal Scan"                },
16164064216a8433360745f69edddce19a606659163The Android Open Source Project        { SCAN_TYPE_SPS,                        "Scheduled Passive Scan (SPS)"      },
16264064216a8433360745f69edddce19a606659163The Android Open Source Project        { SCAN_TYPE_TRIGGERED_PASSIVE,          "Passive Triggered Scan"            },
16364064216a8433360745f69edddce19a606659163The Android Open Source Project        { SCAN_TYPE_TRIGGERED_ACTIVE,           "Active Triggered Scan"             }
16464064216a8433360745f69edddce19a606659163The Android Open Source Project};
16564064216a8433360745f69edddce19a606659163The Android Open Source Project
16664064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic named_value_t band2Str[] = {
16764064216a8433360745f69edddce19a606659163The Android Open Source Project        { RADIO_BAND_2_4_GHZ,                   "2.4 GHz"                        },
16864064216a8433360745f69edddce19a606659163The Android Open Source Project        { RADIO_BAND_5_0_GHZ,                   "5.0 GHz"                        },
16964064216a8433360745f69edddce19a606659163The Android Open Source Project        { RADIO_BAND_DUAL,                      "Both   "                        }
17064064216a8433360745f69edddce19a606659163The Android Open Source Project};
17164064216a8433360745f69edddce19a606659163The Android Open Source Project
17264064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic named_value_t rate2Str[] = {
17364064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_AUTO,                   "Auto    "                          },
17464064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_1_BARKER,               "1 Mbps  "                          },
17564064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_2_BARKER,               "2 Mbps  "                          },
17664064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_5_5_CCK,                "5.5 Mbps"                          },
17764064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_11_CCK,                 "11 Mbps "                          },
17864064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_22_PBCC,                "22 Mbps "                          },
17964064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_6_OFDM,                 "6 Mbps  "                          },
18064064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_9_OFDM,                 "9 Mbps  "                          },
18164064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_12_OFDM,                "12 Mbps "                          },
18264064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_18_OFDM,                "18 Mbps "                          },
18364064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_24_OFDM,                "24 Mbps "                          },
18464064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_36_OFDM,                "36 Mbps "                          },
18564064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_48_OFDM,                "48 Mbps "                          },
18664064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRV_RATE_MASK_54_OFDM,                "54 Mbps "                          }
18764064216a8433360745f69edddce19a606659163The Android Open Source Project};
18864064216a8433360745f69edddce19a606659163The Android Open Source Project
18964064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic named_value_t EtEvent2Str[] = {
19064064216a8433360745f69edddce19a606659163The Android Open Source Project        { SCAN_ET_COND_DISABLE,                      "ET disabled  "                     },
19164064216a8433360745f69edddce19a606659163The Android Open Source Project        { SCAN_ET_COND_BEACON,                       "ET on Beacon "                     },
19264064216a8433360745f69edddce19a606659163The Android Open Source Project        { SCAN_ET_COND_PROBE_RESP,                   "ET on Prb Rsp"                     },
19364064216a8433360745f69edddce19a606659163The Android Open Source Project        { SCAN_ET_COND_ANY_FRAME,                    "ET on both   "                     }
19464064216a8433360745f69edddce19a606659163The Android Open Source Project};
19564064216a8433360745f69edddce19a606659163The Android Open Source Project
19664064216a8433360745f69edddce19a606659163The Android Open Source Project/* used in scan_display */
19764064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic char* rate2StrFunc(UINT32 rate)
19864064216a8433360745f69edddce19a606659163The Android Open Source Project{
19964064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 i;
20064064216a8433360745f69edddce19a606659163The Android Open Source Project
20164064216a8433360745f69edddce19a606659163The Android Open Source Project    for ( i = 0; i < RATE_TABLE_SIZE; i++ )
20264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
20364064216a8433360745f69edddce19a606659163The Android Open Source Project        if ( rate2Str[ i ].value == rate )
20464064216a8433360745f69edddce19a606659163The Android Open Source Project            return rate2Str[ i ].name;
20564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
20664064216a8433360745f69edddce19a606659163The Android Open Source Project    return rate2Str[ 0 ].name;
20764064216a8433360745f69edddce19a606659163The Android Open Source Project}
20864064216a8433360745f69edddce19a606659163The Android Open Source Project
20964064216a8433360745f69edddce19a606659163The Android Open Source Project/* used in scan_display */
21064064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic char* EtEvent2StrFunc( UINT32 ETCond )
21164064216a8433360745f69edddce19a606659163The Android Open Source Project{
21264064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
21364064216a8433360745f69edddce19a606659163The Android Open Source Project
21464064216a8433360745f69edddce19a606659163The Android Open Source Project    for ( i = 0; i < ET_TABLE_SIZE; i++ )
21564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
21664064216a8433360745f69edddce19a606659163The Android Open Source Project        if ( EtEvent2Str[ i ].value == ETCond )
21764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
21864064216a8433360745f69edddce19a606659163The Android Open Source Project            return EtEvent2Str[ i ].name;
21964064216a8433360745f69edddce19a606659163The Android Open Source Project        }
22064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
22164064216a8433360745f69edddce19a606659163The Android Open Source Project
22264064216a8433360745f69edddce19a606659163The Android Open Source Project    return EtEvent2Str[ 0 ].name;
22364064216a8433360745f69edddce19a606659163The Android Open Source Project}
22464064216a8433360745f69edddce19a606659163The Android Open Source Project
22564064216a8433360745f69edddce19a606659163The Android Open Source Project/* used in get_bssid_list() */
22664064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT8 Freq2Chan(UINT32 freq)
22764064216a8433360745f69edddce19a606659163The Android Open Source Project{
22864064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 i;
22964064216a8433360745f69edddce19a606659163The Android Open Source Project
23064064216a8433360745f69edddce19a606659163The Android Open Source Project    for(i=0; i<CHAN_FREQ_TABLE_SIZE; i++)
23164064216a8433360745f69edddce19a606659163The Android Open Source Project        if(ChanFreq[i].freq == freq) return ChanFreq[i].chan;
23264064216a8433360745f69edddce19a606659163The Android Open Source Project
23364064216a8433360745f69edddce19a606659163The Android Open Source Project    return 0;
23464064216a8433360745f69edddce19a606659163The Android Open Source Project}
23564064216a8433360745f69edddce19a606659163The Android Open Source Project/* IPC events Callback */
23664064216a8433360745f69edddce19a606659163The Android Open Source Projectint cli_receive_ev(IPC_EV_DATA*    pData)
23764064216a8433360745f69edddce19a606659163The Android Open Source Project{
23864064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT8 *buf;
23964064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_QOS_TSPEC_PARAMS *AddTsResult;
24064064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_AUTHENTICATION_REQUEST *request;
24164064216a8433360745f69edddce19a606659163The Android Open Source Project	OS_802_11_DISASSOCIATE_REASON_T	 *pDisAssoc;
24264064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_THRESHOLD_CROSS_INDICATION_PARAMS *CrossParams;
24364064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_CROSS_INDICATION_PARAMS *TrafficIntensityThresholdParams;
24464064216a8433360745f69edddce19a606659163The Android Open Source Project	btCoexStatus_t				*btCoexStatus;
24564064216a8433360745f69edddce19a606659163The Android Open Source Project
24664064216a8433360745f69edddce19a606659163The Android Open Source Project#if defined (_WINDOWS)
24764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
24864064216a8433360745f69edddce19a606659163The Android Open Source Project    g_tester_receive_event((tiUINT8)((IPC_EVENT_PARAMS *)pData)->uEventType);
24964064216a8433360745f69edddce19a606659163The Android Open Source Project#if defined (_WINDOWS)
25064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
25164064216a8433360745f69edddce19a606659163The Android Open Source Project
25264064216a8433360745f69edddce19a606659163The Android Open Source Project    switch(((IPC_EVENT_PARAMS *)pData)->uEventType)
25364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
25464064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_ASSOCIATED:
25564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Associated\n");
25664064216a8433360745f69edddce19a606659163The Android Open Source Project// TRS:HLC
25764064216a8433360745f69edddce19a606659163The Android Open Source Project/*
25864064216a8433360745f69edddce19a606659163The Android Open Source Project#if defined (_WINDOWS)
25964064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
26064064216a8433360745f69edddce19a606659163The Android Open Source Project*/
26164064216a8433360745f69edddce19a606659163The Android Open Source Project//TRS end
26264064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
26364064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_DISASSOCIATED:
26464064216a8433360745f69edddce19a606659163The Android Open Source Project			pDisAssoc = (OS_802_11_DISASSOCIATE_REASON_T*)pData->uBuffer;
26564064216a8433360745f69edddce19a606659163The Android Open Source Project			switch(pDisAssoc->eDisAssocType)
26664064216a8433360745f69edddce19a606659163The Android Open Source Project			{
26764064216a8433360745f69edddce19a606659163The Android Open Source Project			case OS_DISASSOC_STATUS_UNSPECIFIED:
26864064216a8433360745f69edddce19a606659163The Android Open Source Project				console_printf_terminal("CLI Event - Disassociated with unspecified reason (User/SG/Recovery)\n");
26964064216a8433360745f69edddce19a606659163The Android Open Source Project				break;
27064064216a8433360745f69edddce19a606659163The Android Open Source Project			case OS_DISASSOC_STATUS_AUTH_REJECT:
27164064216a8433360745f69edddce19a606659163The Android Open Source Project				if (pDisAssoc->uStatusCode == STATUS_PACKET_REJ_TIMEOUT)
27264064216a8433360745f69edddce19a606659163The Android Open Source Project				{
27364064216a8433360745f69edddce19a606659163The Android Open Source Project					console_printf_terminal("CLI Event - Disassociated due to no Auth response \n");
27464064216a8433360745f69edddce19a606659163The Android Open Source Project				}
27564064216a8433360745f69edddce19a606659163The Android Open Source Project				else
27664064216a8433360745f69edddce19a606659163The Android Open Source Project				{
27764064216a8433360745f69edddce19a606659163The Android Open Source Project					console_printf_terminal("CLI Event - Disassociated due to Auth response packet with reason = %d\n", pDisAssoc->uStatusCode);
27864064216a8433360745f69edddce19a606659163The Android Open Source Project				}
27964064216a8433360745f69edddce19a606659163The Android Open Source Project				break;
28064064216a8433360745f69edddce19a606659163The Android Open Source Project			case OS_DISASSOC_STATUS_ASSOC_REJECT:
28164064216a8433360745f69edddce19a606659163The Android Open Source Project				if (pDisAssoc->uStatusCode == STATUS_PACKET_REJ_TIMEOUT)
28264064216a8433360745f69edddce19a606659163The Android Open Source Project				{
28364064216a8433360745f69edddce19a606659163The Android Open Source Project					console_printf_terminal("CLI Event - Disassociated due to no Assoc response \n");
28464064216a8433360745f69edddce19a606659163The Android Open Source Project				}
28564064216a8433360745f69edddce19a606659163The Android Open Source Project				else
28664064216a8433360745f69edddce19a606659163The Android Open Source Project				{
28764064216a8433360745f69edddce19a606659163The Android Open Source Project					console_printf_terminal("CLI Event - Disassociated due to Assoc response packet with reason = %d\n", pDisAssoc->uStatusCode);
28864064216a8433360745f69edddce19a606659163The Android Open Source Project				}
28964064216a8433360745f69edddce19a606659163The Android Open Source Project			    break;
29064064216a8433360745f69edddce19a606659163The Android Open Source Project			case OS_DISASSOC_STATUS_SECURITY_FAILURE:
29164064216a8433360745f69edddce19a606659163The Android Open Source Project				console_printf_terminal("CLI Event - Disassociated due to RSN failure\n");
29264064216a8433360745f69edddce19a606659163The Android Open Source Project			    break;
29364064216a8433360745f69edddce19a606659163The Android Open Source Project			case OS_DISASSOC_STATUS_AP_DEAUTHENTICATE:
29464064216a8433360745f69edddce19a606659163The Android Open Source Project				console_printf_terminal("CLI Event - Disassociated due to AP deAuthenticate packet with reason = %d\n", pDisAssoc->uStatusCode);
29564064216a8433360745f69edddce19a606659163The Android Open Source Project				break;
29664064216a8433360745f69edddce19a606659163The Android Open Source Project			case OS_DISASSOC_STATUS_AP_DISASSOCIATE:
29764064216a8433360745f69edddce19a606659163The Android Open Source Project				console_printf_terminal("CLI Event - Disassociated due to AP disAssoc packet with reason = %d\n", pDisAssoc->uStatusCode);
29864064216a8433360745f69edddce19a606659163The Android Open Source Project				break;
29964064216a8433360745f69edddce19a606659163The Android Open Source Project			case OS_DISASSOC_STATUS_ROAMING_TRIGGER:
30064064216a8433360745f69edddce19a606659163The Android Open Source Project				console_printf_terminal("CLI Event - Disassociated due to roaming trigger = %d\n", pDisAssoc->uStatusCode);
30164064216a8433360745f69edddce19a606659163The Android Open Source Project				break;
30264064216a8433360745f69edddce19a606659163The Android Open Source Project			default:
30364064216a8433360745f69edddce19a606659163The Android Open Source Project				console_printf_terminal("CLI Event - Disassociated with unknown reason = %d\n", pDisAssoc->eDisAssocType);
30464064216a8433360745f69edddce19a606659163The Android Open Source Project			    break;
30564064216a8433360745f69edddce19a606659163The Android Open Source Project			}
30664064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
30764064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_LINK_SPEED:
30864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - LinkSpeed\n");
30964064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
31064064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_AUTH_SUCC:
31164064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Authentication Success\n");
31264064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
31364064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_SCAN_COMPLETE:
31464064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Scan Complete\n");
31564064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
31664064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_TIMEOUT:
31764064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Timeout\n");
31864064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
31964064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_UNBOUND:
32064064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Unbound\n");
32164064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
32264064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_BOUND:
32364064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Bound\n");
32464064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
32564064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_EAPOL:
32664064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - EAPOL\n");
32764064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
32864064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_MEDIA_SPECIFIC:
32964064216a8433360745f69edddce19a606659163The Android Open Source Project            buf = pData->uBuffer;
33064064216a8433360745f69edddce19a606659163The Android Open Source Project            request = (OS_802_11_AUTHENTICATION_REQUEST *) (buf + sizeof(tiUINT32));
33164064216a8433360745f69edddce19a606659163The Android Open Source Project            if( request->Flags == OS_802_11_REQUEST_PAIRWISE_ERROR ||
33264064216a8433360745f69edddce19a606659163The Android Open Source Project                request->Flags == OS_802_11_REQUEST_GROUP_ERROR)
33364064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Media_Specific\n");
33464064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
33564064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_CCKM_START:
33664064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - CCKM_Start\n");
33764064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
33864064216a8433360745f69edddce19a606659163The Android Open Source Project
33964064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_PREAUTH_EAPOL:
34064064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - PreAuth EAPOL\n");
34164064216a8433360745f69edddce19a606659163The Android Open Source Project            break;
34264064216a8433360745f69edddce19a606659163The Android Open Source Project
34364064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_LOW_SNR:
34464064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Low SNR\n");
34564064216a8433360745f69edddce19a606659163The Android Open Source Project            break;
34664064216a8433360745f69edddce19a606659163The Android Open Source Project
34764064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_LOW_RSSI:
34864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Low RSSI\n");
34964064216a8433360745f69edddce19a606659163The Android Open Source Project            break;
35064064216a8433360745f69edddce19a606659163The Android Open Source Project
35164064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_EAP_AUTH_FAILURE:
35264064216a8433360745f69edddce19a606659163The Android Open Source Project            {
35364064216a8433360745f69edddce19a606659163The Android Open Source Project                OS_802_11_EAP_TYPES eapType;
35464064216a8433360745f69edddce19a606659163The Android Open Source Project                tiINT32             status;
35564064216a8433360745f69edddce19a606659163The Android Open Source Project                authStatus_e        eAuthStatusReason;
35664064216a8433360745f69edddce19a606659163The Android Open Source Project
35764064216a8433360745f69edddce19a606659163The Android Open Source Project				/* Cast the value to be UINT16 16 bits since it is sent this way in the EXCMngr.c */
35864064216a8433360745f69edddce19a606659163The Android Open Source Project                eAuthStatusReason = (authStatus_e)((*(pData->uBuffer)) & 0xFFFF);
35964064216a8433360745f69edddce19a606659163The Android Open Source Project
36064064216a8433360745f69edddce19a606659163The Android Open Source Project                status = TI_GetEAPType( g_id_adapter, &eapType );
36164064216a8433360745f69edddce19a606659163The Android Open Source Project
36264064216a8433360745f69edddce19a606659163The Android Open Source Project                if (eapType == OS_EAP_TYPE_LEAP)
36364064216a8433360745f69edddce19a606659163The Android Open Source Project                {
36464064216a8433360745f69edddce19a606659163The Android Open Source Project                    console_printf_terminal("CLI Event - LEAP Authentication Failed \n");
36564064216a8433360745f69edddce19a606659163The Android Open Source Project                }
36664064216a8433360745f69edddce19a606659163The Android Open Source Project                else if (eapType == OS_EAP_TYPE_FAST)
36764064216a8433360745f69edddce19a606659163The Android Open Source Project                {
36864064216a8433360745f69edddce19a606659163The Android Open Source Project                    console_printf_terminal("CLI Event - EAP-FAST Authentication Failed \n");
36964064216a8433360745f69edddce19a606659163The Android Open Source Project                }
37064064216a8433360745f69edddce19a606659163The Android Open Source Project                else if (eapType == OS_EAP_TYPE_TLS)
37164064216a8433360745f69edddce19a606659163The Android Open Source Project                {
37264064216a8433360745f69edddce19a606659163The Android Open Source Project                    console_printf_terminal("CLI Event - EAP-TLS Authentication Failed \n");
37364064216a8433360745f69edddce19a606659163The Android Open Source Project                }
37464064216a8433360745f69edddce19a606659163The Android Open Source Project
37564064216a8433360745f69edddce19a606659163The Android Open Source Project                switch ( eAuthStatusReason )
37664064216a8433360745f69edddce19a606659163The Android Open Source Project                {
37764064216a8433360745f69edddce19a606659163The Android Open Source Project                case RSN_AUTH_STATUS_INVALID_TYPE:
37864064216a8433360745f69edddce19a606659163The Android Open Source Project                    console_printf_terminal("The reason: Invalid Authentication Type \n");
37964064216a8433360745f69edddce19a606659163The Android Open Source Project                    break;
38064064216a8433360745f69edddce19a606659163The Android Open Source Project                case RSN_AUTH_STATUS_TIMEOUT:
38164064216a8433360745f69edddce19a606659163The Android Open Source Project                    console_printf_terminal("The reason: Authentication Timeout \n");
38264064216a8433360745f69edddce19a606659163The Android Open Source Project                    break;
38364064216a8433360745f69edddce19a606659163The Android Open Source Project                case RSN_AUTH_STATUS_CHALLENGE_FROM_AP_FAILED:
38464064216a8433360745f69edddce19a606659163The Android Open Source Project                case RSN_AUTH_STATUS_CHALLENGE_TO_AP_FAILED:
38564064216a8433360745f69edddce19a606659163The Android Open Source Project                    console_printf_terminal("The reason: username or password incorrect \n");
38664064216a8433360745f69edddce19a606659163The Android Open Source Project                    break;
38764064216a8433360745f69edddce19a606659163The Android Open Source Project                default:
38864064216a8433360745f69edddce19a606659163The Android Open Source Project                    console_printf_terminal("The reason: unknown = %d \n", eAuthStatusReason);
38964064216a8433360745f69edddce19a606659163The Android Open Source Project                    break;
39064064216a8433360745f69edddce19a606659163The Android Open Source Project                }
39164064216a8433360745f69edddce19a606659163The Android Open Source Project
39264064216a8433360745f69edddce19a606659163The Android Open Source Project            }
39364064216a8433360745f69edddce19a606659163The Android Open Source Project            break;
39464064216a8433360745f69edddce19a606659163The Android Open Source Project
39564064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_TSPEC_STATUS:
39664064216a8433360745f69edddce19a606659163The Android Open Source Project           AddTsResult = (OS_802_11_QOS_TSPEC_PARAMS *)pData->uBuffer;
39764064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal("CLI Event - IPC_EVENT_TSPEC_STATUS -- (userPriority = %d, ReasonCode = %d) \n",AddTsResult->uUserPriority,AddTsResult->uReasonCode);
39864064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal ("Tspec Parameters (as received through event handler):\n");
39964064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal ("-----------------------------------------------------\n");
40064064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal ("userPriority = %d\n",AddTsResult->uUserPriority);
40164064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal ("uNominalMSDUsize = %d\n",AddTsResult->uNominalMSDUsize);
40264064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal ("uMeanDataRate = %d\n",AddTsResult->uMeanDataRate);
40364064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal ("uMinimumPHYRate = %d\n",AddTsResult->uMinimumPHYRate);
40464064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal ("uSurplusBandwidthAllowance = %d\n",AddTsResult->uSurplusBandwidthAllowance);
40564064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal ("uAPSDFlag = %d\n",AddTsResult->uAPSDFlag);
40664064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal ("uMediumTime = %d\n\n",AddTsResult->uMediumTime);
40764064216a8433360745f69edddce19a606659163The Android Open Source Project           break;
40864064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_TSPEC_RATE_STATUS:
40964064216a8433360745f69edddce19a606659163The Android Open Source Project           CrossParams = (OS_802_11_THRESHOLD_CROSS_INDICATION_PARAMS *)pData->uBuffer;
41064064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal("CLI Event - IPC_EVENT_TSPEC_RATE_STATUS (AC = %d, HighLowFlag = %d, AboveOrBelow = %d)\n",CrossParams->uAC,CrossParams->uHighOrLowThresholdFlag,CrossParams->uAboveOrBelowFlag);
41164064216a8433360745f69edddce19a606659163The Android Open Source Project           break;
41264064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_MEDIUM_TIME_CROSS:
41364064216a8433360745f69edddce19a606659163The Android Open Source Project           CrossParams = (OS_802_11_THRESHOLD_CROSS_INDICATION_PARAMS *)pData->uBuffer;
41464064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal("CLI Event - IPC_EVENT_MEDIUM_TIME_CROSS (AC = %d, HighLowFlag = %d, AboveOrBelow = %d)\n",CrossParams->uAC,CrossParams->uHighOrLowThresholdFlag,CrossParams->uAboveOrBelowFlag);
41564064216a8433360745f69edddce19a606659163The Android Open Source Project           break;
41664064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_TRAFFIC_INTENSITY_THRESHOLD_CROSSED:
41764064216a8433360745f69edddce19a606659163The Android Open Source Project           TrafficIntensityThresholdParams = (OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_CROSS_INDICATION_PARAMS*)pData->uBuffer;
41864064216a8433360745f69edddce19a606659163The Android Open Source Project           printf("CLI Event - IPC_EVENT_TRAFFIC_INTENSITY_THRESHOLD_CROSSED\n");
41964064216a8433360745f69edddce19a606659163The Android Open Source Project           printf("---------------------------------------------------------\n");
42064064216a8433360745f69edddce19a606659163The Android Open Source Project           printf("Threshold crossed: %s Threshold\n", ((TrafficIntensityThresholdParams->uHighOrLowThresholdFlag == HIGH_THRESHOLD_CROSS) ? "High" : "Low"));
42164064216a8433360745f69edddce19a606659163The Android Open Source Project           printf("Direction crossed: %s\n\n", ((TrafficIntensityThresholdParams->uAboveOrBelowFlag == CROSS_ABOVE) ? "Above" : "Below"));
42264064216a8433360745f69edddce19a606659163The Android Open Source Project           break;
42364064216a8433360745f69edddce19a606659163The Android Open Source Project
42464064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_WPA2_PREAUTHENTICATION:
42564064216a8433360745f69edddce19a606659163The Android Open Source Project            {
42664064216a8433360745f69edddce19a606659163The Android Open Source Project                ULONG *WPA2_PreAuth_Status;
42764064216a8433360745f69edddce19a606659163The Android Open Source Project
42864064216a8433360745f69edddce19a606659163The Android Open Source Project               WPA2_PreAuth_Status = (ULONG *)pData->uBuffer;
42964064216a8433360745f69edddce19a606659163The Android Open Source Project               printf("CLI Event - IPC_EVENT_WPA2_PREAUTHENTICATION\n");
43064064216a8433360745f69edddce19a606659163The Android Open Source Project               printf("Status code = %lu\n",*WPA2_PreAuth_Status);
43164064216a8433360745f69edddce19a606659163The Android Open Source Project            }
43264064216a8433360745f69edddce19a606659163The Android Open Source Project           break;
43364064216a8433360745f69edddce19a606659163The Android Open Source Project
43464064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPC_EVENT_ROAMING_COMPLETE:
43564064216a8433360745f69edddce19a606659163The Android Open Source Project            printf("CLI Event - IPC_EVENT_ROAMING_COMPLETE \n");
43664064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
43764064216a8433360745f69edddce19a606659163The Android Open Source Project
43864064216a8433360745f69edddce19a606659163The Android Open Source Project	case IPC_EVENT_BT_COEX_MODE:
43964064216a8433360745f69edddce19a606659163The Android Open Source Project		btCoexStatus = (btCoexStatus_t*)pData->uBuffer;
44064064216a8433360745f69edddce19a606659163The Android Open Source Project		if (btCoexStatus->state)
44164064216a8433360745f69edddce19a606659163The Android Open Source Project		{
44264064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("CLI Event - IPC_EVENT_BT_COEX_MODE (SG is ON, minTxRate = %d)\n",btCoexStatus->minTxRate);
44364064216a8433360745f69edddce19a606659163The Android Open Source Project		}
44464064216a8433360745f69edddce19a606659163The Android Open Source Project		else
44564064216a8433360745f69edddce19a606659163The Android Open Source Project		{
44664064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("CLI Event - IPC_EVENT_BT_COEX_MODE (SG is OFF)\n");
44764064216a8433360745f69edddce19a606659163The Android Open Source Project		}
44864064216a8433360745f69edddce19a606659163The Android Open Source Project		break;
44964064216a8433360745f69edddce19a606659163The Android Open Source Project
45064064216a8433360745f69edddce19a606659163The Android Open Source Project        default:
45164064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("CLI Event - Unknown event\n");
45264064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
45364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
45464064216a8433360745f69edddce19a606659163The Android Open Source Project    return 0;
45564064216a8433360745f69edddce19a606659163The Android Open Source Project
45664064216a8433360745f69edddce19a606659163The Android Open Source Project
45764064216a8433360745f69edddce19a606659163The Android Open Source Project}
45864064216a8433360745f69edddce19a606659163The Android Open Source Project
45964064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic char *print_rate(rate_e rate)
46064064216a8433360745f69edddce19a606659163The Android Open Source Project{
46164064216a8433360745f69edddce19a606659163The Android Open Source Project    static char buf[20];
46264064216a8433360745f69edddce19a606659163The Android Open Source Project
46364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( rate == 0 )
46464064216a8433360745f69edddce19a606659163The Android Open Source Project        return "Auto (0)";
46564064216a8433360745f69edddce19a606659163The Android Open Source Project
46664064216a8433360745f69edddce19a606659163The Android Open Source Project    sprintf(buf, "%.3g Mbps (%u%s)", RATE_2_MBPS(rate), rate,
46764064216a8433360745f69edddce19a606659163The Android Open Source Project        IS_BASIC_RATE(rate) ? " - basic" : "" );
46864064216a8433360745f69edddce19a606659163The Android Open Source Project    return buf;
46964064216a8433360745f69edddce19a606659163The Android Open Source Project}
47064064216a8433360745f69edddce19a606659163The Android Open Source Project
47164064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic BOOL isJunkSSID(OS_802_11_SSID *ssid )
47264064216a8433360745f69edddce19a606659163The Android Open Source Project{
47364064216a8433360745f69edddce19a606659163The Android Open Source Project    if ((ssid == NULL) || (ssid->SsidLength == 0))
47464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
47564064216a8433360745f69edddce19a606659163The Android Open Source Project        return TRUE;
47664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
47764064216a8433360745f69edddce19a606659163The Android Open Source Project
47864064216a8433360745f69edddce19a606659163The Android Open Source Project    if (ssid->SsidLength > 2)
47964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
48064064216a8433360745f69edddce19a606659163The Android Open Source Project        if ((ssid->Ssid[0] < MAX_SSID_LEN) &&
48164064216a8433360745f69edddce19a606659163The Android Open Source Project            (ssid->Ssid[1] < MAX_SSID_LEN) &&
48264064216a8433360745f69edddce19a606659163The Android Open Source Project            (ssid->Ssid[2] < MAX_SSID_LEN))
48364064216a8433360745f69edddce19a606659163The Android Open Source Project        {
48464064216a8433360745f69edddce19a606659163The Android Open Source Project            return TRUE;
48564064216a8433360745f69edddce19a606659163The Android Open Source Project        }
48664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
48764064216a8433360745f69edddce19a606659163The Android Open Source Project
48864064216a8433360745f69edddce19a606659163The Android Open Source Project    return FALSE;
48964064216a8433360745f69edddce19a606659163The Android Open Source Project}
49064064216a8433360745f69edddce19a606659163The Android Open Source Project
49164064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic char *get_ssid_string(OS_802_11_SSID *ssid )
49264064216a8433360745f69edddce19a606659163The Android Open Source Project{
49364064216a8433360745f69edddce19a606659163The Android Open Source Project    static char tmp_buf[MAX_SSID_LEN+1];
49464064216a8433360745f69edddce19a606659163The Android Open Source Project    if ((ssid == NULL) || (ssid->SsidLength == 0) || isJunkSSID(ssid))
49564064216a8433360745f69edddce19a606659163The Android Open Source Project        return "<empty>";
49664064216a8433360745f69edddce19a606659163The Android Open Source Project
49764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (ssid->SsidLength < SIZE_ARR(ssid->Ssid))
49864064216a8433360745f69edddce19a606659163The Android Open Source Project           ssid->Ssid[ssid->SsidLength] = 0;
49964064216a8433360745f69edddce19a606659163The Android Open Source Project    else if( ssid->SsidLength == MAX_SSID_LEN )
50064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
50164064216a8433360745f69edddce19a606659163The Android Open Source Project        memcpy(tmp_buf, ssid->Ssid, MAX_SSID_LEN );
50264064216a8433360745f69edddce19a606659163The Android Open Source Project        tmp_buf[MAX_SSID_LEN] = 0;
50364064216a8433360745f69edddce19a606659163The Android Open Source Project        return tmp_buf;
50464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
50564064216a8433360745f69edddce19a606659163The Android Open Source Project    else
50664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
50764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("error: invalid ssid length (len = %u)\n", ssid->SsidLength );
50864064216a8433360745f69edddce19a606659163The Android Open Source Project        return "<error>";
50964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
51064064216a8433360745f69edddce19a606659163The Android Open Source Project    return (char *) ssid->Ssid;
51164064216a8433360745f69edddce19a606659163The Android Open Source Project}
51264064216a8433360745f69edddce19a606659163The Android Open Source Project/*  return 0 on error
51364064216a8433360745f69edddce19a606659163The Android Open Source Project    or 'mac' if success
51464064216a8433360745f69edddce19a606659163The Android Open Source Project    'str' format: num.num.num.num.num.num (where 'num' is number from 0 to 255)
51564064216a8433360745f69edddce19a606659163The Android Open Source Project*/
51664064216a8433360745f69edddce19a606659163The Android Open Source ProjectU8* str2MACAddr(char *str, U8 *mac)
51764064216a8433360745f69edddce19a606659163The Android Open Source Project{
51864064216a8433360745f69edddce19a606659163The Android Open Source Project    const int mac_len = 6;
51964064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
52064064216a8433360745f69edddce19a606659163The Android Open Source Project    char *p = str;
52164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _WINDOWS
52264064216a8433360745f69edddce19a606659163The Android Open Source Project    errno = 0;
52364064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
52464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("str2MAC():");
52564064216a8433360745f69edddce19a606659163The Android Open Source Project    for( i=0; i<mac_len; i++ )
52664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
52764064216a8433360745f69edddce19a606659163The Android Open Source Project        mac[i] = (U8) strtoul(p, &p, 16);
52864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _WINDOWS
52964064216a8433360745f69edddce19a606659163The Android Open Source Project        if( errno == ERANGE )
53064064216a8433360745f69edddce19a606659163The Android Open Source Project            return NULL;
53164064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
53264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("%2x.", mac[i] );
53364064216a8433360745f69edddce19a606659163The Android Open Source Project        p++;
53464064216a8433360745f69edddce19a606659163The Android Open Source Project
53564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
53664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\n");
53764064216a8433360745f69edddce19a606659163The Android Open Source Project    return mac;
53864064216a8433360745f69edddce19a606659163The Android Open Source Project}
53964064216a8433360745f69edddce19a606659163The Android Open Source Project
54064064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic char * print_mac_2_str(OS_802_11_MAC_ADDRESS mac)
54164064216a8433360745f69edddce19a606659163The Android Open Source Project{
54264064216a8433360745f69edddce19a606659163The Android Open Source Project    static char buf[30];
54364064216a8433360745f69edddce19a606659163The Android Open Source Project
54464064216a8433360745f69edddce19a606659163The Android Open Source Project    sprintf(buf, "%02x.%02x.%02x.%02x.%02x.%02x",
54564064216a8433360745f69edddce19a606659163The Android Open Source Project                mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
54664064216a8433360745f69edddce19a606659163The Android Open Source Project
54764064216a8433360745f69edddce19a606659163The Android Open Source Project    return buf;
54864064216a8433360745f69edddce19a606659163The Android Open Source Project}
54964064216a8433360745f69edddce19a606659163The Android Open Source Project
55064064216a8433360745f69edddce19a606659163The Android Open Source Project/* convert hex MAC addr in the form xx:xx:xx:xx:xx:xx to mac address */
55164064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void hexStr2MACAddr( char *hexStr, macAddress_t* mac )
55264064216a8433360745f69edddce19a606659163The Android Open Source Project{
55364064216a8433360745f69edddce19a606659163The Android Open Source Project    size_t i;
55464064216a8433360745f69edddce19a606659163The Android Open Source Project    char *currHexStrPos = hexStr;
55564064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT8 tempValue;
55664064216a8433360745f69edddce19a606659163The Android Open Source Project
55764064216a8433360745f69edddce19a606659163The Android Open Source Project    /* convert hex string to lower */
55864064216a8433360745f69edddce19a606659163The Android Open Source Project    for ( i = 0; i < strlen(hexStr); i++ )
55964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
56064064216a8433360745f69edddce19a606659163The Android Open Source Project        hexStr[ i ] = tolower( hexStr[ i ] );
56164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
56264064216a8433360745f69edddce19a606659163The Android Open Source Project
56364064216a8433360745f69edddce19a606659163The Android Open Source Project    /* convert to numbers */
56464064216a8433360745f69edddce19a606659163The Android Open Source Project    for ( i = 0; i < 6; i++ )
56564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
56664064216a8433360745f69edddce19a606659163The Android Open Source Project        tempValue = 0;
56764064216a8433360745f69edddce19a606659163The Android Open Source Project        if ( *currHexStrPos >= 'a' )
56864064216a8433360745f69edddce19a606659163The Android Open Source Project            tempValue = *currHexStrPos - 'a' + 10;
56964064216a8433360745f69edddce19a606659163The Android Open Source Project        else
57064064216a8433360745f69edddce19a606659163The Android Open Source Project            tempValue = *currHexStrPos - '0';
57164064216a8433360745f69edddce19a606659163The Android Open Source Project        currHexStrPos++;
57264064216a8433360745f69edddce19a606659163The Android Open Source Project        tempValue <<= 4;
57364064216a8433360745f69edddce19a606659163The Android Open Source Project        if ( *currHexStrPos >= 'a' )
57464064216a8433360745f69edddce19a606659163The Android Open Source Project            tempValue += *currHexStrPos - 'a' + 10;
57564064216a8433360745f69edddce19a606659163The Android Open Source Project        else
57664064216a8433360745f69edddce19a606659163The Android Open Source Project            tempValue += *currHexStrPos - '0';
57764064216a8433360745f69edddce19a606659163The Android Open Source Project        currHexStrPos += 2;
57864064216a8433360745f69edddce19a606659163The Android Open Source Project        mac->addr[ i ] = tempValue;
57964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
58064064216a8433360745f69edddce19a606659163The Android Open Source Project}
58164064216a8433360745f69edddce19a606659163The Android Open Source Project
58264064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void mac2HexStr( macAddress_t* mac, char* hexStr )
58364064216a8433360745f69edddce19a606659163The Android Open Source Project{
58464064216a8433360745f69edddce19a606659163The Android Open Source Project    sprintf( hexStr, "%02x:%02x:%02x:%02x:%02x:%02x",
58564064216a8433360745f69edddce19a606659163The Android Open Source Project        mac->addr[0],mac->addr[1],mac->addr[2],mac->addr[3],mac->addr[4],mac->addr[5]);
58664064216a8433360745f69edddce19a606659163The Android Open Source Project}
58764064216a8433360745f69edddce19a606659163The Android Open Source Project
58864064216a8433360745f69edddce19a606659163The Android Open Source Projectchar *get_name_by_value(named_value_t *arr, int arr_size, UINT32 value)
58964064216a8433360745f69edddce19a606659163The Android Open Source Project{
59064064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
59164064216a8433360745f69edddce19a606659163The Android Open Source Project    for(i=0; i<arr_size; i++) {
59264064216a8433360745f69edddce19a606659163The Android Open Source Project        if( arr[i].value == value )
59364064216a8433360745f69edddce19a606659163The Android Open Source Project            return arr[i].name;
59464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
59564064216a8433360745f69edddce19a606659163The Android Open Source Project    return "<unknow>";
59664064216a8433360745f69edddce19a606659163The Android Open Source Project}
59764064216a8433360745f69edddce19a606659163The Android Open Source Project
59864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_supported_rates(ConParm_t parm[], U16 nParms)
59964064216a8433360745f69edddce19a606659163The Android Open Source Project{
60064064216a8433360745f69edddce19a606659163The Android Open Source Project    rates_t data = { 0 };
60164064216a8433360745f69edddce19a606659163The Android Open Source Project    char debug_buf[256] = { 0 };
60264064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
60364064216a8433360745f69edddce19a606659163The Android Open Source Project
60464064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
60564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
60664064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetSupportedRates(g_id_adapter, (tiUINT8*)&data, sizeof(data)) )
60764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
60864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal(" Rates: ");
60964064216a8433360745f69edddce19a606659163The Android Open Source Project            for( i=0; i<MAX_SUPPORTED_RATES && i < data.len; i++ )
61064064216a8433360745f69edddce19a606659163The Android Open Source Project            {
61164064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("%g Mbps(%u%s)%s", RATE_2_MBPS(data.ratesString[i]),
61264064216a8433360745f69edddce19a606659163The Android Open Source Project                    data.ratesString[i],
61364064216a8433360745f69edddce19a606659163The Android Open Source Project                    IS_BASIC_RATE(data.ratesString[i]) ? " - basic" : "",
61464064216a8433360745f69edddce19a606659163The Android Open Source Project                    (i < data.len-1) ? "," : "" );
61564064216a8433360745f69edddce19a606659163The Android Open Source Project            }
61664064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("\n");
61764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
61864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
61964064216a8433360745f69edddce19a606659163The Android Open Source Project    else
62064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
62164064216a8433360745f69edddce19a606659163The Android Open Source Project        char *end_p, *buf = (char *) parm[0].value;
62264064216a8433360745f69edddce19a606659163The Android Open Source Project        float val;
62364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("param: %s\n", buf );
62464064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _WINDOWS
62564064216a8433360745f69edddce19a606659163The Android Open Source Project        errno = 0;
62664064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
62764064216a8433360745f69edddce19a606659163The Android Open Source Project        for( i=0; *buf && i < MAX_SUPPORTED_RATES; i++ )
62864064216a8433360745f69edddce19a606659163The Android Open Source Project        {
62964064216a8433360745f69edddce19a606659163The Android Open Source Project            val = (float) strtod(buf, &end_p);
63064064216a8433360745f69edddce19a606659163The Android Open Source Project            if(
63164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _WINDOWS
63264064216a8433360745f69edddce19a606659163The Android Open Source Project			   errno ||
63364064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
63464064216a8433360745f69edddce19a606659163The Android Open Source Project			   buf == end_p )
63564064216a8433360745f69edddce19a606659163The Android Open Source Project            {
63664064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("cmd_modify_supported_rates(): invalid value - %s\n", buf );
63764064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
63864064216a8433360745f69edddce19a606659163The Android Open Source Project            }
63964064216a8433360745f69edddce19a606659163The Android Open Source Project            if( val > ((1 << (sizeof(data.ratesString[i]) * 8))-1) )
64064064216a8433360745f69edddce19a606659163The Android Open Source Project            {
64164064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("cmd_modify_supported_rates(): out of range '%.*s'\n", end_p - buf, buf );
64264064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
64364064216a8433360745f69edddce19a606659163The Android Open Source Project            }
64464064216a8433360745f69edddce19a606659163The Android Open Source Project            data.ratesString[i] = (tiUINT8) (val);
64564064216a8433360745f69edddce19a606659163The Android Open Source Project
64664064216a8433360745f69edddce19a606659163The Android Open Source Project            sprintf(&debug_buf[strlen(debug_buf)], "%g (%d) ", val, data.ratesString[i] );
64764064216a8433360745f69edddce19a606659163The Android Open Source Project
64864064216a8433360745f69edddce19a606659163The Android Open Source Project            buf = end_p;
64964064216a8433360745f69edddce19a606659163The Android Open Source Project            while( *buf==' ' || *buf == ',' )   buf++;
65064064216a8433360745f69edddce19a606659163The Android Open Source Project
65164064216a8433360745f69edddce19a606659163The Android Open Source Project        }
65264064216a8433360745f69edddce19a606659163The Android Open Source Project
65364064216a8433360745f69edddce19a606659163The Android Open Source Project        if( *buf )
65464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
65564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("too many parameters. Max=%d\n", MAX_SUPPORTED_RATES );
65664064216a8433360745f69edddce19a606659163The Android Open Source Project            return;
65764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
65864064216a8433360745f69edddce19a606659163The Android Open Source Project
65964064216a8433360745f69edddce19a606659163The Android Open Source Project        data.len = i;
66064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("**set rates (%d) :%s\n", data.len, debug_buf );
66164064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetSupportedRates(g_id_adapter, (tiUINT8*) &data, sizeof(data));
66264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
66364064216a8433360745f69edddce19a606659163The Android Open Source Project}
66464064216a8433360745f69edddce19a606659163The Android Open Source Project
66564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_show_status(ConParm_t parm[], U16 nParms)
66664064216a8433360745f69edddce19a606659163The Android Open Source Project{
66764064216a8433360745f69edddce19a606659163The Android Open Source Project    tiINT32 res;
66864064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_BSSID_EX BssIdInfo;
66964064216a8433360745f69edddce19a606659163The Android Open Source Project
67064064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 data;
67164064216a8433360745f69edddce19a606659163The Android Open Source Project    char buf[4096] = { 0 };
67264064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_SSID ssid = { 0 };
67364064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_MAC_ADDRESS bssid = { 0 };
67464064216a8433360745f69edddce19a606659163The Android Open Source Project
67564064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
67664064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
67764064216a8433360745f69edddce19a606659163The Android Open Source Project
67864064216a8433360745f69edddce19a606659163The Android Open Source Project    buf[0] = 0;
67964064216a8433360745f69edddce19a606659163The Android Open Source Project
68064064216a8433360745f69edddce19a606659163The Android Open Source Project    res = TI_WLAN_IsDriverRun(g_id_adapter, (tiBOOL *)&data);
68164064216a8433360745f69edddce19a606659163The Android Open Source Project    if( res )
68264064216a8433360745f69edddce19a606659163The Android Open Source Project        return ;
68364064216a8433360745f69edddce19a606659163The Android Open Source Project
68464064216a8433360745f69edddce19a606659163The Android Open Source Project    sprintf(buf, "Status   : %s\n", res ? "<error>" : (data ? "running" : "stopped") );
68564064216a8433360745f69edddce19a606659163The Android Open Source Project
68664064216a8433360745f69edddce19a606659163The Android Open Source Project    sprintf(&buf[strlen(buf)], "MAC      : ");
68764064216a8433360745f69edddce19a606659163The Android Open Source Project    if( !TI_GetCurrentAddress(g_id_adapter, &bssid ) )
68864064216a8433360745f69edddce19a606659163The Android Open Source Project        strcat(buf, print_mac_2_str(bssid) );
68964064216a8433360745f69edddce19a606659163The Android Open Source Project    else
69064064216a8433360745f69edddce19a606659163The Android Open Source Project        strcat(buf, "<error>");
69164064216a8433360745f69edddce19a606659163The Android Open Source Project
69264064216a8433360745f69edddce19a606659163The Android Open Source Project    strcat(buf, "\nSSID     : ");
69364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( !TI_GetCurrentSSID(g_id_adapter, &ssid) )
69464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
69564064216a8433360745f69edddce19a606659163The Android Open Source Project        if (!isJunkSSID(&ssid))
69664064216a8433360745f69edddce19a606659163The Android Open Source Project        {
69764064216a8433360745f69edddce19a606659163The Android Open Source Project           strncat(buf, get_ssid_string(&ssid),ssid.SsidLength);
69864064216a8433360745f69edddce19a606659163The Android Open Source Project        }
69964064216a8433360745f69edddce19a606659163The Android Open Source Project        else
70064064216a8433360745f69edddce19a606659163The Android Open Source Project        {
70164064216a8433360745f69edddce19a606659163The Android Open Source Project           strcat(buf,"<empty>");
70264064216a8433360745f69edddce19a606659163The Android Open Source Project        }
70364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
70464064216a8433360745f69edddce19a606659163The Android Open Source Project    else
70564064216a8433360745f69edddce19a606659163The Android Open Source Project        strcat(buf, "<error>" );
70664064216a8433360745f69edddce19a606659163The Android Open Source Project
70764064216a8433360745f69edddce19a606659163The Android Open Source Project    sprintf(&buf[strlen(buf)], "\nBSSID    : ");
70864064216a8433360745f69edddce19a606659163The Android Open Source Project
70964064216a8433360745f69edddce19a606659163The Android Open Source Project   TI_GetSelectedBSSIDInfo(g_id_adapter, &BssIdInfo);
71064064216a8433360745f69edddce19a606659163The Android Open Source Project   strcat(buf, print_mac_2_str(BssIdInfo.MacAddress));
71164064216a8433360745f69edddce19a606659163The Android Open Source Project
71264064216a8433360745f69edddce19a606659163The Android Open Source Project    strcat(buf, "\nChannel  : ");
71364064216a8433360745f69edddce19a606659163The Android Open Source Project    data = 0;
71464064216a8433360745f69edddce19a606659163The Android Open Source Project    if( !TI_GetCurrentChannel(g_id_adapter, &data ) )
71564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
71664064216a8433360745f69edddce19a606659163The Android Open Source Project        sprintf(&buf[strlen(buf)], "%d", data );
71764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
71864064216a8433360745f69edddce19a606659163The Android Open Source Project    else
71964064216a8433360745f69edddce19a606659163The Android Open Source Project        strcat(buf, "<error>");
72064064216a8433360745f69edddce19a606659163The Android Open Source Project
72164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("==========================\n%s\n==========================\n\n", buf);
72264064216a8433360745f69edddce19a606659163The Android Open Source Project}
72364064216a8433360745f69edddce19a606659163The Android Open Source Project
72464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_connect(ConParm_t parm[], U16 nParms)
72564064216a8433360745f69edddce19a606659163The Android Open Source Project{
72664064216a8433360745f69edddce19a606659163The Android Open Source Project    char buf[1] = { 0 };
72764064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_MAC_ADDRESS bssid = { 0xff,0xff,0xff,0xff,0xff,0xff };
72864064216a8433360745f69edddce19a606659163The Android Open Source Project
72964064216a8433360745f69edddce19a606659163The Android Open Source Project    buf[0] = 0;
73064064216a8433360745f69edddce19a606659163The Android Open Source Project
73164064216a8433360745f69edddce19a606659163The Android Open Source Project    switch (nParms) {
73264064216a8433360745f69edddce19a606659163The Android Open Source Project
73364064216a8433360745f69edddce19a606659163The Android Open Source Project    case 0 :
73464064216a8433360745f69edddce19a606659163The Android Open Source Project        /*
73564064216a8433360745f69edddce19a606659163The Android Open Source Project         *  No SSID & No BSSID are set -
73664064216a8433360745f69edddce19a606659163The Android Open Source Project         *  Use Any SSID & Any BSSID.
73764064216a8433360745f69edddce19a606659163The Android Open Source Project         */
73864064216a8433360745f69edddce19a606659163The Android Open Source Project
73964064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetBSSID(g_id_adapter, &bssid );
74064064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetSSID(g_id_adapter, (tiUINT8 *) buf);
74164064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
74264064216a8433360745f69edddce19a606659163The Android Open Source Project
74364064216a8433360745f69edddce19a606659163The Android Open Source Project    case 1:
74464064216a8433360745f69edddce19a606659163The Android Open Source Project        /*
74564064216a8433360745f69edddce19a606659163The Android Open Source Project         *  SSID set & BSSID insn't set  -
74664064216a8433360745f69edddce19a606659163The Android Open Source Project         *  Use CLI's SSID & Any BSSID.
74764064216a8433360745f69edddce19a606659163The Android Open Source Project         */
74864064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetBSSID(g_id_adapter, &bssid );
74964064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetSSID(g_id_adapter, (tiUINT8 *) parm[0].value);
75064064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
75164064216a8433360745f69edddce19a606659163The Android Open Source Project
75264064216a8433360745f69edddce19a606659163The Android Open Source Project    case 2:
75364064216a8433360745f69edddce19a606659163The Android Open Source Project        /*
75464064216a8433360745f69edddce19a606659163The Android Open Source Project         *  Both SSID & BSSID are set -
75564064216a8433360745f69edddce19a606659163The Android Open Source Project         *  Use CLI's SSID & BSSID.
75664064216a8433360745f69edddce19a606659163The Android Open Source Project         */
75764064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !str2MACAddr((char *) parm[1].value, bssid) )
75864064216a8433360745f69edddce19a606659163The Android Open Source Project            return;
75964064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetBSSID(g_id_adapter, &bssid);
76064064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetSSID(g_id_adapter, (tiUINT8 *) parm[0].value);
76164064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
76264064216a8433360745f69edddce19a606659163The Android Open Source Project}
76364064216a8433360745f69edddce19a606659163The Android Open Source Project}
76464064216a8433360745f69edddce19a606659163The Android Open Source Project
76564064216a8433360745f69edddce19a606659163The Android Open Source Project
76664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_disassociate(ConParm_t parm[], U16 nParms)
76764064216a8433360745f69edddce19a606659163The Android Open Source Project{
76864064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
76964064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
77064064216a8433360745f69edddce19a606659163The Android Open Source Project
77164064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_Disassociate(g_id_adapter);
77264064216a8433360745f69edddce19a606659163The Android Open Source Project}
77364064216a8433360745f69edddce19a606659163The Android Open Source Project
77464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_show_advanced_params(ConParm_t parm[], U16 nParms)
77564064216a8433360745f69edddce19a606659163The Android Open Source Project{
77664064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 mode_4x = 0, preamble = 0xfefefefe;
77764064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_AUTHENTICATION_MODE auth;
77864064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_ENCRYPTION_TYPES encrypt;
77964064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32    rts_tresh;
78064064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32    frag_tresh = 0xfefefefe;
78164064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT8     tx_power = 0xfe;
78264064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_POWER_PROFILE power_mode = 0;
78364064216a8433360745f69edddce19a606659163The Android Open Source Project
78464064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
78564064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
78664064216a8433360745f69edddce19a606659163The Android Open Source Project
78764064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetAuthenticationMode(g_id_adapter, &auth );
78864064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetTxPowerDbm(g_id_adapter, (tiCHAR*) &tx_power);
78964064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetFragmentThreshold( g_id_adapter, &frag_tresh);
79064064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRTSThreshold( g_id_adapter, &rts_tresh);
79164064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_Get4XState( g_id_adapter, &mode_4x);
79264064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetEncryptionType( g_id_adapter, &encrypt );
79364064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetPowerMode(g_id_adapter, (OS_802_11_POWER_PROFILE*) &power_mode );
79464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("  Authentication : %u\n", auth );
79564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("      Power mode : %d\n", (tiUINT32) power_mode );
79664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("  Tx Power (Dbm/10 units) : %d\n", tx_power );
79764064216a8433360745f69edddce19a606659163The Android Open Source Project
79864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("      Encryption : %u\n", encrypt );
79964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("        Preamble : <%s>\n", (preamble) ? "short" : "long");
80064064216a8433360745f69edddce19a606659163The Android Open Source Project/*    console_printf_terminal("      Tx antenna : %u\n", tx_ant );*/
80164064216a8433360745f69edddce19a606659163The Android Open Source Project/*    console_printf_terminal(  "      Rx antenna : %u\n", rx_ant );*/
80264064216a8433360745f69edddce19a606659163The Android Open Source Project/*    console_printf_terminal(  "Ap Tx power level: n/a\n" );*/
80364064216a8433360745f69edddce19a606659163The Android Open Source Project/*    console_printf_terminal(  "  Tx power value : %lu\n", tx_power_val );*/
80464064216a8433360745f69edddce19a606659163The Android Open Source Project/*    console_printf_terminal(  "     MAC address : n/a\n" );*/
80564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(  "        4X state : %d\n", mode_4x );
80664064216a8433360745f69edddce19a606659163The Android Open Source Project/*     console_printf_terminal(  "        B/G mode : n/a\n" );*/
80764064216a8433360745f69edddce19a606659163The Android Open Source Project/*     console_printf_terminal(  "    Country code : n/a\n" );*/
80864064216a8433360745f69edddce19a606659163The Android Open Source Project/*     console_printf_terminal(  "      IP address : n/a\n" );*/
80964064216a8433360745f69edddce19a606659163The Android Open Source Project/*     console_printf_terminal(  "        Net mask : n/a\n" );*/
81064064216a8433360745f69edddce19a606659163The Android Open Source Project/*     console_printf_terminal(  "         Gateway : n/a\n" );*/
81164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(  " Frag. threshold : %u\n", frag_tresh);
81264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(  "   RTS threshold : %u\n", rts_tresh );
81364064216a8433360745f69edddce19a606659163The Android Open Source Project
81464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(  "Power mode: ");
81564064216a8433360745f69edddce19a606659163The Android Open Source Project    print_available_values(power_mode_val);
81664064216a8433360745f69edddce19a606659163The Android Open Source Project
81764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(  "Encryption type: ");
81864064216a8433360745f69edddce19a606659163The Android Open Source Project    print_available_values(encrypt_type);
81964064216a8433360745f69edddce19a606659163The Android Open Source Project}
82064064216a8433360745f69edddce19a606659163The Android Open Source Project
82164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_show_statistics(ConParm_t parm[], U16 nParms)
82264064216a8433360745f69edddce19a606659163The Android Open Source Project{
82364064216a8433360745f69edddce19a606659163The Android Open Source Project    TIWLN_STATISTICS statistics = { 0 } ;
82464064216a8433360745f69edddce19a606659163The Android Open Source Project
82564064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
82664064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
82764064216a8433360745f69edddce19a606659163The Android Open Source Project
82864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(  "TI_GetStatistics(%s, data=%p, size=%d\n", (char*) g_id_adapter, &statistics, sizeof(statistics) );
82964064216a8433360745f69edddce19a606659163The Android Open Source Project
83064064216a8433360745f69edddce19a606659163The Android Open Source Project    if( TI_GetStatistics( g_id_adapter, &statistics ) )
83164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
83264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal ("Error in getting TI_GetStatistics!!\n");
83364064216a8433360745f69edddce19a606659163The Android Open Source Project        return;
83464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
83564064216a8433360745f69edddce19a606659163The Android Open Source Project
83664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("******************\n");
83764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Driver Statistics:\n");
83864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("******************\n");
83964064216a8433360745f69edddce19a606659163The Android Open Source Project
84064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("    dot11CurrentTxRate : %s\n", print_rate(statistics.dot11CurrentTxRate) );
84164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("   dot11CurrentChannel : %d\n", statistics.dot11CurrentChannel );
84264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("     currentMACAddress : %s\n", print_mac_2_str(statistics.currentMACAddress) );
84364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("      dot11DesiredSSID : %s\n", get_ssid_string(&statistics.dot11DesiredSSID) );
84464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("          dot11BSSType : %d\n", statistics.dot11BSSType );
84564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("    AuthenticationMode : %d\n", statistics.AuthenticationMode );
84664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("    bShortPreambleUsed : %d\n", statistics.bShortPreambleUsed );
84764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("          RTSThreshold : %d\n", statistics.RTSThreshold );
84864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("FragmentationThreshold : %d\n", statistics.FragmentationThreshold );
84964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(" bDefaultWEPKeyDefined : %d\n", statistics.bDefaultWEPKeyDefined );
85064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("             WEPStatus : %d\n", statistics.WEPStatus );
85164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("             TxAntenna : %d\n", statistics.TxAntenna );
85264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("             RxAntenna : %d\n", statistics.RxAntenna );
85364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("            TxPowerDbm : %d\n", statistics.TxPowerDbm );
85464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("             PowerMode : %d\n", statistics.PowerMode );
85564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("               RxLevel : %d\n", statistics.RxLevel );
85664064216a8433360745f69edddce19a606659163The Android Open Source Project
85764064216a8433360745f69edddce19a606659163The Android Open Source Project    /**/
85864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* status & AP info*/
85964064216a8433360745f69edddce19a606659163The Android Open Source Project    /**/
86064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("            dot11State : %d\n", statistics.dot11State );
86164064216a8433360745f69edddce19a606659163The Android Open Source Project
86264064216a8433360745f69edddce19a606659163The Android Open Source Project    /**/
86364064216a8433360745f69edddce19a606659163The Android Open Source Project    /* network layer statistics*/
86464064216a8433360745f69edddce19a606659163The Android Open Source Project    /**/
86564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("                RecvOk : %d\n", statistics.tiCounters.RecvOk );
86664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("             RecvError : %d\n", statistics.tiCounters.RecvError );
86764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("     DirectedBytesRecv : %d\n", statistics.tiCounters.DirectedBytesRecv );
86864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("    DirectedFramesRecv : %d\n", statistics.tiCounters.DirectedFramesRecv );
86964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("    MulticastBytesRecv : %d\n", statistics.tiCounters.MulticastBytesRecv );
87064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("   MulticastFramesRecv : %d\n", statistics.tiCounters.MulticastFramesRecv );
87164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("    BroadcastBytesRecv : %d\n", statistics.tiCounters.BroadcastBytesRecv );
87264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("   BroadcastFramesRecv : %d\n", statistics.tiCounters.BroadcastFramesRecv );
87364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("             FcsErrors : %d\n", statistics.tiCounters.FcsErrors );
87464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("           BeaconsRecv : %d\n", statistics.tiCounters.BeaconsRecv );
87564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("          AssocRejects : %d\n", statistics.tiCounters.AssocRejects );
87664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("         AssocTimeouts : %d\n", statistics.tiCounters.AssocTimeouts );
87764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("           AuthRejects : %d\n", statistics.tiCounters.AuthRejects );
87864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("          AuthTimeouts : %d\n", statistics.tiCounters.AuthTimeouts );
87964064216a8433360745f69edddce19a606659163The Android Open Source Project
88064064216a8433360745f69edddce19a606659163The Android Open Source Project    /**/
88164064216a8433360745f69edddce19a606659163The Android Open Source Project    /* other statistics*/
88264064216a8433360745f69edddce19a606659163The Android Open Source Project    /**/
88364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("        dwSecuritySuit : %d\n", statistics.dwSecuritySuit );
88464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("       dwSecurityState : %d\n", statistics.dwSecurityState );
88564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("  dwSecurityAuthStatus : %d\n", statistics.dwSecurityAuthStatus );
88664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("         dwFeatureSuit : %d\n", statistics.dwFeatureSuit );
88764064216a8433360745f69edddce19a606659163The Android Open Source Project}
88864064216a8433360745f69edddce19a606659163The Android Open Source Project
88964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_show_tx_statistics(ConParm_t parm[], U16 nParms)
89064064216a8433360745f69edddce19a606659163The Android Open Source Project{
89164064216a8433360745f69edddce19a606659163The Android Open Source Project    TIWLN_TX_STATISTICS statistics;
89264064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 TxQid;
89364064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 AverageDelay;
89464064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 AverageFWDelay;
89564064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 AverageMacDelay;
89664064216a8433360745f69edddce19a606659163The Android Open Source Project    tiINT32 status;
89764064216a8433360745f69edddce19a606659163The Android Open Source Project
89864064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
89964064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
90064064216a8433360745f69edddce19a606659163The Android Open Source Project
90164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("TI_GetTxStatistics(%s, data=%p, size=%d\n", (char*) g_id_adapter, &statistics, sizeof(statistics) );
90264064216a8433360745f69edddce19a606659163The Android Open Source Project
90364064216a8433360745f69edddce19a606659163The Android Open Source Project    /* The first parameter indicates whether to clear the statistics on read: 0 - don't clear, 1 - clear */
90464064216a8433360745f69edddce19a606659163The Android Open Source Project    if ( 0 == nParms )
90564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
90664064216a8433360745f69edddce19a606659163The Android Open Source Project        status = TI_GetTxStatistics( g_id_adapter, &statistics, 0 );
90764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
90864064216a8433360745f69edddce19a606659163The Android Open Source Project    else
90964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
91064064216a8433360745f69edddce19a606659163The Android Open Source Project        status = TI_GetTxStatistics( g_id_adapter, &statistics, parm[0].value );
91164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
91264064216a8433360745f69edddce19a606659163The Android Open Source Project
91364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( status )
91464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
91564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal ("Error in getting TI_GetTxStatistics!!\n");
91664064216a8433360745f69edddce19a606659163The Android Open Source Project        return;
91764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
91864064216a8433360745f69edddce19a606659163The Android Open Source Project
91964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("*********************\n");
92064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Tx Queues Statistics:\n");
92164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("*********************\n");
92264064216a8433360745f69edddce19a606659163The Android Open Source Project
92364064216a8433360745f69edddce19a606659163The Android Open Source Project    for (TxQid = 0; TxQid < MAX_NUM_OF_TX_QUEUES; TxQid++)
92464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
92564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("\nTx Queue %d:\n", TxQid);
92664064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("===========\n");
92764064216a8433360745f69edddce19a606659163The Android Open Source Project
92864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Total Good Frames             : %d\n", statistics.txCounters[TxQid].XmitOk );
92964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Unicast Bytes                 : %d\n", statistics.txCounters[TxQid].DirectedBytesXmit );
93064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Unicast Frames                : %d\n", statistics.txCounters[TxQid].DirectedFramesXmit );
93164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Multicast Bytes               : %d\n", statistics.txCounters[TxQid].MulticastBytesXmit );
93264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Multicast Frames              : %d\n", statistics.txCounters[TxQid].MulticastFramesXmit );
93364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Broadcast Bytes               : %d\n", statistics.txCounters[TxQid].BroadcastBytesXmit );
93464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Broadcast Frames              : %d\n", statistics.txCounters[TxQid].BroadcastFramesXmit );
93564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Retry Failures                : %d\n", statistics.txCounters[TxQid].RetryFailCounter );
93664064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Tx Timeout Failures           : %d\n", statistics.txCounters[TxQid].TxTimeoutCounter );
93764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  No Link Failures              : %d\n", statistics.txCounters[TxQid].NoLinkCounter );
93864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Other Failures                : %d\n", statistics.txCounters[TxQid].OtherFailCounter );
93964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Max Consecutive Retry Failures : %d\n\n", statistics.txCounters[TxQid].MaxConsecutiveRetryFail );
94064064216a8433360745f69edddce19a606659163The Android Open Source Project
94164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Retry histogram:\n");
94264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  ----------------\n\n");
94364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Retries: %8d %8d %8d %8d %8d %8d %8d %8d\n", 0, 1, 2, 3, 4, 5, 6, 7);
94464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  packets: %8d %8d %8d %8d %8d %8d %8d %8d\n\n",
94564064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 0 ],
94664064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 1 ],
94764064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 2 ],
94864064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 3 ],
94964064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 4 ],
95064064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 5 ],
95164064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 6 ],
95264064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 7 ]);
95364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Retries: %8d %8d %8d %8d %8d %8d %8d %8d\n", 8, 9, 10, 11, 12, 13, 14, 15);
95464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  packets: %8d %8d %8d %8d %8d %8d %8d %8d\n\n",
95564064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 8 ],
95664064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 9 ],
95764064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 10 ],
95864064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 11 ],
95964064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 12 ],
96064064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 13 ],
96164064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 14 ],
96264064216a8433360745f69edddce19a606659163The Android Open Source Project                                statistics.txCounters[TxQid].RetryHistogram[ 15 ]);
96364064216a8433360745f69edddce19a606659163The Android Open Source Project
96464064216a8433360745f69edddce19a606659163The Android Open Source Project        if (statistics.txCounters[TxQid].NumPackets)
96564064216a8433360745f69edddce19a606659163The Android Open Source Project        {
96664064216a8433360745f69edddce19a606659163The Android Open Source Project            AverageDelay = statistics.txCounters[TxQid].SumTotalDelayMs / statistics.txCounters[TxQid].NumPackets;
96764064216a8433360745f69edddce19a606659163The Android Open Source Project            AverageFWDelay = statistics.txCounters[TxQid].SumFWDelayUs / statistics.txCounters[TxQid].NumPackets;
96864064216a8433360745f69edddce19a606659163The Android Open Source Project            AverageMacDelay = statistics.txCounters[TxQid].SumMacDelayUs / statistics.txCounters[TxQid].NumPackets;
96964064216a8433360745f69edddce19a606659163The Android Open Source Project        }
97064064216a8433360745f69edddce19a606659163The Android Open Source Project        else
97164064216a8433360745f69edddce19a606659163The Android Open Source Project        {
97264064216a8433360745f69edddce19a606659163The Android Open Source Project            AverageDelay = 0;
97364064216a8433360745f69edddce19a606659163The Android Open Source Project            AverageFWDelay = 0;
97464064216a8433360745f69edddce19a606659163The Android Open Source Project            AverageMacDelay = 0;
97564064216a8433360745f69edddce19a606659163The Android Open Source Project        }
97664064216a8433360745f69edddce19a606659163The Android Open Source Project
97764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Total Delay ms (average/sum) : %d / %d\n", AverageDelay, statistics.txCounters[TxQid].SumTotalDelayMs);
97864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  FW Delay us (average/sum) : %d / %d\n", AverageFWDelay, statistics.txCounters[TxQid].SumFWDelayUs);
97964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  MAC Delay us (average/sum)   : %d / %d\n\n", AverageMacDelay, statistics.txCounters[TxQid].SumMacDelayUs);
98064064216a8433360745f69edddce19a606659163The Android Open Source Project
98164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  Delay Ranges [msec]  : Num of packets\n");
98264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("  -------------------  : --------------\n");
98364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("        0   -    1     : %d\n", statistics.txCounters[TxQid].txDelayHistogram[TX_DELAY_RANGE_0_TO_1] );
98464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("        1   -   10     : %d\n", statistics.txCounters[TxQid].txDelayHistogram[TX_DELAY_RANGE_1_TO_10] );
98564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("       10   -   20     : %d\n", statistics.txCounters[TxQid].txDelayHistogram[TX_DELAY_RANGE_10_TO_20] );
98664064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("       20   -   40     : %d\n", statistics.txCounters[TxQid].txDelayHistogram[TX_DELAY_RANGE_20_TO_40] );
98764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("       40   -   60     : %d\n", statistics.txCounters[TxQid].txDelayHistogram[TX_DELAY_RANGE_40_TO_60] );
98864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("       60   -   80     : %d\n", statistics.txCounters[TxQid].txDelayHistogram[TX_DELAY_RANGE_60_TO_80] );
98964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("       80   -  100     : %d\n", statistics.txCounters[TxQid].txDelayHistogram[TX_DELAY_RANGE_80_TO_100] );
99064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("      100   -  200     : %d\n", statistics.txCounters[TxQid].txDelayHistogram[TX_DELAY_RANGE_100_TO_200] );
99164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("        Above 200      : %d\n", statistics.txCounters[TxQid].txDelayHistogram[TX_DELAY_RANGE_ABOVE_200] );
99264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
99364064216a8433360745f69edddce19a606659163The Android Open Source Project}
99464064216a8433360745f69edddce19a606659163The Android Open Source Project
99564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_show_about(ConParm_t parm[], U16 nParms)
99664064216a8433360745f69edddce19a606659163The Android Open Source Project{
99764064216a8433360745f69edddce19a606659163The Android Open Source Project    TIWLN_VERSION_EX data;
99864064216a8433360745f69edddce19a606659163The Android Open Source Project
99964064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
100064064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
100164064216a8433360745f69edddce19a606659163The Android Open Source Project
100264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Utility version: %s (%u.%u.%u)\n", SW_VERSION_STR, SW_RELEASE_DAY,
100364064216a8433360745f69edddce19a606659163The Android Open Source Project            SW_RELEASE_MONTH, SW_RELEASE_YEAR );
100464064216a8433360745f69edddce19a606659163The Android Open Source Project    if( TI_GetDriverVersion(g_id_adapter, &data ) )
100564064216a8433360745f69edddce19a606659163The Android Open Source Project        return ;
100664064216a8433360745f69edddce19a606659163The Android Open Source Project
100764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Driver version: %u.%u.%u.%u.%u\n", data.DrvVersion.major, data.DrvVersion.minor,
100864064216a8433360745f69edddce19a606659163The Android Open Source Project            data.DrvVersion.bugfix, data.DrvVersion.subld, data.DrvVersion.build );
100964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Firmware version: %u.%u.%u.%u.%u\n", data.FWVersion.major, data.FWVersion.minor,
101064064216a8433360745f69edddce19a606659163The Android Open Source Project            data.FWVersion.bugfix, data.FWVersion.subld, data.FWVersion.build );
101164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Eeprom Version: %u.%u.%u.%u.%u\n", data.HWVersion.major, data.HWVersion.minor,
101264064216a8433360745f69edddce19a606659163The Android Open Source Project            data.HWVersion.bugfix, data.HWVersion.subld, data.HWVersion.build );
101364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Eeprom Version2: %u.%u.%u.%u.%u\n", data.NVVersion.major, data.NVVersion.minor,
101464064216a8433360745f69edddce19a606659163The Android Open Source Project            data.NVVersion.bugfix, data.NVVersion.subld, data.HWVersion.build );
101564064216a8433360745f69edddce19a606659163The Android Open Source Project}
101664064216a8433360745f69edddce19a606659163The Android Open Source Project
101764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_ssid(ConParm_t parm[], U16 nParms)
101864064216a8433360745f69edddce19a606659163The Android Open Source Project{
101964064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_SSID ssid = { 0 };
102064064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_MAC_ADDRESS bssid = { 0xff,0xff,0xff,0xff,0xff,0xff };
102164064216a8433360745f69edddce19a606659163The Android Open Source Project    char *ssid_str;
102264064216a8433360745f69edddce19a606659163The Android Open Source Project
102364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
102464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
102564064216a8433360745f69edddce19a606659163The Android Open Source Project        if(!TI_GetCurrentSSID(g_id_adapter, &ssid))
102664064216a8433360745f69edddce19a606659163The Android Open Source Project            ssid_str = get_ssid_string(&ssid);
102764064216a8433360745f69edddce19a606659163The Android Open Source Project        else
102864064216a8433360745f69edddce19a606659163The Android Open Source Project            ssid_str = "<error>";
102964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("SSID: %s\n",  ssid_str );
103064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
103164064216a8433360745f69edddce19a606659163The Android Open Source Project    else{
103264064216a8433360745f69edddce19a606659163The Android Open Source Project        /* Setting the new SSID, BRCS BSSID is set to clean pre-set BSSID */
103364064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetBSSID(g_id_adapter, &bssid );
103464064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetSSID(g_id_adapter, (tiUINT8 *) parm[0].value);
103564064216a8433360745f69edddce19a606659163The Android Open Source Project}
103664064216a8433360745f69edddce19a606659163The Android Open Source Project}
103764064216a8433360745f69edddce19a606659163The Android Open Source Project
103864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_channel(ConParm_t parm[], U16 nParms)
103964064216a8433360745f69edddce19a606659163The Android Open Source Project{
104064064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
104164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
104264064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data1 = 0, data = 0;
104364064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetDesiredChannel( g_id_adapter, &data1) )
104464064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Channel=%d (desired: %d)\n", !TI_GetCurrentChannel(g_id_adapter, &data) ? data : -1, data1 );
104564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
104664064216a8433360745f69edddce19a606659163The Android Open Source Project    else
104764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetDesiredChannel( g_id_adapter, parm[0].value );
104864064216a8433360745f69edddce19a606659163The Android Open Source Project}
104964064216a8433360745f69edddce19a606659163The Android Open Source Project
105064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_set_power_mode(ConParm_t parm[], U16 nParms)
105164064216a8433360745f69edddce19a606659163The Android Open Source Project{
105264064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_POWER_PROFILE mode = 0x12345678;
105364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms )
105464064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_ConfigPowerManagement (g_id_adapter, parm[0].value );
105564064216a8433360745f69edddce19a606659163The Android Open Source Project    else
105664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
105764064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetPowerMode(g_id_adapter, &mode ) )
105864064216a8433360745f69edddce19a606659163The Android Open Source Project        {
105964064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Power mode: %d\n", mode );
106064064216a8433360745f69edddce19a606659163The Android Open Source Project            print_available_values(power_mode_val);
106164064216a8433360745f69edddce19a606659163The Android Open Source Project        }
106264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
106364064216a8433360745f69edddce19a606659163The Android Open Source Project}
106464064216a8433360745f69edddce19a606659163The Android Open Source Project
106564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_set_PowerSave_PowerLevel(ConParm_t parm[], U16 nParms)
106664064216a8433360745f69edddce19a606659163The Android Open Source Project{
106764064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_POWER_LEVELS mode;
106864064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms )
106964064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetPowerLevelPS (g_id_adapter, parm[0].value );
107064064216a8433360745f69edddce19a606659163The Android Open Source Project    else
107164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
107264064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetPowerLevelPS(g_id_adapter, &mode ) )
107364064216a8433360745f69edddce19a606659163The Android Open Source Project        {
107464064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Power Level PowerSave: %d\n", mode );
107564064216a8433360745f69edddce19a606659163The Android Open Source Project            print_available_values(power_level_val);
107664064216a8433360745f69edddce19a606659163The Android Open Source Project        }
107764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
107864064216a8433360745f69edddce19a606659163The Android Open Source Project}
107964064216a8433360745f69edddce19a606659163The Android Open Source Project
108064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_set_Default_PowerLevel(ConParm_t parm[], U16 nParms)
108164064216a8433360745f69edddce19a606659163The Android Open Source Project{
108264064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_POWER_LEVELS mode;
108364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms )
108464064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetPowerLevelDefault (g_id_adapter, parm[0].value );
108564064216a8433360745f69edddce19a606659163The Android Open Source Project    else
108664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
108764064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetPowerLevelDefault(g_id_adapter, &mode ) )
108864064216a8433360745f69edddce19a606659163The Android Open Source Project        {
108964064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Default Power Level: %d\n", mode );
109064064216a8433360745f69edddce19a606659163The Android Open Source Project            print_available_values(power_level_val);
109164064216a8433360745f69edddce19a606659163The Android Open Source Project        }
109264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
109364064216a8433360745f69edddce19a606659163The Android Open Source Project}
109464064216a8433360745f69edddce19a606659163The Android Open Source Project
109564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_set_DozeModeInAutoPowerLevel(ConParm_t parm[], U16 nParms)
109664064216a8433360745f69edddce19a606659163The Android Open Source Project{
109764064216a8433360745f69edddce19a606659163The Android Open Source Project	OS_802_11_POWER_PROFILE mode;
109864064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms )
109964064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetPowerLevelDozeMode (g_id_adapter, parm[0].value );
110064064216a8433360745f69edddce19a606659163The Android Open Source Project    else
110164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
110264064216a8433360745f69edddce19a606659163The Android Open Source Project		/* set Short or Long Doze. no use of other parameters */
110364064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetPowerLevelDozeMode(g_id_adapter,&mode ) )
110464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
110564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Doze Mode in Auto Power Level: SHORT_DOZE -  %d LONG_DOZE - %d\n",
110664064216a8433360745f69edddce19a606659163The Android Open Source Project				OS_POWER_MODE_SHORT_DOZE,OS_POWER_MODE_LONG_DOZE);
110764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
110864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
110964064216a8433360745f69edddce19a606659163The Android Open Source Project}
111064064216a8433360745f69edddce19a606659163The Android Open Source Project
111164064216a8433360745f69edddce19a606659163The Android Open Source Project
111264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Beacon_Filter_Set_Desired_State(ConParm_t parm[], U16 nParms)
111364064216a8433360745f69edddce19a606659163The Android Open Source Project{
111464064216a8433360745f69edddce19a606659163The Android Open Source Project    /*there are two modes : feature ACTIVE & PASSIV ( or NOT ACTIVE )*/
111564064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms )
111664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
111764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetBeaconFilterDesiredState(g_id_adapter, parm[0].value );
111864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
111964064216a8433360745f69edddce19a606659163The Android Open Source Project    else
112064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
112164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Use : 0 =  INACTIVE , 1 = ACTIVE\n" ) ;
112264064216a8433360745f69edddce19a606659163The Android Open Source Project
112364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
112464064216a8433360745f69edddce19a606659163The Android Open Source Project}
112564064216a8433360745f69edddce19a606659163The Android Open Source Project
112664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Beacon_Filter_Get_Desired_State(ConParm_t parm[], U16 nParms)
112764064216a8433360745f69edddce19a606659163The Android Open Source Project{
112864064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT8 desState = FALSE ;
112964064216a8433360745f69edddce19a606659163The Android Open Source Project
113064064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetBeaconFilterDesiredState(g_id_adapter, &desState ) ;
113164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Desired State is %s\n", (desState == FALSE)?"FILTER INACTIVE":"FILTER ACTIVE" );
113264064216a8433360745f69edddce19a606659163The Android Open Source Project
113364064216a8433360745f69edddce19a606659163The Android Open Source Project
113464064216a8433360745f69edddce19a606659163The Android Open Source Project}
113564064216a8433360745f69edddce19a606659163The Android Open Source Project
113664064216a8433360745f69edddce19a606659163The Android Open Source Project
113764064216a8433360745f69edddce19a606659163The Android Open Source Project
113864064216a8433360745f69edddce19a606659163The Android Open Source Project/* scan commands (new from eSTAdk 5.0) */
113964064216a8433360745f69edddce19a606659163The Android Open Source Project
114064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid init_scan_params(void)
114164064216a8433360745f69edddce19a606659163The Android Open Source Project{
114264064216a8433360745f69edddce19a606659163The Android Open Source Project    int i,j;
114364064216a8433360745f69edddce19a606659163The Android Open Source Project
114464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* init application scan default params */
114564064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.desiredSsid.len = 0;
114664064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.scanType = SCAN_TYPE_NORMAL_ACTIVE;
114764064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.band = RADIO_BAND_2_4_GHZ;
114864064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.probeReqNumber = 3;
114964064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.probeRequestRate = DRV_RATE_MASK_2_BARKER;
115064064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.numOfChannels = 11;
115164064216a8433360745f69edddce19a606659163The Android Open Source Project    for ( i = 0; i < 11; i++ )
115264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
115364064216a8433360745f69edddce19a606659163The Android Open Source Project        for ( j = 0; j < 6; j++ )
115464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
115564064216a8433360745f69edddce19a606659163The Android Open Source Project            appScanParams.channelEntry[ i ].normalChannelEntry.bssId.addr[ j ] = 0xff;
115664064216a8433360745f69edddce19a606659163The Android Open Source Project        }
115764064216a8433360745f69edddce19a606659163The Android Open Source Project        appScanParams.channelEntry[ i ].normalChannelEntry.earlyTerminationEvent = SCAN_ET_COND_DISABLE;
115864064216a8433360745f69edddce19a606659163The Android Open Source Project        appScanParams.channelEntry[ i ].normalChannelEntry.ETMaxNumOfAPframes = 0;
115964064216a8433360745f69edddce19a606659163The Android Open Source Project        appScanParams.channelEntry[ i ].normalChannelEntry.maxChannelDwellTime = 60000;
116064064216a8433360745f69edddce19a606659163The Android Open Source Project        appScanParams.channelEntry[ i ].normalChannelEntry.minChannelDwellTime = 30000;
116164064216a8433360745f69edddce19a606659163The Android Open Source Project        appScanParams.channelEntry[ i ].normalChannelEntry.txPowerDbm = MAX_TX_POWER;
116264064216a8433360745f69edddce19a606659163The Android Open Source Project        appScanParams.channelEntry[ i ].normalChannelEntry.channel = i + 1;
116364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
116464064216a8433360745f69edddce19a606659163The Android Open Source Project
116564064216a8433360745f69edddce19a606659163The Android Open Source Project    /* init default scan policy */
116664064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.normalScanInterval = 10000;
116764064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.deterioratingScanInterval = 5000;
116864064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.maxTrackFailures = 3;
116964064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.BSSListSize = 4;
117064064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.BSSNumberToStartDiscovery = 1;
117164064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.numOfBands = 1;
117264064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].band = RADIO_BAND_2_4_GHZ;
117364064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].rxRSSIThreshold = -80;
117464064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].numOfChannles = 11;
117564064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].numOfChannlesForDiscovery = 3;
117664064216a8433360745f69edddce19a606659163The Android Open Source Project    for ( i = 0; i < 11; i++ )
117764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
117864064216a8433360745f69edddce19a606659163The Android Open Source Project        scanPolicy.bandScanPolicy[ 0 ].channelList[ i ] = i + 1;
117964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
118064064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].trackingMethod.scanType = SCAN_TYPE_NORMAL_ACTIVE;
118164064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.earlyTerminationEvent = SCAN_ET_COND_DISABLE;
118264064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.ETMaxNumberOfApFrames = 0;
118364064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.maxChannelDwellTime = 30000;
118464064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.minChannelDwellTime = 15000;
118564064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.probReqParams.bitrate = DRV_RATE_MASK_1_BARKER;
118664064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.probReqParams.numOfProbeReqs = 3;
118764064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.probReqParams.txPowerDbm = MAX_TX_POWER;
118864064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.scanType = SCAN_TYPE_NORMAL_ACTIVE;
118964064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.earlyTerminationEvent = SCAN_ET_COND_DISABLE;
119064064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.ETMaxNumberOfApFrames = 0;
119164064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.maxChannelDwellTime = 30000;
119264064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.minChannelDwellTime = 15000;
119364064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.probReqParams.bitrate = DRV_RATE_MASK_2_BARKER;
119464064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.probReqParams.numOfProbeReqs = 3;
119564064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.probReqParams.txPowerDbm = MAX_TX_POWER;
119664064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.scanType = SCAN_TYPE_NORMAL_ACTIVE;
119764064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.earlyTerminationEvent = SCAN_ET_COND_DISABLE;
119864064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.ETMaxNumberOfApFrames = 0;
119964064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.maxChannelDwellTime = 30000;
120064064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.minChannelDwellTime = 15000;
120164064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.probReqParams.bitrate = DRV_RATE_MASK_5_5_CCK;
120264064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.probReqParams.numOfProbeReqs = 3;
120364064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.probReqParams.txPowerDbm = MAX_TX_POWER;
120464064216a8433360745f69edddce19a606659163The Android Open Source Project}
120564064216a8433360745f69edddce19a606659163The Android Open Source Project
120664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_Start(ConParm_t parm[], U16 nParms)
120764064216a8433360745f69edddce19a606659163The Android Open Source Project{
120864064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_StartScan( g_id_adapter, &appScanParams );
120964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Application scan started.\n");
121064064216a8433360745f69edddce19a606659163The Android Open Source Project}
121164064216a8433360745f69edddce19a606659163The Android Open Source Project
121264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_Stop(ConParm_t parm[], U16 nParms)
121364064216a8433360745f69edddce19a606659163The Android Open Source Project{
121464064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_StopScan( g_id_adapter );
121564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Application scan stopped.\n");
121664064216a8433360745f69edddce19a606659163The Android Open Source Project}
121764064216a8433360745f69edddce19a606659163The Android Open Source Project
121864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_app_global_config(ConParm_t parm[], U16 nParms)
121964064216a8433360745f69edddce19a606659163The Android Open Source Project{
122064064216a8433360745f69edddce19a606659163The Android Open Source Project    if ( 0 == strcmp( "<empty>", (char*)parm[0].value) )
122164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
122264064216a8433360745f69edddce19a606659163The Android Open Source Project        appScanParams.desiredSsid.len = 0;
122364064216a8433360745f69edddce19a606659163The Android Open Source Project        appScanParams.desiredSsid.ssidString[ 0 ] = '\0';
122464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
122564064216a8433360745f69edddce19a606659163The Android Open Source Project    else
122664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
122764064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.desiredSsid.len = strlen((char*)parm[0].value);
122864064216a8433360745f69edddce19a606659163The Android Open Source Project    memcpy( &(appScanParams.desiredSsid.ssidString), (char*)parm[0].value, appScanParams.desiredSsid.len );
122964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
123064064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.scanType = parm[1].value;
123164064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.band = parm[2].value;
123264064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.probeReqNumber = (UINT8)parm[3].value;
123364064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.probeRequestRate = parm[4].value;
123464064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG
123564064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.Tid = (UINT8)parm[5].value;
123664064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.numOfChannels  = (UINT8)parm[6].value;
123764064216a8433360745f69edddce19a606659163The Android Open Source Project#else
123864064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.Tid = 0;
123964064216a8433360745f69edddce19a606659163The Android Open Source Project    appScanParams.numOfChannels = (UINT8)parm[5].value;
124064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
124164064216a8433360745f69edddce19a606659163The Android Open Source Project}
124264064216a8433360745f69edddce19a606659163The Android Open Source Project
124364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_app_channel_config(ConParm_t parm[], U16 nParms)
124464064216a8433360745f69edddce19a606659163The Android Open Source Project{
124564064216a8433360745f69edddce19a606659163The Android Open Source Project    scan_normalChannelEntry_t* pChannelEntry =
124664064216a8433360745f69edddce19a606659163The Android Open Source Project        &(appScanParams.channelEntry[ parm[0].value ].normalChannelEntry);
124764064216a8433360745f69edddce19a606659163The Android Open Source Project
124864064216a8433360745f69edddce19a606659163The Android Open Source Project	if (parm[2].value < parm[3].value)
124964064216a8433360745f69edddce19a606659163The Android Open Source Project	{
125064064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal ("Max Dwell Time must be larger than or equal to Min Dwell Time...\n");
125164064216a8433360745f69edddce19a606659163The Android Open Source Project		return;
125264064216a8433360745f69edddce19a606659163The Android Open Source Project	}
125364064216a8433360745f69edddce19a606659163The Android Open Source Project
125464064216a8433360745f69edddce19a606659163The Android Open Source Project    hexStr2MACAddr( (char*)parm[1].value, &(pChannelEntry->bssId) );
125564064216a8433360745f69edddce19a606659163The Android Open Source Project    pChannelEntry->maxChannelDwellTime = parm[2].value;
125664064216a8433360745f69edddce19a606659163The Android Open Source Project    pChannelEntry->minChannelDwellTime = parm[3].value;
125764064216a8433360745f69edddce19a606659163The Android Open Source Project    pChannelEntry->earlyTerminationEvent = parm[4].value;
125864064216a8433360745f69edddce19a606659163The Android Open Source Project    pChannelEntry->ETMaxNumOfAPframes = (UINT8)parm[5].value;
125964064216a8433360745f69edddce19a606659163The Android Open Source Project    pChannelEntry->txPowerDbm = (UINT8)parm[6].value;
126064064216a8433360745f69edddce19a606659163The Android Open Source Project    pChannelEntry->channel = (UINT8)parm[7].value;
126164064216a8433360745f69edddce19a606659163The Android Open Source Project}
126264064216a8433360745f69edddce19a606659163The Android Open Source Project
126364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_app_clear(ConParm_t parm[], U16 nParms)
126464064216a8433360745f69edddce19a606659163The Android Open Source Project{
126564064216a8433360745f69edddce19a606659163The Android Open Source Project    memset( &appScanParams, 0, sizeof(scan_Params_t) );
126664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Application scan parameters cleared.\n");
126764064216a8433360745f69edddce19a606659163The Android Open Source Project}
126864064216a8433360745f69edddce19a606659163The Android Open Source Project
126964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_app_display(ConParm_t parm[], U16 nParms)
127064064216a8433360745f69edddce19a606659163The Android Open Source Project{
127164064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
127264064216a8433360745f69edddce19a606659163The Android Open Source Project    scan_normalChannelEntry_t* pNormalChannel;
127364064216a8433360745f69edddce19a606659163The Android Open Source Project    char bssId[18];
127464064216a8433360745f69edddce19a606659163The Android Open Source Project
127564064216a8433360745f69edddce19a606659163The Android Open Source Project    bssId[17] = '\0';
127664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Application Scan params:\n");
127764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("SSID: %s, Type: %s\n", appScanParams.desiredSsid.ssidString, scanType2Str[ appScanParams.scanType ].name);
127864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Band: %s, Number of probe req:%d, probe req. rate:%s\n",
127964064216a8433360745f69edddce19a606659163The Android Open Source Project          band2Str[ appScanParams.band ].name, appScanParams.probeReqNumber, rate2StrFunc( appScanParams.probeRequestRate ) );
128064064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG
128164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Tid :%d\n\n", appScanParams.Tid);
128264064216a8433360745f69edddce19a606659163The Android Open Source Project#else
128364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\n");
128464064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
128564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Channel  BSS ID             Max time  Min time  ET event     ET frame num Power\n");
128664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("-------------------------------------------------------------------------------\n");
128764064216a8433360745f69edddce19a606659163The Android Open Source Project    for ( i = 0; i < appScanParams.numOfChannels; i++ )
128864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
128964064216a8433360745f69edddce19a606659163The Android Open Source Project        pNormalChannel = &(appScanParams.channelEntry[ i ].normalChannelEntry);
129064064216a8433360745f69edddce19a606659163The Android Open Source Project        mac2HexStr( &(pNormalChannel->bssId), bssId );
129164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal ("%2d       %s  %7d   %7d   %s%3d          %1d\n",
129264064216a8433360745f69edddce19a606659163The Android Open Source Project               pNormalChannel->channel, bssId, pNormalChannel->maxChannelDwellTime,
129364064216a8433360745f69edddce19a606659163The Android Open Source Project               pNormalChannel->minChannelDwellTime, EtEvent2StrFunc( pNormalChannel->earlyTerminationEvent ),
129464064216a8433360745f69edddce19a606659163The Android Open Source Project               pNormalChannel->ETMaxNumOfAPframes, pNormalChannel->txPowerDbm);
129564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
129664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\n");
129764064216a8433360745f69edddce19a606659163The Android Open Source Project}
129864064216a8433360745f69edddce19a606659163The Android Open Source Project
129964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_policy_global_config(ConParm_t parm[], U16 nParms)
130064064216a8433360745f69edddce19a606659163The Android Open Source Project{
130164064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.normalScanInterval =  parm[ 0 ].value;
130264064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.deterioratingScanInterval = parm[ 1 ].value;
130364064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.maxTrackFailures = (UINT8)(parm[ 2 ].value);
130464064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.BSSListSize = (UINT8)(parm[ 3 ].value);
130564064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.BSSNumberToStartDiscovery = (UINT8)(parm[ 4 ].value);
130664064216a8433360745f69edddce19a606659163The Android Open Source Project    scanPolicy.numOfBands = (UINT8)(parm[ 5 ].value);
130764064216a8433360745f69edddce19a606659163The Android Open Source Project}
130864064216a8433360745f69edddce19a606659163The Android Open Source Project
130964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_band_global_config(ConParm_t parm[], U16 nParms)
131064064216a8433360745f69edddce19a606659163The Android Open Source Project{
131164064216a8433360745f69edddce19a606659163The Android Open Source Project    scan_bandPolicy_t* bandPolicy = &(scanPolicy.bandScanPolicy[ parm [ 0 ].value ]);
131264064216a8433360745f69edddce19a606659163The Android Open Source Project
131364064216a8433360745f69edddce19a606659163The Android Open Source Project    bandPolicy->band = parm[ 1 ].value;
131464064216a8433360745f69edddce19a606659163The Android Open Source Project    bandPolicy->rxRSSIThreshold = (S8)(parm[ 2 ].value);
131564064216a8433360745f69edddce19a606659163The Android Open Source Project    bandPolicy->numOfChannlesForDiscovery = (UINT8)(parm[ 3 ].value);
131664064216a8433360745f69edddce19a606659163The Android Open Source Project    bandPolicy->numOfChannles = (UINT8)(parm[ 4 ].value);
131764064216a8433360745f69edddce19a606659163The Android Open Source Project}
131864064216a8433360745f69edddce19a606659163The Android Open Source Project
131964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_band_channel_config(ConParm_t parm[], U16 nParms)
132064064216a8433360745f69edddce19a606659163The Android Open Source Project{
132164064216a8433360745f69edddce19a606659163The Android Open Source Project    scan_bandPolicy_t* bandPolicy = &(scanPolicy.bandScanPolicy[ parm [ 0 ].value ]);
132264064216a8433360745f69edddce19a606659163The Android Open Source Project
132364064216a8433360745f69edddce19a606659163The Android Open Source Project    bandPolicy->channelList[ parm[ 1 ].value ] = (UINT8)(parm[ 2 ].value);
132464064216a8433360745f69edddce19a606659163The Android Open Source Project}
132564064216a8433360745f69edddce19a606659163The Android Open Source Project
132664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_band_track_config(ConParm_t parm[], U16 nParms)
132764064216a8433360745f69edddce19a606659163The Android Open Source Project{
132864064216a8433360745f69edddce19a606659163The Android Open Source Project    scan_bandPolicy_t* bandPolicy = &(scanPolicy.bandScanPolicy[ parm [ 0 ].value ]);
132964064216a8433360745f69edddce19a606659163The Android Open Source Project
133064064216a8433360745f69edddce19a606659163The Android Open Source Project	if (parm[6].value < parm[7].value)
133164064216a8433360745f69edddce19a606659163The Android Open Source Project	{
133264064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal ("Max Dwell Time must be larger than or equal to Min Dwell Time...\n");
133364064216a8433360745f69edddce19a606659163The Android Open Source Project		return;
133464064216a8433360745f69edddce19a606659163The Android Open Source Project	}
133564064216a8433360745f69edddce19a606659163The Android Open Source Project
133664064216a8433360745f69edddce19a606659163The Android Open Source Project    bandPolicy->trackingMethod.scanType = parm[ 1 ].value;
133764064216a8433360745f69edddce19a606659163The Android Open Source Project
133864064216a8433360745f69edddce19a606659163The Android Open Source Project    switch (bandPolicy->trackingMethod.scanType)
133964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
134064064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_NORMAL_ACTIVE:
134164064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_NORMAL_PASSIVE:
134264064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.basicMethodParams.maxChannelDwellTime = (parm[ 6 ].value);
134364064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.basicMethodParams.minChannelDwellTime = (parm[ 7 ].value);
134464064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.basicMethodParams.earlyTerminationEvent = parm[ 2 ].value;
134564064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.basicMethodParams.ETMaxNumberOfApFrames = (UINT8)(parm[ 3 ].value);
134664064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.basicMethodParams.probReqParams.bitrate = parm[ 9 ].value;
134764064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.basicMethodParams.probReqParams.numOfProbeReqs = (UINT8)(parm[ 8 ].value);
134864064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.basicMethodParams.probReqParams.txPowerDbm = (UINT8)(parm[ 10 ].value);
134964064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
135064064216a8433360745f69edddce19a606659163The Android Open Source Project
135164064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_TRIGGERED_ACTIVE:
135264064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_TRIGGERED_PASSIVE:
135364064216a8433360745f69edddce19a606659163The Android Open Source Project
135464064216a8433360745f69edddce19a606659163The Android Open Source Project		/* Check if valid TID */
135564064216a8433360745f69edddce19a606659163The Android Open Source Project		if (((parm[ 4 ].value) > 7) && ((parm[ 4 ].value) != 255))
135664064216a8433360745f69edddce19a606659163The Android Open Source Project		{
135764064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal ("ERROR Tid (AC) should be 0..7 or 255 instead = %d (using default = 255)\n",(parm[ 4 ].value));
135864064216a8433360745f69edddce19a606659163The Android Open Source Project			parm[ 4 ].value = 255;
135964064216a8433360745f69edddce19a606659163The Android Open Source Project		}
136064064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.TidTriggerdMethodParams.triggeringTid = (UINT8)(parm[ 4 ].value);
136164064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.TidTriggerdMethodParams.basicMethodParams.maxChannelDwellTime = (parm[ 6 ].value);
136264064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.TidTriggerdMethodParams.basicMethodParams.minChannelDwellTime = (parm[ 7 ].value);
136364064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.TidTriggerdMethodParams.basicMethodParams.earlyTerminationEvent = parm[ 2 ].value;
136464064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.TidTriggerdMethodParams.basicMethodParams.ETMaxNumberOfApFrames = (UINT8)(parm[ 3 ].value);
136564064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.TidTriggerdMethodParams.basicMethodParams.probReqParams.bitrate = parm[ 9 ].value;
136664064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.TidTriggerdMethodParams.basicMethodParams.probReqParams.numOfProbeReqs = (UINT8)(parm[ 8 ].value);
136764064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.TidTriggerdMethodParams.basicMethodParams.probReqParams.txPowerDbm = (UINT8)(parm[ 10 ].value);
136864064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
136964064216a8433360745f69edddce19a606659163The Android Open Source Project
137064064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_SPS:
137164064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.spsMethodParams.earlyTerminationEvent = parm[ 2 ].value;
137264064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.spsMethodParams.ETMaxNumberOfApFrames = (UINT8)(parm[ 3 ].value);
137364064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.method.spsMethodParams.scanDuration = parm[ 5 ].value;
137464064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
137564064216a8433360745f69edddce19a606659163The Android Open Source Project
137664064216a8433360745f69edddce19a606659163The Android Open Source Project    default:
137764064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->trackingMethod.scanType = SCAN_TYPE_NO_SCAN;
137864064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
137964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
138064064216a8433360745f69edddce19a606659163The Android Open Source Project}
138164064216a8433360745f69edddce19a606659163The Android Open Source Project
138264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_band_discover_config(ConParm_t parm[], U16 nParms)
138364064216a8433360745f69edddce19a606659163The Android Open Source Project{
138464064216a8433360745f69edddce19a606659163The Android Open Source Project    scan_bandPolicy_t* bandPolicy = &(scanPolicy.bandScanPolicy[ parm [ 0 ].value ]);
138564064216a8433360745f69edddce19a606659163The Android Open Source Project
138664064216a8433360745f69edddce19a606659163The Android Open Source Project	if (parm[6].value < parm[7].value)
138764064216a8433360745f69edddce19a606659163The Android Open Source Project	{
138864064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal ("Max Dwell Time must be larger than or equal to Min Dwell Time...\n");
138964064216a8433360745f69edddce19a606659163The Android Open Source Project		return;
139064064216a8433360745f69edddce19a606659163The Android Open Source Project	}
139164064216a8433360745f69edddce19a606659163The Android Open Source Project
139264064216a8433360745f69edddce19a606659163The Android Open Source Project    bandPolicy->discoveryMethod.scanType = parm[ 1 ].value;
139364064216a8433360745f69edddce19a606659163The Android Open Source Project
139464064216a8433360745f69edddce19a606659163The Android Open Source Project    switch (bandPolicy->discoveryMethod.scanType)
139564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
139664064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_NORMAL_ACTIVE:
139764064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_NORMAL_PASSIVE:
139864064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.basicMethodParams.maxChannelDwellTime = (parm[ 6 ].value);
139964064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.basicMethodParams.minChannelDwellTime = (parm[ 7 ].value);
140064064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.basicMethodParams.earlyTerminationEvent = parm[ 2 ].value;
140164064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.basicMethodParams.ETMaxNumberOfApFrames = (UINT8)(parm[ 3 ].value);
140264064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.basicMethodParams.probReqParams.bitrate = parm[ 9 ].value;
140364064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.basicMethodParams.probReqParams.numOfProbeReqs = (UINT8)(parm[ 8 ].value);
140464064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.basicMethodParams.probReqParams.txPowerDbm = (UINT8)(parm[ 10 ].value);
140564064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
140664064216a8433360745f69edddce19a606659163The Android Open Source Project
140764064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_TRIGGERED_ACTIVE:
140864064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_TRIGGERED_PASSIVE:
140964064216a8433360745f69edddce19a606659163The Android Open Source Project		/* Check if valid TID */
141064064216a8433360745f69edddce19a606659163The Android Open Source Project		if (((parm[ 4 ].value) > 7) && ((parm[ 4 ].value) != 255))
141164064216a8433360745f69edddce19a606659163The Android Open Source Project		{
141264064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal ("ERROR Tid (AC) should be 0..7 or 255 instead = %d (using default = 255)\n",(parm[ 4 ].value));
141364064216a8433360745f69edddce19a606659163The Android Open Source Project			parm[ 4 ].value = 255;
141464064216a8433360745f69edddce19a606659163The Android Open Source Project		}
141564064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.TidTriggerdMethodParams.triggeringTid = (UINT8)(parm[ 4 ].value);
141664064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.TidTriggerdMethodParams.basicMethodParams.maxChannelDwellTime = (parm[ 6 ].value);
141764064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.TidTriggerdMethodParams.basicMethodParams.minChannelDwellTime = (parm[ 7 ].value);
141864064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.TidTriggerdMethodParams.basicMethodParams.earlyTerminationEvent = parm[ 2 ].value;
141964064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.TidTriggerdMethodParams.basicMethodParams.ETMaxNumberOfApFrames = (UINT8)(parm[ 3 ].value);
142064064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.TidTriggerdMethodParams.basicMethodParams.probReqParams.bitrate = parm[ 9 ].value;
142164064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.TidTriggerdMethodParams.basicMethodParams.probReqParams.numOfProbeReqs = (UINT8)(parm[ 8 ].value);
142264064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.TidTriggerdMethodParams.basicMethodParams.probReqParams.txPowerDbm = (UINT8)(parm[ 10 ].value);
142364064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
142464064216a8433360745f69edddce19a606659163The Android Open Source Project
142564064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_SPS:
142664064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.spsMethodParams.earlyTerminationEvent = parm[ 2 ].value;
142764064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.spsMethodParams.ETMaxNumberOfApFrames = (UINT8)(parm[ 3 ].value);
142864064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.method.spsMethodParams.scanDuration = parm[ 5 ].value;
142964064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
143064064216a8433360745f69edddce19a606659163The Android Open Source Project
143164064216a8433360745f69edddce19a606659163The Android Open Source Project    default:
143264064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->discoveryMethod.scanType = SCAN_TYPE_NO_SCAN;
143364064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
143464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
143564064216a8433360745f69edddce19a606659163The Android Open Source Project}
143664064216a8433360745f69edddce19a606659163The Android Open Source Project
143764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_band_immed_config(ConParm_t parm[], U16 nParms)
143864064216a8433360745f69edddce19a606659163The Android Open Source Project{
143964064216a8433360745f69edddce19a606659163The Android Open Source Project    scan_bandPolicy_t* bandPolicy = &(scanPolicy.bandScanPolicy[ parm [ 0 ].value ]);
144064064216a8433360745f69edddce19a606659163The Android Open Source Project
144164064216a8433360745f69edddce19a606659163The Android Open Source Project	if (parm[6].value < parm[7].value)
144264064216a8433360745f69edddce19a606659163The Android Open Source Project	{
144364064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal ("Max Dwell Time must be larger than or equal to Min Dwell Time...\n");
144464064216a8433360745f69edddce19a606659163The Android Open Source Project		return;
144564064216a8433360745f69edddce19a606659163The Android Open Source Project	}
144664064216a8433360745f69edddce19a606659163The Android Open Source Project
144764064216a8433360745f69edddce19a606659163The Android Open Source Project    bandPolicy->immediateScanMethod.scanType = parm[ 1 ].value;
144864064216a8433360745f69edddce19a606659163The Android Open Source Project
144964064216a8433360745f69edddce19a606659163The Android Open Source Project    switch (bandPolicy->immediateScanMethod.scanType)
145064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
145164064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_NORMAL_ACTIVE:
145264064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_NORMAL_PASSIVE:
145364064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.basicMethodParams.maxChannelDwellTime = (parm[ 6 ].value);
145464064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.basicMethodParams.minChannelDwellTime = (parm[ 7 ].value);
145564064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.basicMethodParams.earlyTerminationEvent = parm[ 2 ].value;
145664064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.basicMethodParams.ETMaxNumberOfApFrames = (UINT8)(parm[ 3 ].value);
145764064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.basicMethodParams.probReqParams.bitrate = parm[ 9 ].value;
145864064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.basicMethodParams.probReqParams.numOfProbeReqs = (UINT8)(parm[ 8 ].value);
145964064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.basicMethodParams.probReqParams.txPowerDbm = (UINT8)(parm[ 10 ].value);
146064064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
146164064216a8433360745f69edddce19a606659163The Android Open Source Project
146264064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_TRIGGERED_ACTIVE:
146364064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_TRIGGERED_PASSIVE:
146464064216a8433360745f69edddce19a606659163The Android Open Source Project		/* Check if valid TID */
146564064216a8433360745f69edddce19a606659163The Android Open Source Project		if (((parm[ 4 ].value) > 7) && ((parm[ 4 ].value) != 255))
146664064216a8433360745f69edddce19a606659163The Android Open Source Project		{
146764064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal ("ERROR Tid (AC) should be 0..7 or 255 instead = %d (using default = 255)\n",(parm[ 4 ].value));
146864064216a8433360745f69edddce19a606659163The Android Open Source Project			parm[ 4 ].value = 255;
146964064216a8433360745f69edddce19a606659163The Android Open Source Project		}
147064064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.TidTriggerdMethodParams.triggeringTid = (UINT8)(parm[ 4 ].value);
147164064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.TidTriggerdMethodParams.basicMethodParams.maxChannelDwellTime = (parm[ 6 ].value);
147264064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.TidTriggerdMethodParams.basicMethodParams.minChannelDwellTime = (parm[ 7 ].value);
147364064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.TidTriggerdMethodParams.basicMethodParams.earlyTerminationEvent = parm[ 2 ].value;
147464064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.TidTriggerdMethodParams.basicMethodParams.ETMaxNumberOfApFrames = (UINT8)(parm[ 3 ].value);
147564064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.TidTriggerdMethodParams.basicMethodParams.probReqParams.bitrate = parm[ 9 ].value;
147664064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.TidTriggerdMethodParams.basicMethodParams.probReqParams.numOfProbeReqs = (UINT8)(parm[ 8 ].value);
147764064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.TidTriggerdMethodParams.basicMethodParams.probReqParams.txPowerDbm = (UINT8)(parm[ 10 ].value);
147864064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
147964064216a8433360745f69edddce19a606659163The Android Open Source Project
148064064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_SPS:
148164064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.spsMethodParams.earlyTerminationEvent = parm[ 2 ].value;
148264064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.spsMethodParams.ETMaxNumberOfApFrames = (UINT8)(parm[ 3 ].value);
148364064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.method.spsMethodParams.scanDuration = parm[ 5 ].value;
148464064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
148564064216a8433360745f69edddce19a606659163The Android Open Source Project
148664064216a8433360745f69edddce19a606659163The Android Open Source Project    default:
148764064216a8433360745f69edddce19a606659163The Android Open Source Project        bandPolicy->immediateScanMethod.scanType = SCAN_TYPE_NO_SCAN;
148864064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
148964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
149064064216a8433360745f69edddce19a606659163The Android Open Source Project}
149164064216a8433360745f69edddce19a606659163The Android Open Source Project
149264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_policy_display(ConParm_t parm[], U16 nParms)
149364064216a8433360745f69edddce19a606659163The Android Open Source Project{
149464064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
149564064216a8433360745f69edddce19a606659163The Android Open Source Project
149664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Scan Policy:\n");
149764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Normal scan interval: %d, deteriorating scan interval: %d\n",
149864064216a8433360745f69edddce19a606659163The Android Open Source Project          scanPolicy.normalScanInterval, scanPolicy.deterioratingScanInterval);
149964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Max track attempt failures: %d\n", scanPolicy.maxTrackFailures);
150064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("BSS list size: %d, number of BSSes to start discovery: %d\n",
150164064216a8433360745f69edddce19a606659163The Android Open Source Project          scanPolicy.BSSListSize, scanPolicy.BSSNumberToStartDiscovery);
150264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Number of configured bands: %d\n", scanPolicy.numOfBands);
150364064216a8433360745f69edddce19a606659163The Android Open Source Project    for ( i = 0; i < scanPolicy.numOfBands; i++ )
150464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
150564064216a8433360745f69edddce19a606659163The Android Open Source Project        cmd_Scan_print_band( i );
150664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
150764064216a8433360745f69edddce19a606659163The Android Open Source Project}
150864064216a8433360745f69edddce19a606659163The Android Open Source Project
150964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_print_band( int i )
151064064216a8433360745f69edddce19a606659163The Android Open Source Project{
151164064216a8433360745f69edddce19a606659163The Android Open Source Project    scan_bandPolicy_t* bandPolicy = &(scanPolicy.bandScanPolicy[ i ]);
151264064216a8433360745f69edddce19a606659163The Android Open Source Project    int j;
151364064216a8433360745f69edddce19a606659163The Android Open Source Project
151464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\nBand: %s\n", band2Str[ bandPolicy->band ].name);
151564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("RSSI Threshold: %d dBm\n", bandPolicy->rxRSSIThreshold);
151664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Number of channels for each discovery interval: %d\n", bandPolicy->numOfChannlesForDiscovery);
151764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\nTracking Method:\n");
151864064216a8433360745f69edddce19a606659163The Android Open Source Project    cmd_Scan_print_method( &(bandPolicy->trackingMethod) );
151964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\nDiscovery Method:\n");
152064064216a8433360745f69edddce19a606659163The Android Open Source Project    cmd_Scan_print_method( &(bandPolicy->discoveryMethod) );
152164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\nImmediate Scan Method:\n");
152264064216a8433360745f69edddce19a606659163The Android Open Source Project    cmd_Scan_print_method( &(bandPolicy->immediateScanMethod) );
152364064216a8433360745f69edddce19a606659163The Android Open Source Project    if ( bandPolicy->numOfChannles > 0 )
152464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
152564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("\nChannel list: ");
152664064216a8433360745f69edddce19a606659163The Android Open Source Project        for ( j = 0; j < bandPolicy->numOfChannles; j++ )
152764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
152864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("%3d ", bandPolicy->channelList[ j ]);
152964064216a8433360745f69edddce19a606659163The Android Open Source Project        }
153064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("\n");
153164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
153264064216a8433360745f69edddce19a606659163The Android Open Source Project    else
153364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("\nNo channels defined.\n");
153464064216a8433360745f69edddce19a606659163The Android Open Source Project}
153564064216a8433360745f69edddce19a606659163The Android Open Source Project
153664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_print_method( scan_Method_t* scanMethod )
153764064216a8433360745f69edddce19a606659163The Android Open Source Project{
153864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Scan type: %s\n", scanType2Str[ scanMethod->scanType ].name);
153964064216a8433360745f69edddce19a606659163The Android Open Source Project    switch (scanMethod->scanType)
154064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
154164064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_NORMAL_ACTIVE:
154264064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_NORMAL_PASSIVE:
154364064216a8433360745f69edddce19a606659163The Android Open Source Project        cmd_Scan_print_basic_method( &(scanMethod->method.basicMethodParams) );
154464064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
154564064216a8433360745f69edddce19a606659163The Android Open Source Project
154664064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_TRIGGERED_ACTIVE:
154764064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_TRIGGERED_PASSIVE:
154864064216a8433360745f69edddce19a606659163The Android Open Source Project        cmd_Scan_print_triggered_method( &(scanMethod->method.TidTriggerdMethodParams) );
154964064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
155064064216a8433360745f69edddce19a606659163The Android Open Source Project
155164064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_SPS:
155264064216a8433360745f69edddce19a606659163The Android Open Source Project        cmd_Scan_print_sps_method( &(scanMethod->method.spsMethodParams) );
155364064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
155464064216a8433360745f69edddce19a606659163The Android Open Source Project
155564064216a8433360745f69edddce19a606659163The Android Open Source Project    case SCAN_TYPE_NO_SCAN:
155664064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
155764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
155864064216a8433360745f69edddce19a606659163The Android Open Source Project}
155964064216a8433360745f69edddce19a606659163The Android Open Source Project
156064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_print_basic_method( scan_basicMethodParams_t* basicMethodParams )
156164064216a8433360745f69edddce19a606659163The Android Open Source Project{
156264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Max channel dwell time: %d, Min channel dwell time: %d\n",
156364064216a8433360745f69edddce19a606659163The Android Open Source Project          basicMethodParams->maxChannelDwellTime, basicMethodParams->minChannelDwellTime);
156464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("ET condition: %s, ET number of frames: %d\n",
156564064216a8433360745f69edddce19a606659163The Android Open Source Project          EtEvent2StrFunc( basicMethodParams->earlyTerminationEvent ), basicMethodParams->ETMaxNumberOfApFrames);
156664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Probe request number: %d, probe request rate: %s, TX power (Dbm/10): %d\n",
156764064216a8433360745f69edddce19a606659163The Android Open Source Project          basicMethodParams->probReqParams.numOfProbeReqs, rate2StrFunc( basicMethodParams->probReqParams.bitrate ),
156864064216a8433360745f69edddce19a606659163The Android Open Source Project          basicMethodParams->probReqParams.txPowerDbm);
156964064216a8433360745f69edddce19a606659163The Android Open Source Project}
157064064216a8433360745f69edddce19a606659163The Android Open Source Project
157164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_print_triggered_method( scan_TidTriggeredMethodParams_t* triggeredMethodParams )
157264064216a8433360745f69edddce19a606659163The Android Open Source Project{
157364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Triggering Tid: %d\n", triggeredMethodParams->triggeringTid);
157464064216a8433360745f69edddce19a606659163The Android Open Source Project    cmd_Scan_print_basic_method( &(triggeredMethodParams->basicMethodParams) );
157564064216a8433360745f69edddce19a606659163The Android Open Source Project}
157664064216a8433360745f69edddce19a606659163The Android Open Source Project
157764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_print_sps_method( scan_SPSMethodParams_t* spsMethodParams )
157864064216a8433360745f69edddce19a606659163The Android Open Source Project{
157964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("ET condition: %s, ET number of frames: %d\n",
158064064216a8433360745f69edddce19a606659163The Android Open Source Project          EtEvent2StrFunc( spsMethodParams->earlyTerminationEvent ), spsMethodParams->ETMaxNumberOfApFrames);
158164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Scan duration: %d\n", spsMethodParams->scanDuration);
158264064216a8433360745f69edddce19a606659163The Android Open Source Project}
158364064216a8433360745f69edddce19a606659163The Android Open Source Project
158464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_policy_clear(ConParm_t parm[], U16 nParms)
158564064216a8433360745f69edddce19a606659163The Android Open Source Project{
158664064216a8433360745f69edddce19a606659163The Android Open Source Project    memset( &scanPolicy, 0, sizeof(scan_Policy_t) );
158764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Scan policy cleared.\n");
158864064216a8433360745f69edddce19a606659163The Android Open Source Project}
158964064216a8433360745f69edddce19a606659163The Android Open Source Project
159064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_policy_store(ConParm_t parm[], U16 nParms)
159164064216a8433360745f69edddce19a606659163The Android Open Source Project{
159264064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetScanPolicy( g_id_adapter, (UINT8*)&scanPolicy, sizeof(scan_Policy_t) );
159364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Scan policy stored.\n");
159464064216a8433360745f69edddce19a606659163The Android Open Source Project}
159564064216a8433360745f69edddce19a606659163The Android Open Source Project
159664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Scan_get_bss_list(ConParm_t parm[], U16 nParms)
159764064216a8433360745f69edddce19a606659163The Android Open Source Project{
159864064216a8433360745f69edddce19a606659163The Android Open Source Project    bssList_t list;
159964064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
160064064216a8433360745f69edddce19a606659163The Android Open Source Project
160164064216a8433360745f69edddce19a606659163The Android Open Source Project    /* get list */
160264064216a8433360745f69edddce19a606659163The Android Open Source Project    if ( (TI_RESULT_OK != TI_GetScanBssList( g_id_adapter, &list )) || (0 == list.numOfEntries) )
160364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
160464064216a8433360745f69edddce19a606659163The Android Open Source Project        return;
160564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
160664064216a8433360745f69edddce19a606659163The Android Open Source Project
160764064216a8433360745f69edddce19a606659163The Android Open Source Project    /* console_printf_terminal list */
160864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("BSS List:\n");
160964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("%-17s  %-7s  %-6s  %-4s  %-10s\n", "BSSID", "Band", "Channel", "RSSI", "Neighbor?");
161064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("-----------------------------------------------------\n");
161164064216a8433360745f69edddce19a606659163The Android Open Source Project    for  ( i = 0; i < list.numOfEntries; i++ )
161264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
161364064216a8433360745f69edddce19a606659163The Android Open Source Project
161464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal( "%s  %s  %-7d  %-4d  %s\n",
161564064216a8433360745f69edddce19a606659163The Android Open Source Project               print_mac_2_str(list.BSSList[ i ].BSSID.addr), band2Str[ list.BSSList[ i ].band ].name,
161664064216a8433360745f69edddce19a606659163The Android Open Source Project               list.BSSList[ i ].channel, list.BSSList[ i ].RSSI,
161764064216a8433360745f69edddce19a606659163The Android Open Source Project               (TRUE == list.BSSList[ i ].bNeighborAP ? "Yes" : "No") );
161864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
161964064216a8433360745f69edddce19a606659163The Android Open Source Project}
162064064216a8433360745f69edddce19a606659163The Android Open Source Project
162164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_set_dtag_to_ac_mapping_table(ConParm_t parm[], U16 nParms)
162264064216a8433360745f69edddce19a606659163The Android Open Source Project{
162364064216a8433360745f69edddce19a606659163The Android Open Source Project    int				i;
162464064216a8433360745f69edddce19a606659163The Android Open Source Project    acTrfcType_e	dtagToAcTable[MAX_NUM_OF_802_1d_TAGS];
162564064216a8433360745f69edddce19a606659163The Android Open Source Project
162664064216a8433360745f69edddce19a606659163The Android Open Source Project    for (i=0; i<MAX_NUM_OF_802_1d_TAGS; i++)
162764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
162864064216a8433360745f69edddce19a606659163The Android Open Source Project        dtagToAcTable[i] = (UINT32) parm[i].value;
162964064216a8433360745f69edddce19a606659163The Android Open Source Project	}
163064064216a8433360745f69edddce19a606659163The Android Open Source Project	console_printf_terminal("Input parameters =%d, %d, %d, %d, %d, %d, %d, %d\n",
163164064216a8433360745f69edddce19a606659163The Android Open Source Project                    (UINT32) parm[0].value,
163264064216a8433360745f69edddce19a606659163The Android Open Source Project                    (UINT32) parm[1].value,
163364064216a8433360745f69edddce19a606659163The Android Open Source Project                    (UINT32) parm[2].value,
163464064216a8433360745f69edddce19a606659163The Android Open Source Project                    (UINT32) parm[3].value,
163564064216a8433360745f69edddce19a606659163The Android Open Source Project                    (UINT32) parm[4].value,
163664064216a8433360745f69edddce19a606659163The Android Open Source Project                    (UINT32) parm[5].value,
163764064216a8433360745f69edddce19a606659163The Android Open Source Project                    (UINT32) parm[6].value,
163864064216a8433360745f69edddce19a606659163The Android Open Source Project                    (UINT32) parm[7].value);
163964064216a8433360745f69edddce19a606659163The Android Open Source Project
164064064216a8433360745f69edddce19a606659163The Android Open Source Project	if (TI_SetDTagToAcMappingTable(g_id_adapter, dtagToAcTable) == TI_RESULT_OK)
164164064216a8433360745f69edddce19a606659163The Android Open Source Project	{
164264064216a8433360745f69edddce19a606659163The Android Open Source Project	}
164364064216a8433360745f69edddce19a606659163The Android Open Source Project	else
164464064216a8433360745f69edddce19a606659163The Android Open Source Project	{
164564064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal ("Error: could not set tag_ToAcClsfrTable ...\n");
164664064216a8433360745f69edddce19a606659163The Android Open Source Project	}
164764064216a8433360745f69edddce19a606659163The Android Open Source Project}
164864064216a8433360745f69edddce19a606659163The Android Open Source Project
164964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_set_vad(ConParm_t parm[], U16 nParms)
165064064216a8433360745f69edddce19a606659163The Android Open Source Project{
165164064216a8433360745f69edddce19a606659163The Android Open Source Project	txDataVadTimerParams_t  pVadTimer;
165264064216a8433360745f69edddce19a606659163The Android Open Source Project
165364064216a8433360745f69edddce19a606659163The Android Open Source Project	if (0 == nParms)	// GET operation
165464064216a8433360745f69edddce19a606659163The Android Open Source Project	{
165564064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Set VAD: \n");
165664064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("    Parm 0 -- 1: ENABLE; 0: DISABLE\n");
165764064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("    Parm 1 -- VAD timer duration in ms for enabling action\n");
165864064216a8433360745f69edddce19a606659163The Android Open Source Project		if (TI_GetVAD(g_id_adapter, &pVadTimer) == TI_RESULT_OK)
165964064216a8433360745f69edddce19a606659163The Android Open Source Project		{
166064064216a8433360745f69edddce19a606659163The Android Open Source Project
166164064216a8433360745f69edddce19a606659163The Android Open Source Project		    console_printf_terminal("Current param values: %d, %d\n",
166264064216a8433360745f69edddce19a606659163The Android Open Source Project				 pVadTimer.vadTimerEnabled, pVadTimer.vadTimerDuration);
166364064216a8433360745f69edddce19a606659163The Android Open Source Project		}
166464064216a8433360745f69edddce19a606659163The Android Open Source Project	}
166564064216a8433360745f69edddce19a606659163The Android Open Source Project	else
166664064216a8433360745f69edddce19a606659163The Android Open Source Project	{
166764064216a8433360745f69edddce19a606659163The Android Open Source Project		pVadTimer.vadTimerEnabled  = (UINT16) parm[0].value;
166864064216a8433360745f69edddce19a606659163The Android Open Source Project		pVadTimer.vadTimerDuration = (UINT16) parm[1].value;
166964064216a8433360745f69edddce19a606659163The Android Open Source Project
167064064216a8433360745f69edddce19a606659163The Android Open Source Project		if (pVadTimer.vadTimerEnabled)
167164064216a8433360745f69edddce19a606659163The Android Open Source Project		{
167264064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("Enabling VAD timer (cycle = %d ms)\n", pVadTimer.vadTimerDuration);
167364064216a8433360745f69edddce19a606659163The Android Open Source Project		}
167464064216a8433360745f69edddce19a606659163The Android Open Source Project		else
167564064216a8433360745f69edddce19a606659163The Android Open Source Project		{
167664064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("Disabling VAD timer\n");
167764064216a8433360745f69edddce19a606659163The Android Open Source Project		}
167864064216a8433360745f69edddce19a606659163The Android Open Source Project
167964064216a8433360745f69edddce19a606659163The Android Open Source Project		if (TI_SetVAD(g_id_adapter, &pVadTimer) == TI_RESULT_OK)
168064064216a8433360745f69edddce19a606659163The Android Open Source Project		{
168164064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("Setting VAD is done\n");
168264064216a8433360745f69edddce19a606659163The Android Open Source Project		}
168364064216a8433360745f69edddce19a606659163The Android Open Source Project	}
168464064216a8433360745f69edddce19a606659163The Android Open Source Project}
168564064216a8433360745f69edddce19a606659163The Android Open Source Project
168664064216a8433360745f69edddce19a606659163The Android Open Source Project
168764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_set_qos_params(ConParm_t parm[], U16 nParms)
168864064216a8433360745f69edddce19a606659163The Android Open Source Project{
168964064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_QOS_PARAMS pQosParams;
169064064216a8433360745f69edddce19a606659163The Android Open Source Project
169164064216a8433360745f69edddce19a606659163The Android Open Source Project   pQosParams.acID=parm[0].value;
169264064216a8433360745f69edddce19a606659163The Android Open Source Project   pQosParams.MaxLifeTime=parm[1].value;
169364064216a8433360745f69edddce19a606659163The Android Open Source Project   pQosParams.VoiceDeliveryProtocol=0;
169464064216a8433360745f69edddce19a606659163The Android Open Source Project   pQosParams.PSDeliveryProtocol=0;
169564064216a8433360745f69edddce19a606659163The Android Open Source Project
169664064216a8433360745f69edddce19a606659163The Android Open Source Project   if (nParms == 7) /* If the user has input 7 parameters, it means he gave Voice+PS delivery protocol values */
169764064216a8433360745f69edddce19a606659163The Android Open Source Project   {
169864064216a8433360745f69edddce19a606659163The Android Open Source Project      pQosParams.VoiceDeliveryProtocol=parm[5].value;
169964064216a8433360745f69edddce19a606659163The Android Open Source Project      pQosParams.PSDeliveryProtocol=parm[6].value;
170064064216a8433360745f69edddce19a606659163The Android Open Source Project
170164064216a8433360745f69edddce19a606659163The Android Open Source Project      /* If this QOS config was done for a queue OTHER THAN VO, we will zero the DeliveryProtocolPsPoll parameter and notify the user */
170264064216a8433360745f69edddce19a606659163The Android Open Source Project      if ((parm[0].value != 3) && (parm[5].value != 0))
170364064216a8433360745f69edddce19a606659163The Android Open Source Project         {
170464064216a8433360745f69edddce19a606659163The Android Open Source Project            pQosParams.VoiceDeliveryProtocol = 0;
170564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Since the acID is not VO, resetting VoiceDeliveryProtocol parameter to PS_NONE\n");
170664064216a8433360745f69edddce19a606659163The Android Open Source Project         }
170764064216a8433360745f69edddce19a606659163The Android Open Source Project      if ((pQosParams.VoiceDeliveryProtocol == 1) && (pQosParams.PSDeliveryProtocol == 1))
170864064216a8433360745f69edddce19a606659163The Android Open Source Project      {
170964064216a8433360745f69edddce19a606659163The Android Open Source Project            pQosParams.VoiceDeliveryProtocol = 1;
171064064216a8433360745f69edddce19a606659163The Android Open Source Project            pQosParams.PSDeliveryProtocol = 0;
171164064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Since the VoiceDeliveryProtocol is PS_POLL, resetting PSDeliveryProtocol to Legacy\n");
171264064216a8433360745f69edddce19a606659163The Android Open Source Project      }
171364064216a8433360745f69edddce19a606659163The Android Open Source Project   }
171464064216a8433360745f69edddce19a606659163The Android Open Source Project
171564064216a8433360745f69edddce19a606659163The Android Open Source Project   if (TI_SetQosParameters(g_id_adapter, &pQosParams) == TI_RESULT_OK)
171664064216a8433360745f69edddce19a606659163The Android Open Source Project   {
171764064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("Sent QOS params to driver...\n AC Number=%d \n MaxLifeTime=%d \n DeliveryProtocolPsPoll = %d\n PSDeliveryProtocol = %d\n",
171864064216a8433360745f69edddce19a606659163The Android Open Source Project          pQosParams.acID,
171964064216a8433360745f69edddce19a606659163The Android Open Source Project          pQosParams.MaxLifeTime,
172064064216a8433360745f69edddce19a606659163The Android Open Source Project          pQosParams.VoiceDeliveryProtocol,
172164064216a8433360745f69edddce19a606659163The Android Open Source Project          pQosParams.PSDeliveryProtocol);
172264064216a8433360745f69edddce19a606659163The Android Open Source Project   }
172364064216a8433360745f69edddce19a606659163The Android Open Source Project   else
172464064216a8433360745f69edddce19a606659163The Android Open Source Project   {
172564064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Error: could not set QOS params...\n");
172664064216a8433360745f69edddce19a606659163The Android Open Source Project   }
172764064216a8433360745f69edddce19a606659163The Android Open Source Project}
172864064216a8433360745f69edddce19a606659163The Android Open Source Project
172964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_set_rxTimeOut_params(ConParm_t parm[], U16 nParms)
173064064216a8433360745f69edddce19a606659163The Android Open Source Project{
173164064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_QOS_RX_TIMEOUT_PARAMS rxTimeOut;
173264064216a8433360745f69edddce19a606659163The Android Open Source Project
173364064216a8433360745f69edddce19a606659163The Android Open Source Project    rxTimeOut.psPoll = parm[0].value;
173464064216a8433360745f69edddce19a606659163The Android Open Source Project    rxTimeOut.UPSD   = parm[1].value;
173564064216a8433360745f69edddce19a606659163The Android Open Source Project
173664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (nParms != 2)
173764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
173864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Please enter Rx Time Out:\n");
173964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param 0 - psPoll (0 - 65000)\n");
174064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param 1 - UPSD (1 - 65000)\n");
174164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
174264064216a8433360745f69edddce19a606659163The Android Open Source Project    else
174364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
174464064216a8433360745f69edddce19a606659163The Android Open Source Project       if (TI_SetQosRxTimeOut(g_id_adapter, &rxTimeOut) == TI_RESULT_OK)
174564064216a8433360745f69edddce19a606659163The Android Open Source Project       {
174664064216a8433360745f69edddce19a606659163The Android Open Source Project          console_printf_terminal("Sent QOS Rx TimeOut params to driver...\n PsPoll = %d\n UPSD = %d\n",
174764064216a8433360745f69edddce19a606659163The Android Open Source Project              rxTimeOut.psPoll,
174864064216a8433360745f69edddce19a606659163The Android Open Source Project              rxTimeOut.UPSD);
174964064216a8433360745f69edddce19a606659163The Android Open Source Project       }
175064064216a8433360745f69edddce19a606659163The Android Open Source Project       else
175164064216a8433360745f69edddce19a606659163The Android Open Source Project       {
175264064216a8433360745f69edddce19a606659163The Android Open Source Project          console_printf_terminal ("Error: could not set Rx TimeOut..\n");
175364064216a8433360745f69edddce19a606659163The Android Open Source Project       }
175464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
175564064216a8433360745f69edddce19a606659163The Android Open Source Project}
175664064216a8433360745f69edddce19a606659163The Android Open Source Project
175764064216a8433360745f69edddce19a606659163The Android Open Source Project
175864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_enable_rx_data_filters(ConParm_t parm[], U16 nParms)
175964064216a8433360745f69edddce19a606659163The Android Open Source Project{
176064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Enabling Rx data filtering...\n");
176164064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_EnableDisableRxDataFilters( g_id_adapter, TRUE );
176264064216a8433360745f69edddce19a606659163The Android Open Source Project}
176364064216a8433360745f69edddce19a606659163The Android Open Source Project
176464064216a8433360745f69edddce19a606659163The Android Open Source Project
176564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_disable_rx_data_filters(ConParm_t parm[], U16 nParms)
176664064216a8433360745f69edddce19a606659163The Android Open Source Project{
176764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Disabling Rx data filtering...\n");
176864064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_EnableDisableRxDataFilters( g_id_adapter, FALSE );
176964064216a8433360745f69edddce19a606659163The Android Open Source Project}
177064064216a8433360745f69edddce19a606659163The Android Open Source Project
177164064216a8433360745f69edddce19a606659163The Android Open Source Project
177264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_rx_data_filters_statistics(ConParm_t parm[], U16 nParms)
177364064216a8433360745f69edddce19a606659163The Android Open Source Project{
177464064216a8433360745f69edddce19a606659163The Android Open Source Project    TIWLAN_DATA_FILTER_STATISTICS statistics;
177564064216a8433360745f69edddce19a606659163The Android Open Source Project
177664064216a8433360745f69edddce19a606659163The Android Open Source Project
177764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Rx data filtering statistics:\n");
177864064216a8433360745f69edddce19a606659163The Android Open Source Project
177964064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRxDataFiltersStatistics( g_id_adapter, &statistics );
178064064216a8433360745f69edddce19a606659163The Android Open Source Project
178164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Unmatched packets: %u\n", statistics.UnmatchedPacketsCount);
178264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Packets matching filter #1: %u\n", statistics.MatchedPacketsCount[0]);
178364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Packets matching filter #2: %u\n", statistics.MatchedPacketsCount[1]);
178464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Packets matching filter #3: %u\n", statistics.MatchedPacketsCount[2]);
178564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Packets matching filter #4: %u\n", statistics.MatchedPacketsCount[3]);
178664064216a8433360745f69edddce19a606659163The Android Open Source Project}
178764064216a8433360745f69edddce19a606659163The Android Open Source Project
178864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_show_power_consumption_stats(ConParm_t parm[])
178964064216a8433360745f69edddce19a606659163The Android Open Source Project{
179064064216a8433360745f69edddce19a606659163The Android Open Source Project    PowerConsumptionTimeStat_t statistics;
179164064216a8433360745f69edddce19a606659163The Android Open Source Project
179264064216a8433360745f69edddce19a606659163The Android Open Source Project
179364064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetPowerConsumptionStatistics( g_id_adapter, &statistics );
179464064216a8433360745f69edddce19a606659163The Android Open Source Project
179564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\nPower Consumption Statistics:\n");
179664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("-----------------------------\n");
179764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("activeTimeCnt_H: %u\n", statistics.activeTimeCnt_Hi);
179864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("activeTimeCnt_Low: %u\n", statistics.activeTimeCnt_Low);
179964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("elpTimeCnt_Hi: %u\n", statistics.elpTimeCnt_Hi);
180064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("elpTimeCnt_Low: %u\n", statistics.elpTimeCnt_Low);
180164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("powerDownTimeCnt_Hi: %u\n", statistics.powerDownTimeCnt_Hi);
180264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("powerDownTimeCnt_Low: %u\n", statistics.powerDownTimeCnt_Low);
180364064216a8433360745f69edddce19a606659163The Android Open Source Project
180464064216a8433360745f69edddce19a606659163The Android Open Source Project}
180564064216a8433360745f69edddce19a606659163The Android Open Source Project
180664064216a8433360745f69edddce19a606659163The Android Open Source Project
180764064216a8433360745f69edddce19a606659163The Android Open Source Project
180864064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void parse_hex_string(char * pString, tiUINT8 * pBuffer, tiUINT8 * Length)
180964064216a8433360745f69edddce19a606659163The Android Open Source Project{
181064064216a8433360745f69edddce19a606659163The Android Open Source Project    char ch;
181164064216a8433360745f69edddce19a606659163The Android Open Source Project    int iter = 0;
181264064216a8433360745f69edddce19a606659163The Android Open Source Project
181364064216a8433360745f69edddce19a606659163The Android Open Source Project    while ((ch = pString[iter]))
181464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
181564064216a8433360745f69edddce19a606659163The Android Open Source Project        UINT8 val = ((ch >= '0' && ch <= '9') ? (ch - '0') :
181664064216a8433360745f69edddce19a606659163The Android Open Source Project                     (ch >= 'A' && ch <= 'F') ? (0xA + ch - 'A') :
181764064216a8433360745f69edddce19a606659163The Android Open Source Project                     (ch >= 'a' && ch <= 'f') ? (0xA + ch - 'a') : 0);
181864064216a8433360745f69edddce19a606659163The Android Open Source Project
181964064216a8433360745f69edddce19a606659163The Android Open Source Project        /* even indexes go to the lower nibble, odd indexes push them to the */
182064064216a8433360745f69edddce19a606659163The Android Open Source Project        /* higher nibble and then go themselves to the lower nibble. */
182164064216a8433360745f69edddce19a606659163The Android Open Source Project        if (iter % 2)
182264064216a8433360745f69edddce19a606659163The Android Open Source Project            pBuffer[iter / 2] = ((pBuffer[iter / 2] << (BIT_TO_BYTE_FACTOR / 2)) | val);
182364064216a8433360745f69edddce19a606659163The Android Open Source Project        else
182464064216a8433360745f69edddce19a606659163The Android Open Source Project            pBuffer[iter / 2] = val;
182564064216a8433360745f69edddce19a606659163The Android Open Source Project
182664064216a8433360745f69edddce19a606659163The Android Open Source Project        ++iter;
182764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
182864064216a8433360745f69edddce19a606659163The Android Open Source Project
182964064216a8433360745f69edddce19a606659163The Android Open Source Project    /* iter = 0 len = 0, iter = 1 len = 1, iter = 2 len = 1, and so on... */
183064064216a8433360745f69edddce19a606659163The Android Open Source Project    *Length = (iter + 1) / 2;
183164064216a8433360745f69edddce19a606659163The Android Open Source Project}
183264064216a8433360745f69edddce19a606659163The Android Open Source Project
183364064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void parse_binary_string(char * pString, tiUINT8 * pBuffer, tiUINT8 * Length)
183464064216a8433360745f69edddce19a606659163The Android Open Source Project{
183564064216a8433360745f69edddce19a606659163The Android Open Source Project    char ch;
183664064216a8433360745f69edddce19a606659163The Android Open Source Project    int iter = 0;
183764064216a8433360745f69edddce19a606659163The Android Open Source Project
183864064216a8433360745f69edddce19a606659163The Android Open Source Project    while ((ch = pString[iter]))
183964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
184064064216a8433360745f69edddce19a606659163The Android Open Source Project        UINT8 val = (ch == '1' ? 1 : 0);
184164064216a8433360745f69edddce19a606659163The Android Open Source Project
184264064216a8433360745f69edddce19a606659163The Android Open Source Project        if (iter % BIT_TO_BYTE_FACTOR)
184364064216a8433360745f69edddce19a606659163The Android Open Source Project            pBuffer[iter / BIT_TO_BYTE_FACTOR] |= (val << (iter % BIT_TO_BYTE_FACTOR));
184464064216a8433360745f69edddce19a606659163The Android Open Source Project        else
184564064216a8433360745f69edddce19a606659163The Android Open Source Project            pBuffer[iter / BIT_TO_BYTE_FACTOR] = val;
184664064216a8433360745f69edddce19a606659163The Android Open Source Project
184764064216a8433360745f69edddce19a606659163The Android Open Source Project        ++iter;
184864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
184964064216a8433360745f69edddce19a606659163The Android Open Source Project
185064064216a8433360745f69edddce19a606659163The Android Open Source Project    /* iter = 0 len = 0, iter = 1 len = 1, iter = 8 len = 1, and so on... */
185164064216a8433360745f69edddce19a606659163The Android Open Source Project    *Length = (iter + BIT_TO_BYTE_FACTOR - 1) / BIT_TO_BYTE_FACTOR;
185264064216a8433360745f69edddce19a606659163The Android Open Source Project}
185364064216a8433360745f69edddce19a606659163The Android Open Source Project
185464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_add_rx_data_filter(ConParm_t parm[], U16 nParms)
185564064216a8433360745f69edddce19a606659163The Android Open Source Project{
185664064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 resultCode;
185764064216a8433360745f69edddce19a606659163The Android Open Source Project    TIWLAN_DATA_FILTER_REQUEST request;
185864064216a8433360745f69edddce19a606659163The Android Open Source Project
185964064216a8433360745f69edddce19a606659163The Android Open Source Project    char * mask = (char *) parm[1].value;
186064064216a8433360745f69edddce19a606659163The Android Open Source Project    char * pattern = (char *) parm[2].value;
186164064216a8433360745f69edddce19a606659163The Android Open Source Project
186264064216a8433360745f69edddce19a606659163The Android Open Source Project
186364064216a8433360745f69edddce19a606659163The Android Open Source Project    request.Offset = (UINT8) parm[0].value;
186464064216a8433360745f69edddce19a606659163The Android Open Source Project
186564064216a8433360745f69edddce19a606659163The Android Open Source Project    parse_binary_string(mask, request.Mask, &request.MaskLength);
186664064216a8433360745f69edddce19a606659163The Android Open Source Project    parse_hex_string(pattern, request.Pattern, &request.PatternLength);
186764064216a8433360745f69edddce19a606659163The Android Open Source Project
186864064216a8433360745f69edddce19a606659163The Android Open Source Project    resultCode = TI_AddRxDataFilter(g_id_adapter, &request);
186964064216a8433360745f69edddce19a606659163The Android Open Source Project
187064064216a8433360745f69edddce19a606659163The Android Open Source Project
187164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(resultCode == RX_NO_AVAILABLE_FILTERS ? "Error: There are no available filter slots.\n" :
187264064216a8433360745f69edddce19a606659163The Android Open Source Project                            resultCode == RX_FILTER_ALREADY_EXISTS ? "Error: Filter already exists.\n" :
187364064216a8433360745f69edddce19a606659163The Android Open Source Project                            resultCode == NOK ? "Error: Could not add the filter.\n" :
187464064216a8433360745f69edddce19a606659163The Android Open Source Project                            "Filter added.\n");
187564064216a8433360745f69edddce19a606659163The Android Open Source Project}
187664064216a8433360745f69edddce19a606659163The Android Open Source Project
187764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_remove_rx_data_filter(ConParm_t parm[], U16 nParms)
187864064216a8433360745f69edddce19a606659163The Android Open Source Project{
187964064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 resultCode;
188064064216a8433360745f69edddce19a606659163The Android Open Source Project    TIWLAN_DATA_FILTER_REQUEST request;
188164064216a8433360745f69edddce19a606659163The Android Open Source Project
188264064216a8433360745f69edddce19a606659163The Android Open Source Project    char * mask = (char *) parm[1].value;
188364064216a8433360745f69edddce19a606659163The Android Open Source Project    char * pattern = (char *) parm[2].value;
188464064216a8433360745f69edddce19a606659163The Android Open Source Project
188564064216a8433360745f69edddce19a606659163The Android Open Source Project    request.Offset = (UINT8) parm[0].value;
188664064216a8433360745f69edddce19a606659163The Android Open Source Project
188764064216a8433360745f69edddce19a606659163The Android Open Source Project    parse_binary_string(mask, request.Mask, &request.MaskLength);
188864064216a8433360745f69edddce19a606659163The Android Open Source Project    parse_hex_string(pattern, request.Pattern, &request.PatternLength);
188964064216a8433360745f69edddce19a606659163The Android Open Source Project
189064064216a8433360745f69edddce19a606659163The Android Open Source Project    resultCode = TI_RemoveRxDataFilter(g_id_adapter, &request);
189164064216a8433360745f69edddce19a606659163The Android Open Source Project
189264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(resultCode == RX_FILTER_DOES_NOT_EXIST ? "Error: Filter was not found.\n" :
189364064216a8433360745f69edddce19a606659163The Android Open Source Project                            resultCode == NOK ? "Error: Could not remove the filter, removal request must be identical to add request.\n" :
189464064216a8433360745f69edddce19a606659163The Android Open Source Project                            "Filter removed.\n");
189564064216a8433360745f69edddce19a606659163The Android Open Source Project}
189664064216a8433360745f69edddce19a606659163The Android Open Source Project
189764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_MaxRxLifetime_params(ConParm_t parm[], U16 nParms)
189864064216a8433360745f69edddce19a606659163The Android Open Source Project{
189964064216a8433360745f69edddce19a606659163The Android Open Source Project    PLT_MIB_t Mib;
190064064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 Status;
190164064216a8433360745f69edddce19a606659163The Android Open Source Project    memset(&Mib, 0, sizeof(Mib));
190264064216a8433360745f69edddce19a606659163The Android Open Source Project    Mib.aMib = PLT_MIB_dot11MaxReceiveLifetime;
190364064216a8433360745f69edddce19a606659163The Android Open Source Project
190464064216a8433360745f69edddce19a606659163The Android Open Source Project	if (nParms != 1)
190564064216a8433360745f69edddce19a606659163The Android Open Source Project	{
190664064216a8433360745f69edddce19a606659163The Android Open Source Project	   console_printf_terminal("Max Rx lifetime: [0 - 4294967295(0xFFFFFFFF)]\n");
190764064216a8433360745f69edddce19a606659163The Android Open Source Project
190864064216a8433360745f69edddce19a606659163The Android Open Source Project	}
190964064216a8433360745f69edddce19a606659163The Android Open Source Project
191064064216a8433360745f69edddce19a606659163The Android Open Source Project	if (nParms == 0) /*Get MaxRxlifetime */
191164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
191264064216a8433360745f69edddce19a606659163The Android Open Source Project        Status = TI_PLT_ReadMIB(g_id_adapter, &Mib);
191364064216a8433360745f69edddce19a606659163The Android Open Source Project        if (OK == Status)
191464064216a8433360745f69edddce19a606659163The Android Open Source Project  	       console_printf_terminal("MaxRxLifetime = %d\n", Mib.aData.MaxReceiveLifeTime);
191564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
191664064216a8433360745f69edddce19a606659163The Android Open Source Project    else if (nParms == 1)
191764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
191864064216a8433360745f69edddce19a606659163The Android Open Source Project        Mib.Length = sizeof(Mib.aData.MaxReceiveLifeTime);
191964064216a8433360745f69edddce19a606659163The Android Open Source Project        Mib.aData.MaxReceiveLifeTime = parm[0].value;
192064064216a8433360745f69edddce19a606659163The Android Open Source Project        if (OK != TI_PLT_WriteMIB(g_id_adapter, &Mib))
192164064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("TI_PLT_WriteMIB failed\n");
192264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
192364064216a8433360745f69edddce19a606659163The Android Open Source Project}
192464064216a8433360745f69edddce19a606659163The Android Open Source Project
192564064216a8433360745f69edddce19a606659163The Android Open Source Project
192664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_add_tspec(ConParm_t parm[], U16 nParms)
192764064216a8433360745f69edddce19a606659163The Android Open Source Project{
192864064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_QOS_TSPEC_PARAMS pTspecParams;
192964064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
193064064216a8433360745f69edddce19a606659163The Android Open Source Project
193164064216a8433360745f69edddce19a606659163The Android Open Source Project   pTspecParams.uUserPriority = parm[0].value;
193264064216a8433360745f69edddce19a606659163The Android Open Source Project   pTspecParams.uNominalMSDUsize = parm[1].value;
193364064216a8433360745f69edddce19a606659163The Android Open Source Project   pTspecParams.uMeanDataRate = parm[2].value;
193464064216a8433360745f69edddce19a606659163The Android Open Source Project   pTspecParams.uMinimumPHYRate = parm[3].value * 1000 * 1000;
193564064216a8433360745f69edddce19a606659163The Android Open Source Project   pTspecParams.uSurplusBandwidthAllowance = parm[4].value << 13;
193664064216a8433360745f69edddce19a606659163The Android Open Source Project   pTspecParams.uAPSDFlag = parm[5].value;
193764064216a8433360745f69edddce19a606659163The Android Open Source Project
193864064216a8433360745f69edddce19a606659163The Android Open Source Project   resultCode = TI_AddTspec (g_id_adapter,&pTspecParams);
193964064216a8433360745f69edddce19a606659163The Android Open Source Project
194064064216a8433360745f69edddce19a606659163The Android Open Source Project   switch (resultCode)
194164064216a8433360745f69edddce19a606659163The Android Open Source Project   {
194264064216a8433360745f69edddce19a606659163The Android Open Source Project   case OK:
194364064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("TSpec request sent to driver...\n uUserPriority = %d\n uNominalMSDUsize = %d\n uMeanDataRate = %d\n uMinimumPHYRate = %d\n uSurplusBandwidthAllowance = %d\n uAPSDFlag = %d\n",
194464064216a8433360745f69edddce19a606659163The Android Open Source Project               parm[0].value,
194564064216a8433360745f69edddce19a606659163The Android Open Source Project               parm[1].value,
194664064216a8433360745f69edddce19a606659163The Android Open Source Project               parm[2].value,
194764064216a8433360745f69edddce19a606659163The Android Open Source Project               parm[3].value,
194864064216a8433360745f69edddce19a606659163The Android Open Source Project               parm[4].value,
194964064216a8433360745f69edddce19a606659163The Android Open Source Project               parm[5].value);
195064064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
195164064216a8433360745f69edddce19a606659163The Android Open Source Project   case TRAFIC_ADM_PENDING:
195264064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Driver is still waiting for a response of previous request...\n");
195364064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
195464064216a8433360745f69edddce19a606659163The Android Open Source Project   case AC_ALREADY_IN_USE:
195564064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Other user priority from the same AC has already used a TSPEC...\n");
195664064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
195764064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOT_CONNECTED:
195864064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Not connected to an AP...\n");
195964064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
196064064216a8433360745f69edddce19a606659163The Android Open Source Project   case NO_QOS_AP:
196164064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("AP does not support QOS...\n");
196264064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
196364064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOK:
196464064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Invalid parameter...\n");
196564064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
196664064216a8433360745f69edddce19a606659163The Android Open Source Project   default:
196764064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Unknown return value...\n");
196864064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
196964064216a8433360745f69edddce19a606659163The Android Open Source Project   }
197064064216a8433360745f69edddce19a606659163The Android Open Source Project
197164064216a8433360745f69edddce19a606659163The Android Open Source Project   return;
197264064216a8433360745f69edddce19a606659163The Android Open Source Project}
197364064216a8433360745f69edddce19a606659163The Android Open Source Project
197464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_tspec_params(ConParm_t parm[], U16 nParms)
197564064216a8433360745f69edddce19a606659163The Android Open Source Project{
197664064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_QOS_TSPEC_PARAMS pTspecParams;
197764064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
197864064216a8433360745f69edddce19a606659163The Android Open Source Project
197964064216a8433360745f69edddce19a606659163The Android Open Source Project   pTspecParams.uUserPriority = parm[0].value;
198064064216a8433360745f69edddce19a606659163The Android Open Source Project
198164064216a8433360745f69edddce19a606659163The Android Open Source Project   resultCode = TI_GetTspecParameters(g_id_adapter, &pTspecParams);
198264064216a8433360745f69edddce19a606659163The Android Open Source Project
198364064216a8433360745f69edddce19a606659163The Android Open Source Project   switch (resultCode)
198464064216a8433360745f69edddce19a606659163The Android Open Source Project   {
198564064216a8433360745f69edddce19a606659163The Android Open Source Project   case OK:
198664064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("TSpec parameters retrieved:\nuUserPriority = %d\nuNominalMSDUsize = %d\nuMeanDataRate = %d\nuMinimumPHYRate = %d\nuSurplusBandwidthAllowance = %d\nuUAPSD_Flag = %d\nuMediumTime = %d\n",
198764064216a8433360745f69edddce19a606659163The Android Open Source Project               pTspecParams.uUserPriority,
198864064216a8433360745f69edddce19a606659163The Android Open Source Project               pTspecParams.uNominalMSDUsize,
198964064216a8433360745f69edddce19a606659163The Android Open Source Project               pTspecParams.uMeanDataRate,
199064064216a8433360745f69edddce19a606659163The Android Open Source Project               pTspecParams.uMinimumPHYRate,
199164064216a8433360745f69edddce19a606659163The Android Open Source Project               pTspecParams.uSurplusBandwidthAllowance,
199264064216a8433360745f69edddce19a606659163The Android Open Source Project               pTspecParams.uAPSDFlag,
199364064216a8433360745f69edddce19a606659163The Android Open Source Project               pTspecParams.uMediumTime);
199464064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
199564064216a8433360745f69edddce19a606659163The Android Open Source Project   case USER_PRIORITY_NOT_ADMITTED:
199664064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("User Priority is not admitted...\n");
199764064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
199864064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOT_CONNECTED:
199964064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Not connected to an AP...\n");
200064064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
200164064216a8433360745f69edddce19a606659163The Android Open Source Project   case NO_QOS_AP:
200264064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("AP does not support QOS...\n");
200364064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
200464064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOK:
200564064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Invalid parameter...\n");
200664064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
200764064216a8433360745f69edddce19a606659163The Android Open Source Project   default:
200864064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Unknown return value...\n");
200964064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
201064064216a8433360745f69edddce19a606659163The Android Open Source Project   }
201164064216a8433360745f69edddce19a606659163The Android Open Source Project
201264064216a8433360745f69edddce19a606659163The Android Open Source Project   return;
201364064216a8433360745f69edddce19a606659163The Android Open Source Project}
201464064216a8433360745f69edddce19a606659163The Android Open Source Project
201564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_delete_tspec(ConParm_t parm[], U16 nParms)
201664064216a8433360745f69edddce19a606659163The Android Open Source Project{
201764064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_QOS_DELETE_TSPEC_PARAMS pDelTspecParams;
201864064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
201964064216a8433360745f69edddce19a606659163The Android Open Source Project
202064064216a8433360745f69edddce19a606659163The Android Open Source Project   pDelTspecParams.uUserPriority = parm[0].value;
202164064216a8433360745f69edddce19a606659163The Android Open Source Project   pDelTspecParams.uReasonCode = parm[1].value;
202264064216a8433360745f69edddce19a606659163The Android Open Source Project
202364064216a8433360745f69edddce19a606659163The Android Open Source Project   resultCode = TI_DeleteTspec(g_id_adapter, &pDelTspecParams);
202464064216a8433360745f69edddce19a606659163The Android Open Source Project
202564064216a8433360745f69edddce19a606659163The Android Open Source Project   switch (resultCode)
202664064216a8433360745f69edddce19a606659163The Android Open Source Project   {
202764064216a8433360745f69edddce19a606659163The Android Open Source Project   case OK:
202864064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("TSPEC Delete request sent to driver...\n uUserPriority = %d\n uReasonCode = %d\n",
202964064216a8433360745f69edddce19a606659163The Android Open Source Project               pDelTspecParams.uUserPriority,
203064064216a8433360745f69edddce19a606659163The Android Open Source Project               pDelTspecParams.uReasonCode);
203164064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
203264064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOT_CONNECTED:
203364064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Not connected to an AP...\n");
203464064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
203564064216a8433360745f69edddce19a606659163The Android Open Source Project   case NO_QOS_AP:
203664064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("AP does not support QOS...\n");
203764064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
203864064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOK:
203964064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Invalid parameter...\n");
204064064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
204164064216a8433360745f69edddce19a606659163The Android Open Source Project   default:
204264064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Unknown return value...\n");
204364064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
204464064216a8433360745f69edddce19a606659163The Android Open Source Project   }
204564064216a8433360745f69edddce19a606659163The Android Open Source Project
204664064216a8433360745f69edddce19a606659163The Android Open Source Project}
204764064216a8433360745f69edddce19a606659163The Android Open Source Project
204864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_ap_qos_params(ConParm_t parm[], U16 nParms)
204964064216a8433360745f69edddce19a606659163The Android Open Source Project{
205064064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_AC_QOS_PARAMS pACQosParams;
205164064216a8433360745f69edddce19a606659163The Android Open Source Project   int i = 0;
205264064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
205364064216a8433360745f69edddce19a606659163The Android Open Source Project
205464064216a8433360745f69edddce19a606659163The Android Open Source Project   pACQosParams.uAC = i;
205564064216a8433360745f69edddce19a606659163The Android Open Source Project   /* Read AC 0 parameters - just to check if connected to QOS AP etc */
205664064216a8433360745f69edddce19a606659163The Android Open Source Project   resultCode = TI_GetAPQosParameters(g_id_adapter, &pACQosParams);
205764064216a8433360745f69edddce19a606659163The Android Open Source Project
205864064216a8433360745f69edddce19a606659163The Android Open Source Project   switch (resultCode)
205964064216a8433360745f69edddce19a606659163The Android Open Source Project   {
206064064216a8433360745f69edddce19a606659163The Android Open Source Project   case OK:
206164064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal ("AP QOS Parameters:\n");
206264064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("+----+-------------+----------+-----------+-----------+-----------+\n");
206364064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("| AC | AdmCtrlFlag |   AIFS   |   CwMin   |   CwMax   | TXOPLimit |\n");
206464064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("+----+-------------+----------+-----------+-----------+-----------+\n");
206564064216a8433360745f69edddce19a606659163The Android Open Source Project
206664064216a8433360745f69edddce19a606659163The Android Open Source Project
206764064216a8433360745f69edddce19a606659163The Android Open Source Project   for (i=0; i<4; i++)
206864064216a8433360745f69edddce19a606659163The Android Open Source Project      {
206964064216a8433360745f69edddce19a606659163The Android Open Source Project         pACQosParams.uAC = i;
207064064216a8433360745f69edddce19a606659163The Android Open Source Project         resultCode = TI_GetAPQosParameters(g_id_adapter, &pACQosParams);
207164064216a8433360745f69edddce19a606659163The Android Open Source Project
207264064216a8433360745f69edddce19a606659163The Android Open Source Project               console_printf_terminal ("| %2d | %11d | %8d | %9d | %9d | %9d |\n",i,
207364064216a8433360745f69edddce19a606659163The Android Open Source Project               pACQosParams.uAssocAdmissionCtrlFlag,
207464064216a8433360745f69edddce19a606659163The Android Open Source Project               pACQosParams.uAIFS,
207564064216a8433360745f69edddce19a606659163The Android Open Source Project               pACQosParams.uCwMin,
207664064216a8433360745f69edddce19a606659163The Android Open Source Project               pACQosParams.uCwMax,
207764064216a8433360745f69edddce19a606659163The Android Open Source Project               pACQosParams.uTXOPLimit);
207864064216a8433360745f69edddce19a606659163The Android Open Source Project      }
207964064216a8433360745f69edddce19a606659163The Android Open Source Project
208064064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("+----+-------------+----------+-----------+-----------+-----------+\n");
208164064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
208264064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOT_CONNECTED:
208364064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Not connected to an AP...\n");
208464064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
208564064216a8433360745f69edddce19a606659163The Android Open Source Project   case NO_QOS_AP:
208664064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("AP does not support QOS...\n");
208764064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
208864064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOK:
208964064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Invalid parameter...\n");
209064064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
209164064216a8433360745f69edddce19a606659163The Android Open Source Project   default:
209264064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Unknown return value...\n");
209364064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
209464064216a8433360745f69edddce19a606659163The Android Open Source Project   }
209564064216a8433360745f69edddce19a606659163The Android Open Source Project
209664064216a8433360745f69edddce19a606659163The Android Open Source Project}
209764064216a8433360745f69edddce19a606659163The Android Open Source Project
209864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_ap_qos_capabilities(ConParm_t parm[], U16 nParms)
209964064216a8433360745f69edddce19a606659163The Android Open Source Project{
210064064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_AP_QOS_CAPABILITIES_PARAMS pAPQosCapabiltiesParams;
210164064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
210264064216a8433360745f69edddce19a606659163The Android Open Source Project
210364064216a8433360745f69edddce19a606659163The Android Open Source Project   resultCode = TI_GetAPQosCapabilitesParameters(g_id_adapter, &pAPQosCapabiltiesParams);
210464064216a8433360745f69edddce19a606659163The Android Open Source Project
210564064216a8433360745f69edddce19a606659163The Android Open Source Project   switch (resultCode)
210664064216a8433360745f69edddce19a606659163The Android Open Source Project   {
210764064216a8433360745f69edddce19a606659163The Android Open Source Project   case TI_RESULT_OK:
210864064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("AP Qos Capabilities:\n QOSFlag = %d\n APSDFlag = %d\n",pAPQosCapabiltiesParams.uQOSFlag,pAPQosCapabiltiesParams.uAPSDFlag);
210964064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
211064064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOT_CONNECTED:
211164064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Not connected to an AP...\n");
211264064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
211364064216a8433360745f69edddce19a606659163The Android Open Source Project   case NO_QOS_AP:
211464064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("AP does not support QOS...\n");
211564064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
211664064216a8433360745f69edddce19a606659163The Android Open Source Project   default:
211764064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Unknown return value...\n");
211864064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
211964064216a8433360745f69edddce19a606659163The Android Open Source Project   }
212064064216a8433360745f69edddce19a606659163The Android Open Source Project
212164064216a8433360745f69edddce19a606659163The Android Open Source Project   return;
212264064216a8433360745f69edddce19a606659163The Android Open Source Project}
212364064216a8433360745f69edddce19a606659163The Android Open Source Project
212464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_ac_status(ConParm_t parm[], U16 nParms)
212564064216a8433360745f69edddce19a606659163The Android Open Source Project{
212664064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_AC_UPSD_STATUS_PARAMS pAcStatusParams;
212764064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
212864064216a8433360745f69edddce19a606659163The Android Open Source Project
212964064216a8433360745f69edddce19a606659163The Android Open Source Project   pAcStatusParams.uAC = parm[0].value;
213064064216a8433360745f69edddce19a606659163The Android Open Source Project
213164064216a8433360745f69edddce19a606659163The Android Open Source Project   resultCode = TI_GetCurrentACStatus(g_id_adapter, &pAcStatusParams);
213264064216a8433360745f69edddce19a606659163The Android Open Source Project
213364064216a8433360745f69edddce19a606659163The Android Open Source Project   switch (resultCode)
213464064216a8433360745f69edddce19a606659163The Android Open Source Project   {
213564064216a8433360745f69edddce19a606659163The Android Open Source Project   case TI_RESULT_OK:
213664064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("AC %d Status:\nCurrentUAPSDStatus = %d (0=PS_POLL,1=UPSD,2=PS_NONE)\nCurrentAdmissionStatus = %d(0=NOT_ADMITED,1=WAIT,2=ADMITED)\n",
213764064216a8433360745f69edddce19a606659163The Android Open Source Project               pAcStatusParams.uAC,
213864064216a8433360745f69edddce19a606659163The Android Open Source Project               pAcStatusParams.uCurrentUAPSDStatus,
213964064216a8433360745f69edddce19a606659163The Android Open Source Project               pAcStatusParams.pCurrentAdmissionStatus);
214064064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
214164064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOT_CONNECTED:
214264064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Not connected to an AP...\n");
214364064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
214464064216a8433360745f69edddce19a606659163The Android Open Source Project   case NO_QOS_AP:
214564064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("AP does not support QOS...\n");
214664064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
214764064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOK:
214864064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Invalid parameters...\n");
214964064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
215064064216a8433360745f69edddce19a606659163The Android Open Source Project   default:
215164064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Unknown return value...\n");
215264064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
215364064216a8433360745f69edddce19a606659163The Android Open Source Project   }
215464064216a8433360745f69edddce19a606659163The Android Open Source Project
215564064216a8433360745f69edddce19a606659163The Android Open Source Project}
215664064216a8433360745f69edddce19a606659163The Android Open Source Project
215764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_desired_ps_mode(ConParm_t parm[], U16 nParms)
215864064216a8433360745f69edddce19a606659163The Android Open Source Project{
215964064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_QOS_DESIRED_PS_MODE pDesiredPsMode;
216064064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
216164064216a8433360745f69edddce19a606659163The Android Open Source Project
216264064216a8433360745f69edddce19a606659163The Android Open Source Project   resultCode = TI_GetDesiredPsMode(g_id_adapter, &pDesiredPsMode);
216364064216a8433360745f69edddce19a606659163The Android Open Source Project
216464064216a8433360745f69edddce19a606659163The Android Open Source Project   switch (resultCode)
216564064216a8433360745f69edddce19a606659163The Android Open Source Project   {
216664064216a8433360745f69edddce19a606659163The Android Open Source Project   case TI_RESULT_OK:
216764064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("\n\
216864064216a8433360745f69edddce19a606659163The Android Open Source ProjectDesired PS Mode (0=PS_POLL, 1=UPSD, 2=PS_NONE):\n\
216964064216a8433360745f69edddce19a606659163The Android Open Source Project===============================================\n\
217064064216a8433360745f69edddce19a606659163The Android Open Source ProjectGeneral Desired Ps Mode  =  %d\n\
217164064216a8433360745f69edddce19a606659163The Android Open Source Project BE_AC  Desired Ps Mode  =  %d\n\
217264064216a8433360745f69edddce19a606659163The Android Open Source Project BK_AC  Desired Ps Mode  =  %d\n\
217364064216a8433360745f69edddce19a606659163The Android Open Source Project VI_AC  Desired Ps Mode  =  %d\n\
217464064216a8433360745f69edddce19a606659163The Android Open Source Project VO_AC  Desired Ps Mode  =  %d\n",
217564064216a8433360745f69edddce19a606659163The Android Open Source Project              pDesiredPsMode.uDesiredPsMode,
217664064216a8433360745f69edddce19a606659163The Android Open Source Project              pDesiredPsMode.uDesiredWmeAcPsMode[QOS_AC_BE],
217764064216a8433360745f69edddce19a606659163The Android Open Source Project              pDesiredPsMode.uDesiredWmeAcPsMode[QOS_AC_BK],
217864064216a8433360745f69edddce19a606659163The Android Open Source Project              pDesiredPsMode.uDesiredWmeAcPsMode[QOS_AC_VI],
217964064216a8433360745f69edddce19a606659163The Android Open Source Project              pDesiredPsMode.uDesiredWmeAcPsMode[QOS_AC_VO]);
218064064216a8433360745f69edddce19a606659163The Android Open Source Project
218164064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
218264064216a8433360745f69edddce19a606659163The Android Open Source Project   case NOK:
218364064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Invalid parameters...\n");
218464064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
218564064216a8433360745f69edddce19a606659163The Android Open Source Project   default:
218664064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Unknown return value...\n");
218764064216a8433360745f69edddce19a606659163The Android Open Source Project      break;
218864064216a8433360745f69edddce19a606659163The Android Open Source Project   }
218964064216a8433360745f69edddce19a606659163The Android Open Source Project}
219064064216a8433360745f69edddce19a606659163The Android Open Source Project
219164064216a8433360745f69edddce19a606659163The Android Open Source Project
219264064216a8433360745f69edddce19a606659163The Android Open Source Project
219364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_medium_usage_threshold(ConParm_t parm[], U16 nParms)
219464064216a8433360745f69edddce19a606659163The Android Open Source Project{
219564064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_THRESHOLD_CROSS_PARAMS pThresholdCrossParams;
219664064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
219764064216a8433360745f69edddce19a606659163The Android Open Source Project
219864064216a8433360745f69edddce19a606659163The Android Open Source Project   if (nParms == 3) /* If user supplied 3 parameters - this is a SET operation */
219964064216a8433360745f69edddce19a606659163The Android Open Source Project   {
220064064216a8433360745f69edddce19a606659163The Android Open Source Project       pThresholdCrossParams.uAC = parm[0].value;
220164064216a8433360745f69edddce19a606659163The Android Open Source Project       pThresholdCrossParams.uHighThreshold = parm[1].value;
220264064216a8433360745f69edddce19a606659163The Android Open Source Project       pThresholdCrossParams.uLowThreshold = parm[2].value;
220364064216a8433360745f69edddce19a606659163The Android Open Source Project
220464064216a8433360745f69edddce19a606659163The Android Open Source Project      if (pThresholdCrossParams.uLowThreshold > pThresholdCrossParams.uHighThreshold)
220564064216a8433360745f69edddce19a606659163The Android Open Source Project      {
220664064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("Low threshold cannot be higher than the High threshold...Aborting...\n");
220764064216a8433360745f69edddce19a606659163The Android Open Source Project      }
220864064216a8433360745f69edddce19a606659163The Android Open Source Project      else
220964064216a8433360745f69edddce19a606659163The Android Open Source Project      {
221064064216a8433360745f69edddce19a606659163The Android Open Source Project           resultCode = TI_SetMediumUsageThreshold(g_id_adapter, &pThresholdCrossParams);
221164064216a8433360745f69edddce19a606659163The Android Open Source Project           if (resultCode == TI_RESULT_OK)
221264064216a8433360745f69edddce19a606659163The Android Open Source Project           {
221364064216a8433360745f69edddce19a606659163The Android Open Source Project               console_printf_terminal ("Medium usage threshold for AC %d has been set to:\n LowThreshold = %d\n HighThreshold = %d\n",
221464064216a8433360745f69edddce19a606659163The Android Open Source Project               pThresholdCrossParams.uAC,
221564064216a8433360745f69edddce19a606659163The Android Open Source Project               pThresholdCrossParams.uLowThreshold,
221664064216a8433360745f69edddce19a606659163The Android Open Source Project               pThresholdCrossParams.uHighThreshold);
221764064216a8433360745f69edddce19a606659163The Android Open Source Project           }
221864064216a8433360745f69edddce19a606659163The Android Open Source Project           else
221964064216a8433360745f69edddce19a606659163The Android Open Source Project           {
222064064216a8433360745f69edddce19a606659163The Android Open Source Project               console_printf_terminal ("Error...\n");
222164064216a8433360745f69edddce19a606659163The Android Open Source Project           }
222264064216a8433360745f69edddce19a606659163The Android Open Source Project      }
222364064216a8433360745f69edddce19a606659163The Android Open Source Project
222464064216a8433360745f69edddce19a606659163The Android Open Source Project   }
222564064216a8433360745f69edddce19a606659163The Android Open Source Project   else if (nParms == 1) /* Only 1 parameter means a GET operation */
222664064216a8433360745f69edddce19a606659163The Android Open Source Project   {
222764064216a8433360745f69edddce19a606659163The Android Open Source Project      pThresholdCrossParams.uAC = parm[0].value;
222864064216a8433360745f69edddce19a606659163The Android Open Source Project      pThresholdCrossParams.uLowThreshold = 0;
222964064216a8433360745f69edddce19a606659163The Android Open Source Project      pThresholdCrossParams.uHighThreshold = 0;
223064064216a8433360745f69edddce19a606659163The Android Open Source Project
223164064216a8433360745f69edddce19a606659163The Android Open Source Project      resultCode = TI_GetMediumUsageThreshold(g_id_adapter, &pThresholdCrossParams);
223264064216a8433360745f69edddce19a606659163The Android Open Source Project
223364064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Medium usage threshold for AC %d:\n LowThreshold = %d\n HighThreshold = %d\n",
223464064216a8433360745f69edddce19a606659163The Android Open Source Project          pThresholdCrossParams.uAC,
223564064216a8433360745f69edddce19a606659163The Android Open Source Project          pThresholdCrossParams.uLowThreshold,
223664064216a8433360745f69edddce19a606659163The Android Open Source Project          pThresholdCrossParams.uHighThreshold);
223764064216a8433360745f69edddce19a606659163The Android Open Source Project   }
223864064216a8433360745f69edddce19a606659163The Android Open Source Project
223964064216a8433360745f69edddce19a606659163The Android Open Source Project}
224064064216a8433360745f69edddce19a606659163The Android Open Source Project
224164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_phy_rate_threshold(ConParm_t parm[], U16 nParms)
224264064216a8433360745f69edddce19a606659163The Android Open Source Project{
224364064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_THRESHOLD_CROSS_PARAMS pThresholdCrossParams;
224464064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
224564064216a8433360745f69edddce19a606659163The Android Open Source Project
224664064216a8433360745f69edddce19a606659163The Android Open Source Project   if (nParms == 3) /* If user supplied 3 parameters - this is a SET operation */
224764064216a8433360745f69edddce19a606659163The Android Open Source Project   {
224864064216a8433360745f69edddce19a606659163The Android Open Source Project       if ((is_value_rate(parm[1].value) == FALSE) || (is_value_rate(parm[2].value) == FALSE))
224964064216a8433360745f69edddce19a606659163The Android Open Source Project       {
225064064216a8433360745f69edddce19a606659163The Android Open Source Project          console_printf_terminal ("Invalid rate - PHY rate valid values are: 1,2,5,6,9,11,12,18,24,36,48,54\n");
225164064216a8433360745f69edddce19a606659163The Android Open Source Project          return;
225264064216a8433360745f69edddce19a606659163The Android Open Source Project       }
225364064216a8433360745f69edddce19a606659163The Android Open Source Project
225464064216a8433360745f69edddce19a606659163The Android Open Source Project       pThresholdCrossParams.uAC = parm[0].value;
225564064216a8433360745f69edddce19a606659163The Android Open Source Project       pThresholdCrossParams.uHighThreshold = parm[1].value;
225664064216a8433360745f69edddce19a606659163The Android Open Source Project       pThresholdCrossParams.uLowThreshold = parm[2].value;
225764064216a8433360745f69edddce19a606659163The Android Open Source Project
225864064216a8433360745f69edddce19a606659163The Android Open Source Project       if (pThresholdCrossParams.uLowThreshold > pThresholdCrossParams.uHighThreshold)
225964064216a8433360745f69edddce19a606659163The Android Open Source Project       {
226064064216a8433360745f69edddce19a606659163The Android Open Source Project          console_printf_terminal ("Low threshold cannot be higher than the High threshold...Aborting...\n");
226164064216a8433360745f69edddce19a606659163The Android Open Source Project       }
226264064216a8433360745f69edddce19a606659163The Android Open Source Project       else
226364064216a8433360745f69edddce19a606659163The Android Open Source Project       {
226464064216a8433360745f69edddce19a606659163The Android Open Source Project
226564064216a8433360745f69edddce19a606659163The Android Open Source Project           resultCode = TI_SetPhyRateThreshold(g_id_adapter, &pThresholdCrossParams);
226664064216a8433360745f69edddce19a606659163The Android Open Source Project
226764064216a8433360745f69edddce19a606659163The Android Open Source Project           if (resultCode == TI_RESULT_OK)
226864064216a8433360745f69edddce19a606659163The Android Open Source Project           {
226964064216a8433360745f69edddce19a606659163The Android Open Source Project              console_printf_terminal ("PHY rate threshold for AC %d has been set to:\n LowThreshold = %d\n HighThreshold = %d\n",
227064064216a8433360745f69edddce19a606659163The Android Open Source Project                       pThresholdCrossParams.uAC,
227164064216a8433360745f69edddce19a606659163The Android Open Source Project                       pThresholdCrossParams.uLowThreshold,
227264064216a8433360745f69edddce19a606659163The Android Open Source Project                       pThresholdCrossParams.uHighThreshold);
227364064216a8433360745f69edddce19a606659163The Android Open Source Project           }
227464064216a8433360745f69edddce19a606659163The Android Open Source Project           else
227564064216a8433360745f69edddce19a606659163The Android Open Source Project           {
227664064216a8433360745f69edddce19a606659163The Android Open Source Project              console_printf_terminal ("Error...\n");
227764064216a8433360745f69edddce19a606659163The Android Open Source Project           }
227864064216a8433360745f69edddce19a606659163The Android Open Source Project       }
227964064216a8433360745f69edddce19a606659163The Android Open Source Project   }
228064064216a8433360745f69edddce19a606659163The Android Open Source Project   else if (nParms == 1)
228164064216a8433360745f69edddce19a606659163The Android Open Source Project   {
228264064216a8433360745f69edddce19a606659163The Android Open Source Project      pThresholdCrossParams.uAC = parm[0].value;
228364064216a8433360745f69edddce19a606659163The Android Open Source Project      pThresholdCrossParams.uLowThreshold = 0;
228464064216a8433360745f69edddce19a606659163The Android Open Source Project      pThresholdCrossParams.uHighThreshold = 0;
228564064216a8433360745f69edddce19a606659163The Android Open Source Project
228664064216a8433360745f69edddce19a606659163The Android Open Source Project      resultCode = TI_GetPhyRateThreshold(g_id_adapter, &pThresholdCrossParams);
228764064216a8433360745f69edddce19a606659163The Android Open Source Project
228864064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("PHY rate threshold for AC %d:\n",pThresholdCrossParams.uAC);
228964064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("LowThreshold = %s\n",print_rate((rate_e) pThresholdCrossParams.uLowThreshold));
229064064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("HighThreshold = %s\n",print_rate((rate_e) pThresholdCrossParams.uHighThreshold));
229164064216a8433360745f69edddce19a606659163The Android Open Source Project   }
229264064216a8433360745f69edddce19a606659163The Android Open Source Project
229364064216a8433360745f69edddce19a606659163The Android Open Source Project}
229464064216a8433360745f69edddce19a606659163The Android Open Source Project
229564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_traffic_intensity_threshold(ConParm_t parm[], U16 nParms)
229664064216a8433360745f69edddce19a606659163The Android Open Source Project{
229764064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS pTrafficIntensityThresholds;
229864064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 resultCode;
229964064216a8433360745f69edddce19a606659163The Android Open Source Project
230064064216a8433360745f69edddce19a606659163The Android Open Source Project   if (nParms == 3)
230164064216a8433360745f69edddce19a606659163The Android Open Source Project   {
230264064216a8433360745f69edddce19a606659163The Android Open Source Project      pTrafficIntensityThresholds.uHighThreshold = parm[0].value;
230364064216a8433360745f69edddce19a606659163The Android Open Source Project      pTrafficIntensityThresholds.uLowThreshold = parm[1].value;
230464064216a8433360745f69edddce19a606659163The Android Open Source Project      pTrafficIntensityThresholds.TestInterval = parm[2].value;
230564064216a8433360745f69edddce19a606659163The Android Open Source Project
230664064216a8433360745f69edddce19a606659163The Android Open Source Project      if (pTrafficIntensityThresholds.uLowThreshold >= pTrafficIntensityThresholds.uHighThreshold)
230764064216a8433360745f69edddce19a606659163The Android Open Source Project      {
230864064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("Error: low threshold equal or greater than the high threshold...aborting...\n");
230964064216a8433360745f69edddce19a606659163The Android Open Source Project      }
231064064216a8433360745f69edddce19a606659163The Android Open Source Project
231164064216a8433360745f69edddce19a606659163The Android Open Source Project      resultCode = TI_SetTrafficIntensityThresholds (g_id_adapter, &pTrafficIntensityThresholds);
231264064216a8433360745f69edddce19a606659163The Android Open Source Project
231364064216a8433360745f69edddce19a606659163The Android Open Source Project      if (resultCode == TI_RESULT_OK)
231464064216a8433360745f69edddce19a606659163The Android Open Source Project      {
231564064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("Successfully set traffic intensity thresholds...\n");
231664064216a8433360745f69edddce19a606659163The Android Open Source Project
231764064216a8433360745f69edddce19a606659163The Android Open Source Project      }
231864064216a8433360745f69edddce19a606659163The Android Open Source Project      else
231964064216a8433360745f69edddce19a606659163The Android Open Source Project      {
232064064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("Error: result code = %d\n",resultCode);
232164064216a8433360745f69edddce19a606659163The Android Open Source Project      }
232264064216a8433360745f69edddce19a606659163The Android Open Source Project   }
232364064216a8433360745f69edddce19a606659163The Android Open Source Project   else if (nParms == 0)
232464064216a8433360745f69edddce19a606659163The Android Open Source Project   {
232564064216a8433360745f69edddce19a606659163The Android Open Source Project      resultCode = TI_GetTrafficIntensityThresholds (g_id_adapter, &pTrafficIntensityThresholds);
232664064216a8433360745f69edddce19a606659163The Android Open Source Project
232764064216a8433360745f69edddce19a606659163The Android Open Source Project      if (resultCode == TI_RESULT_OK)
232864064216a8433360745f69edddce19a606659163The Android Open Source Project      {
232964064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("Traffic intensity thresholds :\n HighThreshold = %d\n LowThreshold = %d\n TestInterval = %d\n",
233064064216a8433360745f69edddce19a606659163The Android Open Source Project                  pTrafficIntensityThresholds.uHighThreshold,
233164064216a8433360745f69edddce19a606659163The Android Open Source Project                  pTrafficIntensityThresholds.uLowThreshold,
233264064216a8433360745f69edddce19a606659163The Android Open Source Project                  pTrafficIntensityThresholds.TestInterval);
233364064216a8433360745f69edddce19a606659163The Android Open Source Project      }
233464064216a8433360745f69edddce19a606659163The Android Open Source Project      else
233564064216a8433360745f69edddce19a606659163The Android Open Source Project      {
233664064216a8433360745f69edddce19a606659163The Android Open Source Project         console_printf_terminal ("Error: result code = %d\n",resultCode);
233764064216a8433360745f69edddce19a606659163The Android Open Source Project      }
233864064216a8433360745f69edddce19a606659163The Android Open Source Project
233964064216a8433360745f69edddce19a606659163The Android Open Source Project   }
234064064216a8433360745f69edddce19a606659163The Android Open Source Project
234164064216a8433360745f69edddce19a606659163The Android Open Source Project}
234264064216a8433360745f69edddce19a606659163The Android Open Source Project
234364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_enable_traffic_events(ConParm_t parm[], U16 nParms)
234464064216a8433360745f69edddce19a606659163The Android Open Source Project{
234564064216a8433360745f69edddce19a606659163The Android Open Source Project   TI_ToggleTrafficIntensityEvents (g_id_adapter, (tiUINT32)TRUE);
234664064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal ("Traffic intensity thresholds enabled...\n");
234764064216a8433360745f69edddce19a606659163The Android Open Source Project}
234864064216a8433360745f69edddce19a606659163The Android Open Source Project
234964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_disable_traffic_events(ConParm_t parm[], U16 nParms)
235064064216a8433360745f69edddce19a606659163The Android Open Source Project{
235164064216a8433360745f69edddce19a606659163The Android Open Source Project   TI_ToggleTrafficIntensityEvents (g_id_adapter, (tiUINT32)FALSE);
235264064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal ("Traffic intensity thresholds disabled...\n");
235364064216a8433360745f69edddce19a606659163The Android Open Source Project}
235464064216a8433360745f69edddce19a606659163The Android Open Source Project
235564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_config_tx_classifier(ConParm_t parm[], U16 nParms)
235664064216a8433360745f69edddce19a606659163The Android Open Source Project{
235764064216a8433360745f69edddce19a606659163The Android Open Source Project    NWIF_CLSFR_ENTRY inParamsBuff[CLI_NUM_OF_TX_CLASFR_CON];
235864064216a8433360745f69edddce19a606659163The Android Open Source Project
235964064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 inParamsBuffLen = 0;
236064064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT8 i,ic,iv=0;
236164064216a8433360745f69edddce19a606659163The Android Open Source Project
236264064216a8433360745f69edddce19a606659163The Android Open Source Project    for( ic=0,iv=0; ic<CLI_NUM_OF_TX_CLASFR_CON; ic++)
236364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
236464064216a8433360745f69edddce19a606659163The Android Open Source Project        inParamsBuff[ic].port = (UINT16 )parm[iv].value;
236564064216a8433360745f69edddce19a606659163The Android Open Source Project        iv++;
236664064216a8433360745f69edddce19a606659163The Android Open Source Project        inParamsBuff[ic].pri = (UINT16 )parm[iv].value;
236764064216a8433360745f69edddce19a606659163The Android Open Source Project        iv++;
236864064216a8433360745f69edddce19a606659163The Android Open Source Project        inParamsBuff[ic].ip = 0;
236964064216a8433360745f69edddce19a606659163The Android Open Source Project
237064064216a8433360745f69edddce19a606659163The Android Open Source Project
237164064216a8433360745f69edddce19a606659163The Android Open Source Project        inParamsBuffLen += sizeof(NWIF_CLSFR_ENTRY);
237264064216a8433360745f69edddce19a606659163The Android Open Source Project
237364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
237464064216a8433360745f69edddce19a606659163The Android Open Source Project    for( i=0; i<4; i++,iv++)
237564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
237664064216a8433360745f69edddce19a606659163The Android Open Source Project        for(ic=0;ic<CLI_NUM_OF_TX_CLASFR_CON;ic++)
237764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
237864064216a8433360745f69edddce19a606659163The Android Open Source Project            inParamsBuff[ic].ip |= parm[iv].value << i * 8;
237964064216a8433360745f69edddce19a606659163The Android Open Source Project        }
238064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
238164064216a8433360745f69edddce19a606659163The Android Open Source Project}
238264064216a8433360745f69edddce19a606659163The Android Open Source Project
238364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_remove_clsfr_entry (ConParm_t parm[], U16 uParms)
238464064216a8433360745f69edddce19a606659163The Android Open Source Project{
238564064216a8433360745f69edddce19a606659163The Android Open Source Project    clsfr_tableEntry_t newUserTableEntry;
238664064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
238764064216a8433360745f69edddce19a606659163The Android Open Source Project    clsfrTypeAndSupport ClsfrType;
238864064216a8433360745f69edddce19a606659163The Android Open Source Project    tiINT32 res;
238964064216a8433360745f69edddce19a606659163The Android Open Source Project
239064064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetClsfrType(g_id_adapter, &ClsfrType );
239164064216a8433360745f69edddce19a606659163The Android Open Source Project
239264064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Possibly needs to be removed if we want to keep this routine working for old classifier as well */
239364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (ClsfrType.oldVersionSupport == TRUE)
239464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
239564064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Old classifier support detected...Remove action disabled (use old classifier config)\n");
239664064216a8433360745f69edddce19a606659163The Android Open Source Project      return;
239764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
239864064216a8433360745f69edddce19a606659163The Android Open Source Project
239964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (uParms >=2)
240064064216a8433360745f69edddce19a606659163The Android Open Source Project        newUserTableEntry.DTag = (tiUINT8) parm[1].value;
240164064216a8433360745f69edddce19a606659163The Android Open Source Project
240264064216a8433360745f69edddce19a606659163The Android Open Source Project    switch(parm[0].value)
240364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
240464064216a8433360745f69edddce19a606659163The Android Open Source Project        case D_TAG_CLSFR:
240564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Cannot remove D_TAG classifier entry!\n");
240664064216a8433360745f69edddce19a606659163The Android Open Source Project            return;
240764064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
240864064216a8433360745f69edddce19a606659163The Android Open Source Project        case DSCP_CLSFR:
240964064216a8433360745f69edddce19a606659163The Android Open Source Project            if (uParms != 3)
241064064216a8433360745f69edddce19a606659163The Android Open Source Project            {
241164064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("DSCP_CLSFR Entry type, wrong number of parameters(too many?)\n");
241264064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
241364064216a8433360745f69edddce19a606659163The Android Open Source Project            }
241464064216a8433360745f69edddce19a606659163The Android Open Source Project            newUserTableEntry.Dscp.CodePoint = (tiUINT8) parm[2].value;
241564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal ("Removing DSCP_CLSFR classifier entry\nD-Tag = %d\nCodePoint = %d\n",newUserTableEntry.DTag,newUserTableEntry.Dscp.CodePoint);
241664064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
241764064216a8433360745f69edddce19a606659163The Android Open Source Project        case PORT_CLSFR:
241864064216a8433360745f69edddce19a606659163The Android Open Source Project            if (uParms != 3)
241964064216a8433360745f69edddce19a606659163The Android Open Source Project            {
242064064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("PORT_CLSFR Entry type, wrong number of parameters(too many?)\n");
242164064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
242264064216a8433360745f69edddce19a606659163The Android Open Source Project            }
242364064216a8433360745f69edddce19a606659163The Android Open Source Project            newUserTableEntry.Dscp.DstPortNum = (tiUINT16) parm[2].value;
242464064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal ("Removing PORT_CLSFR classifier entry\nD-Tag = %d\nPort = %d\n",newUserTableEntry.DTag,newUserTableEntry.Dscp.DstPortNum);
242564064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
242664064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPPORT_CLSFR:
242764064216a8433360745f69edddce19a606659163The Android Open Source Project            if (uParms != 7)
242864064216a8433360745f69edddce19a606659163The Android Open Source Project            {
242964064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("PORT_CLSFR Entry type, wrong number of parameters\n");
243064064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
243164064216a8433360745f69edddce19a606659163The Android Open Source Project            }
243264064216a8433360745f69edddce19a606659163The Android Open Source Project            newUserTableEntry.Dscp.DstIPPort.DstPortNum = (tiUINT16) parm[2].value;
243364064216a8433360745f69edddce19a606659163The Android Open Source Project            newUserTableEntry.Dscp.DstIPPort.DstIPAddress = 0;
243464064216a8433360745f69edddce19a606659163The Android Open Source Project            for(i=0; i<4; i++)
243564064216a8433360745f69edddce19a606659163The Android Open Source Project                {
243664064216a8433360745f69edddce19a606659163The Android Open Source Project                    newUserTableEntry.Dscp.DstIPPort.DstIPAddress |= parm[i+3].value << i * 8;
243764064216a8433360745f69edddce19a606659163The Android Open Source Project                }
243864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal ("Removing IPPORT_CLSFR classifier entry\nD-Tag = %d\nPort = %d\nIP = %3d.%d.%d.%d\n",
243964064216a8433360745f69edddce19a606659163The Android Open Source Project                    newUserTableEntry.DTag,
244064064216a8433360745f69edddce19a606659163The Android Open Source Project                    newUserTableEntry.Dscp.DstIPPort.DstPortNum,
244164064216a8433360745f69edddce19a606659163The Android Open Source Project                    (int)parm[3].value,(int)parm[4].value,(int)parm[5].value,(int)parm[6].value);
244264064216a8433360745f69edddce19a606659163The Android Open Source Project            break;
244364064216a8433360745f69edddce19a606659163The Android Open Source Project        default:
244464064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Unknown Classifier Type - Command aborted!\n");
244564064216a8433360745f69edddce19a606659163The Android Open Source Project            return;
244664064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
244764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
244864064216a8433360745f69edddce19a606659163The Android Open Source Project
244964064216a8433360745f69edddce19a606659163The Android Open Source Project    res = TI_RemoveClassifierEntry(g_id_adapter, &newUserTableEntry);
245064064216a8433360745f69edddce19a606659163The Android Open Source Project    if (res)
245164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
245264064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal ("Failed to remove classifier entry...return code = %d\n",res);
245364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
245464064216a8433360745f69edddce19a606659163The Android Open Source Project
245564064216a8433360745f69edddce19a606659163The Android Open Source Project}
245664064216a8433360745f69edddce19a606659163The Android Open Source Project
245764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_insert_clsfr_entry (ConParm_t parm[], U16 uParms)
245864064216a8433360745f69edddce19a606659163The Android Open Source Project{
245964064216a8433360745f69edddce19a606659163The Android Open Source Project    clsfr_tableEntry_t newUserTableEntry;
246064064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
246164064216a8433360745f69edddce19a606659163The Android Open Source Project    clsfrTypeAndSupport ClsfrType;
246264064216a8433360745f69edddce19a606659163The Android Open Source Project    tiINT32 res;
246364064216a8433360745f69edddce19a606659163The Android Open Source Project
246464064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetClsfrType(g_id_adapter, &ClsfrType );
246564064216a8433360745f69edddce19a606659163The Android Open Source Project
246664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (ClsfrType.oldVersionSupport == TRUE)
246764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
246864064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Old classifier support detected...Insert action disabled (use old classifier config)\n");
246964064216a8433360745f69edddce19a606659163The Android Open Source Project      return;
247064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
247164064216a8433360745f69edddce19a606659163The Android Open Source Project
247264064216a8433360745f69edddce19a606659163The Android Open Source Project    if (uParms >=2)
247364064216a8433360745f69edddce19a606659163The Android Open Source Project        newUserTableEntry.DTag = (UINT8) parm[1].value;
247464064216a8433360745f69edddce19a606659163The Android Open Source Project
247564064216a8433360745f69edddce19a606659163The Android Open Source Project    switch(parm[0].value)
247664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
247764064216a8433360745f69edddce19a606659163The Android Open Source Project        case D_TAG_CLSFR:
247864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Cannot insert D_TAG classifier entry!\n");
247964064216a8433360745f69edddce19a606659163The Android Open Source Project            return;
248064064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
248164064216a8433360745f69edddce19a606659163The Android Open Source Project        case DSCP_CLSFR:
248264064216a8433360745f69edddce19a606659163The Android Open Source Project            if (uParms != 3)
248364064216a8433360745f69edddce19a606659163The Android Open Source Project            {
248464064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("DSCP_CLSFR Entry type, wrong number of parameters(too many?)\n");
248564064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
248664064216a8433360745f69edddce19a606659163The Android Open Source Project            }
248764064216a8433360745f69edddce19a606659163The Android Open Source Project            newUserTableEntry.Dscp.CodePoint = (UINT8) parm[2].value;
248864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal ("Inserting new DSCP_CLSFR classifier entry\nD-Tag = %d\nCodePoint = %d\n",newUserTableEntry.DTag,newUserTableEntry.Dscp.CodePoint);
248964064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
249064064216a8433360745f69edddce19a606659163The Android Open Source Project        case PORT_CLSFR:
249164064216a8433360745f69edddce19a606659163The Android Open Source Project            if (uParms != 3)
249264064216a8433360745f69edddce19a606659163The Android Open Source Project            {
249364064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("PORT_CLSFR Entry type, wrong number of parameters(too many?)\n");
249464064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
249564064216a8433360745f69edddce19a606659163The Android Open Source Project            }
249664064216a8433360745f69edddce19a606659163The Android Open Source Project            newUserTableEntry.Dscp.DstPortNum = (UINT16) parm[2].value;
249764064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal ("Inserting new PORT_CLSFR classifier entry\nD-Tag = %d\nPort = %d\n",newUserTableEntry.DTag,newUserTableEntry.Dscp.DstPortNum);
249864064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
249964064216a8433360745f69edddce19a606659163The Android Open Source Project        case IPPORT_CLSFR:
250064064216a8433360745f69edddce19a606659163The Android Open Source Project            if (uParms != 7)
250164064216a8433360745f69edddce19a606659163The Android Open Source Project            {
250264064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("PORT_CLSFR Entry type, wrong number of parameters\n");
250364064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
250464064216a8433360745f69edddce19a606659163The Android Open Source Project            }
250564064216a8433360745f69edddce19a606659163The Android Open Source Project            newUserTableEntry.Dscp.DstIPPort.DstPortNum = (UINT16) parm[2].value;
250664064216a8433360745f69edddce19a606659163The Android Open Source Project            newUserTableEntry.Dscp.DstIPPort.DstIPAddress = 0;
250764064216a8433360745f69edddce19a606659163The Android Open Source Project            for(i=0; i<4; i++)
250864064216a8433360745f69edddce19a606659163The Android Open Source Project                {
250964064216a8433360745f69edddce19a606659163The Android Open Source Project                    newUserTableEntry.Dscp.DstIPPort.DstIPAddress |= parm[i+3].value << i * 8;
251064064216a8433360745f69edddce19a606659163The Android Open Source Project                }
251164064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal ("Inserting new IPPORT_CLSFR classifier entry\nD-Tag = %d\nPort = %d\nIP = %3d.%d.%d.%d\n",
251264064216a8433360745f69edddce19a606659163The Android Open Source Project                    newUserTableEntry.DTag,
251364064216a8433360745f69edddce19a606659163The Android Open Source Project                    newUserTableEntry.Dscp.DstIPPort.DstPortNum,
251464064216a8433360745f69edddce19a606659163The Android Open Source Project                    (int)parm[3].value,(int)parm[4].value,(int)parm[5].value,(int)parm[6].value);
251564064216a8433360745f69edddce19a606659163The Android Open Source Project            break;
251664064216a8433360745f69edddce19a606659163The Android Open Source Project        default:
251764064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Unknown Classifier Type - Command aborted!\n");
251864064216a8433360745f69edddce19a606659163The Android Open Source Project            return;
251964064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
252064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
252164064216a8433360745f69edddce19a606659163The Android Open Source Project
252264064216a8433360745f69edddce19a606659163The Android Open Source Project    res = TI_ConfigTxClassifier(g_id_adapter, sizeof(clsfr_tableEntry_t), (UINT8 *)&newUserTableEntry);
252364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (res)
252464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
252564064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal ("Failed to insert new classifier entry...return code = %d\n",res);
252664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
252764064216a8433360745f69edddce19a606659163The Android Open Source Project
252864064216a8433360745f69edddce19a606659163The Android Open Source Project}
252964064216a8433360745f69edddce19a606659163The Android Open Source Project
253064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_poll_ap_packets(ConParm_t parm[], U16 nParms)
253164064216a8433360745f69edddce19a606659163The Android Open Source Project{
253264064216a8433360745f69edddce19a606659163The Android Open Source Project   if (nParms == 0)
253364064216a8433360745f69edddce19a606659163The Android Open Source Project   {
253464064216a8433360745f69edddce19a606659163The Android Open Source Project   TI_PollApPackets (g_id_adapter);
253564064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal ("Poll AP packets cmd sent to driver...\n");
253664064216a8433360745f69edddce19a606659163The Android Open Source Project}
253764064216a8433360745f69edddce19a606659163The Android Open Source Project   else if (nParms == 1)
253864064216a8433360745f69edddce19a606659163The Android Open Source Project   {
253964064216a8433360745f69edddce19a606659163The Android Open Source Project      TI_PollApPacketsFromAC (g_id_adapter,parm[0].value);
254064064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal ("Poll AP packets (From AC %d) cmd sent to driver...\n",(int)parm[0].value);
254164064216a8433360745f69edddce19a606659163The Android Open Source Project   }
254264064216a8433360745f69edddce19a606659163The Android Open Source Project
254364064216a8433360745f69edddce19a606659163The Android Open Source Project}
254464064216a8433360745f69edddce19a606659163The Android Open Source Project
254564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_rate(ConParm_t parm[], U16 nParms)
254664064216a8433360745f69edddce19a606659163The Android Open Source Project{
254764064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 data = 0, data1 = 0;
254864064216a8433360745f69edddce19a606659163The Android Open Source Project
254964064216a8433360745f69edddce19a606659163The Android Open Source Project    if( !TI_GetDesiredRate(g_id_adapter, &data1 ) )
255064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
255164064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_GetCurrentRate(g_id_adapter, &data );
255264064216a8433360745f69edddce19a606659163The Android Open Source Project
255364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Rate: %s", print_rate(data));
255464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal(", desired rate: %s\n", print_rate(data1));
255564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
255664064216a8433360745f69edddce19a606659163The Android Open Source Project}
255764064216a8433360745f69edddce19a606659163The Android Open Source Project
255864064216a8433360745f69edddce19a606659163The Android Open Source Project
255964064216a8433360745f69edddce19a606659163The Android Open Source Project#if 0    /* not in use*/
256064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_net_current_regdomain(ConParm_t parm[], U16 nParms)
256164064216a8433360745f69edddce19a606659163The Android Open Source Project{
256264064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
256364064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
256464064216a8433360745f69edddce19a606659163The Android Open Source Project
256564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("not implemented...\n");
256664064216a8433360745f69edddce19a606659163The Android Open Source Project}
256764064216a8433360745f69edddce19a606659163The Android Open Source Project
256864064216a8433360745f69edddce19a606659163The Android Open Source Project static named_value_t network_type_name[] = {
256964064216a8433360745f69edddce19a606659163The Android Open Source Project     { os802_11FH,                     "FH" } ,
257064064216a8433360745f69edddce19a606659163The Android Open Source Project     { os802_11DS,                     "DS" } ,
257164064216a8433360745f69edddce19a606659163The Android Open Source Project     { os802_11OFDM5,                  "OFDM5" } ,
257264064216a8433360745f69edddce19a606659163The Android Open Source Project     { os802_11OFDM24,                 "OFDM24" } ,
257364064216a8433360745f69edddce19a606659163The Android Open Source Project     { os802_11OFDM24_AND_5,           "OFDM24_AND_5" } ,
257464064216a8433360745f69edddce19a606659163The Android Open Source Project     { os802_11NetworkTypeMax,         "NetworkTypeMax" }
257564064216a8433360745f69edddce19a606659163The Android Open Source Project };
257664064216a8433360745f69edddce19a606659163The Android Open Source Project
257764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_net_network_in_use(ConParm_t parm[], U16 nParms)
257864064216a8433360745f69edddce19a606659163The Android Open Source Project{
257964064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_NETWORK_TYPE data;
258064064216a8433360745f69edddce19a606659163The Android Open Source Project    if( !nParms )
258164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
258264064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetNetworkTypeInUse(g_id_adapter, &data ) )
258364064216a8433360745f69edddce19a606659163The Android Open Source Project        {
258464064216a8433360745f69edddce19a606659163The Android Open Source Project            print_available_values(network_type_name);
258564064216a8433360745f69edddce19a606659163The Android Open Source Project
258664064216a8433360745f69edddce19a606659163The Android Open Source Project             console_printf_terminal("Cur.network: %d\n", data );
258764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
258864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
258964064216a8433360745f69edddce19a606659163The Android Open Source Project    else
259064064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetNetworkTypeInUse(g_id_adapter, parm[0].value );
259164064216a8433360745f69edddce19a606659163The Android Open Source Project}
259264064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* if 0*/
259364064216a8433360745f69edddce19a606659163The Android Open Source Project
259464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_show_tx_power_level_table(ConParm_t parm[], U16 nParms)
259564064216a8433360745f69edddce19a606659163The Android Open Source Project{
259664064216a8433360745f69edddce19a606659163The Android Open Source Project    TIWLAN_POWER_LEVEL_TABLE powerTable;
259764064216a8433360745f69edddce19a606659163The Android Open Source Project	int i;
259864064216a8433360745f69edddce19a606659163The Android Open Source Project
259964064216a8433360745f69edddce19a606659163The Android Open Source Project    if( !TI_GetTxPowerLevel(g_id_adapter, (tiCHAR*)&powerTable) )
260064064216a8433360745f69edddce19a606659163The Android Open Source Project	{
260164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Power level table (Dbm/10)\n");
260264064216a8433360745f69edddce19a606659163The Android Open Source Project		for ( i = 0 ; i < TI_NUM_OF_SUB_BANDS ; i++)
260364064216a8433360745f69edddce19a606659163The Android Open Source Project		{
260464064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("sub-band %i: %d %d %d %d\n", i,
260564064216a8433360745f69edddce19a606659163The Android Open Source Project			powerTable.uTxPower[i][0],
260664064216a8433360745f69edddce19a606659163The Android Open Source Project			powerTable.uTxPower[i][1],
260764064216a8433360745f69edddce19a606659163The Android Open Source Project			powerTable.uTxPower[i][2],
260864064216a8433360745f69edddce19a606659163The Android Open Source Project			powerTable.uTxPower[i][3]);
260964064216a8433360745f69edddce19a606659163The Android Open Source Project		}
261064064216a8433360745f69edddce19a606659163The Android Open Source Project	}
261164064216a8433360745f69edddce19a606659163The Android Open Source Project    else
261264064216a8433360745f69edddce19a606659163The Android Open Source Project	{
261364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Tx Power level table ERROR !!!\n");
261464064216a8433360745f69edddce19a606659163The Android Open Source Project	}
261564064216a8433360745f69edddce19a606659163The Android Open Source Project}
261664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_tx_power_dbm(ConParm_t parm[], U16 nParms)
261764064216a8433360745f69edddce19a606659163The Android Open Source Project{
261864064216a8433360745f69edddce19a606659163The Android Open Source Project    tiCHAR dummyData = 0;
261964064216a8433360745f69edddce19a606659163The Android Open Source Project
262064064216a8433360745f69edddce19a606659163The Android Open Source Project	if (nParms == 0)
262164064216a8433360745f69edddce19a606659163The Android Open Source Project	{
262264064216a8433360745f69edddce19a606659163The Android Open Source Project		if( !TI_GetTxPowerDbm(g_id_adapter, &dummyData))
262364064216a8433360745f69edddce19a606659163The Android Open Source Project		{
262464064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("Tx Power (Dbm/10) = %d\n", dummyData);
262564064216a8433360745f69edddce19a606659163The Android Open Source Project		}
262664064216a8433360745f69edddce19a606659163The Android Open Source Project	}
262764064216a8433360745f69edddce19a606659163The Android Open Source Project    else
262864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
262964064216a8433360745f69edddce19a606659163The Android Open Source Project        if (parm[0].value > MAX_TX_POWER)
263064064216a8433360745f69edddce19a606659163The Android Open Source Project        {
263164064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Hey !!! You should use values between %d and %d\n", MIN_TX_POWER, MAX_TX_POWER);
263264064216a8433360745f69edddce19a606659163The Android Open Source Project            return;
263364064216a8433360745f69edddce19a606659163The Android Open Source Project        }
263464064216a8433360745f69edddce19a606659163The Android Open Source Project        /* use U8 cast to fix compile warning */
263564064216a8433360745f69edddce19a606659163The Android Open Source Project        if(! TI_SetTxPowerDbm(g_id_adapter, (U8)parm[0].value) )
263664064216a8433360745f69edddce19a606659163The Android Open Source Project        {
263764064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Set Tx Power in DBM/10 = %d\n", parm[0].value);
263864064216a8433360745f69edddce19a606659163The Android Open Source Project        }
263964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
264064064216a8433360745f69edddce19a606659163The Android Open Source Project}
264164064216a8433360745f69edddce19a606659163The Android Open Source Project
264264064216a8433360745f69edddce19a606659163The Android Open Source Project
264364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_enableDisable_802_11d(ConParm_t parm[], U16 nParms)
264464064216a8433360745f69edddce19a606659163The Android Open Source Project{
264564064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT8 data = 0;
264664064216a8433360745f69edddce19a606659163The Android Open Source Project    tiINT32 result;
264764064216a8433360745f69edddce19a606659163The Android Open Source Project
264864064216a8433360745f69edddce19a606659163The Android Open Source Project    result = TI_Get_802_11d(g_id_adapter, &data );
264964064216a8433360745f69edddce19a606659163The Android Open Source Project    if ( nParms == 0 )
265064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
265164064216a8433360745f69edddce19a606659163The Android Open Source Project        if( result ==  TI_RESULT_OK)
265264064216a8433360745f69edddce19a606659163The Android Open Source Project        {
265364064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("802_11d status=%d\n", data );
265464064216a8433360745f69edddce19a606659163The Android Open Source Project        }
265564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
265664064216a8433360745f69edddce19a606659163The Android Open Source Project    else
265764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
265864064216a8433360745f69edddce19a606659163The Android Open Source Project        result = TI_EnableDisable_802_11d(g_id_adapter, (UINT8) parm[0].value);
265964064216a8433360745f69edddce19a606659163The Android Open Source Project        if ((result != TI_RESULT_OK) && (!parm[0].value))
266064064216a8433360745f69edddce19a606659163The Android Open Source Project        {
266164064216a8433360745f69edddce19a606659163The Android Open Source Project            result = TI_Get_802_11h(g_id_adapter, &data );
266264064216a8433360745f69edddce19a606659163The Android Open Source Project            if (data)
266364064216a8433360745f69edddce19a606659163The Android Open Source Project            {
266464064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("802_11d cannot be disabled while 802_11h is enabled!!\n" );
266564064216a8433360745f69edddce19a606659163The Android Open Source Project            }
266664064216a8433360745f69edddce19a606659163The Android Open Source Project        }
266764064216a8433360745f69edddce19a606659163The Android Open Source Project        else
266864064216a8433360745f69edddce19a606659163The Android Open Source Project        {
266964064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("802_11d status is updated to =%d\n", parm[0].value );
267064064216a8433360745f69edddce19a606659163The Android Open Source Project        }
267164064216a8433360745f69edddce19a606659163The Android Open Source Project
267264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
267364064216a8433360745f69edddce19a606659163The Android Open Source Project
267464064216a8433360745f69edddce19a606659163The Android Open Source Project
267564064216a8433360745f69edddce19a606659163The Android Open Source Project}
267664064216a8433360745f69edddce19a606659163The Android Open Source Project
267764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_enableDisable_802_11h(ConParm_t parm[], U16 nParms)
267864064216a8433360745f69edddce19a606659163The Android Open Source Project{
267964064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT8 data = 0;
268064064216a8433360745f69edddce19a606659163The Android Open Source Project    tiINT32 result;
268164064216a8433360745f69edddce19a606659163The Android Open Source Project
268264064216a8433360745f69edddce19a606659163The Android Open Source Project    result = TI_Get_802_11h(g_id_adapter, &data );
268364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
268464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
268564064216a8433360745f69edddce19a606659163The Android Open Source Project        if( result ==  TI_RESULT_OK)
268664064216a8433360745f69edddce19a606659163The Android Open Source Project        {
268764064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("802_11h status=%d\n", data );
268864064216a8433360745f69edddce19a606659163The Android Open Source Project        }
268964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
269064064216a8433360745f69edddce19a606659163The Android Open Source Project    else
269164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
269264064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_EnableDisable_802_11h(g_id_adapter, (UINT8) parm[0].value);
269364064216a8433360745f69edddce19a606659163The Android Open Source Project        if (parm[0].value)
269464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
269564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("802_11h enables automatically 802_11d!!\n" );
269664064216a8433360745f69edddce19a606659163The Android Open Source Project        }
269764064216a8433360745f69edddce19a606659163The Android Open Source Project
269864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("802_11h status is updated to =%d\n", parm[0].value );
269964064216a8433360745f69edddce19a606659163The Android Open Source Project
270064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
270164064216a8433360745f69edddce19a606659163The Android Open Source Project
270264064216a8433360745f69edddce19a606659163The Android Open Source Project
270364064216a8433360745f69edddce19a606659163The Android Open Source Project}
270464064216a8433360745f69edddce19a606659163The Android Open Source Project
270564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_d_Country_2_4Ie(ConParm_t parm[], U16 nParms)
270664064216a8433360745f69edddce19a606659163The Android Open Source Project{
270764064216a8433360745f69edddce19a606659163The Android Open Source Project    tiINT32 result;
270864064216a8433360745f69edddce19a606659163The Android Open Source Project
270964064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
271064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
271164064216a8433360745f69edddce19a606659163The Android Open Source Project        UINT8   countryString[COUNTRY_STRING_LEN+1];
271264064216a8433360745f69edddce19a606659163The Android Open Source Project        result = TI_Get_countryIeFor2_4_Ghz(g_id_adapter, (UINT8**)&countryString );
271364064216a8433360745f69edddce19a606659163The Android Open Source Project        if( result ==  TI_RESULT_OK)
271464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
271564064216a8433360745f69edddce19a606659163The Android Open Source Project            countryString[COUNTRY_STRING_LEN] = '\0';
271664064216a8433360745f69edddce19a606659163The Android Open Source Project            if (countryString[0] == '\0')
271764064216a8433360745f69edddce19a606659163The Android Open Source Project            {
271864064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("802_11d Country for 2.4 GHz is not found\n");
271964064216a8433360745f69edddce19a606659163The Android Open Source Project            }
272064064216a8433360745f69edddce19a606659163The Android Open Source Project            else
272164064216a8433360745f69edddce19a606659163The Android Open Source Project            {
272264064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("802_11d Country for 2.4 GHz is %s \n", countryString );
272364064216a8433360745f69edddce19a606659163The Android Open Source Project            }
272464064216a8433360745f69edddce19a606659163The Android Open Source Project
272564064216a8433360745f69edddce19a606659163The Android Open Source Project        }
272664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
272764064216a8433360745f69edddce19a606659163The Android Open Source Project    else
272864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
272964064216a8433360745f69edddce19a606659163The Android Open Source Project        country_t countryWorld;
273064064216a8433360745f69edddce19a606659163The Android Open Source Project
273164064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.elementId = COUNTRY_IE_ID;
273264064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.len = 6;
273364064216a8433360745f69edddce19a606659163The Android Open Source Project        memcpy( countryWorld.countryIE.CountryString,"GB ", 3);
273464064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.countryIE.tripletChannels[0].firstChannelNumber = 1;
273564064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.countryIE.tripletChannels[0].maxTxPowerLevel = 23;
273664064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.countryIE.tripletChannels[0].numberOfChannels = 11;
273764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("802_11d Start Setting GB Country for 2.4 GHz \n");
273864064216a8433360745f69edddce19a606659163The Android Open Source Project
273964064216a8433360745f69edddce19a606659163The Android Open Source Project        result = TI_Set_countryIeFor2_4_Ghz(g_id_adapter, countryWorld);
274064064216a8433360745f69edddce19a606659163The Android Open Source Project
274164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("802_11d Setting GB Country for 2.4 GHz, result=%d\n", result);
274264064216a8433360745f69edddce19a606659163The Android Open Source Project
274364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
274464064216a8433360745f69edddce19a606659163The Android Open Source Project
274564064216a8433360745f69edddce19a606659163The Android Open Source Project
274664064216a8433360745f69edddce19a606659163The Android Open Source Project}
274764064216a8433360745f69edddce19a606659163The Android Open Source Project
274864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_d_Country_5Ie(ConParm_t parm[], U16 nParms)
274964064216a8433360745f69edddce19a606659163The Android Open Source Project{
275064064216a8433360745f69edddce19a606659163The Android Open Source Project    tiINT32 result;
275164064216a8433360745f69edddce19a606659163The Android Open Source Project
275264064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
275364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
275464064216a8433360745f69edddce19a606659163The Android Open Source Project        UINT8   countryString[COUNTRY_STRING_LEN+1];
275564064216a8433360745f69edddce19a606659163The Android Open Source Project        result = TI_Get_countryIeFor5_Ghz(g_id_adapter, (UINT8**)&countryString );
275664064216a8433360745f69edddce19a606659163The Android Open Source Project        if( result ==  TI_RESULT_OK)
275764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
275864064216a8433360745f69edddce19a606659163The Android Open Source Project            countryString[COUNTRY_STRING_LEN] = '\0';
275964064216a8433360745f69edddce19a606659163The Android Open Source Project            if (countryString[0] == '\0')
276064064216a8433360745f69edddce19a606659163The Android Open Source Project            {
276164064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("802_11d Country for 5 GHz is not found\n");
276264064216a8433360745f69edddce19a606659163The Android Open Source Project            }
276364064216a8433360745f69edddce19a606659163The Android Open Source Project            else
276464064216a8433360745f69edddce19a606659163The Android Open Source Project            {
276564064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("802_11d Country for 5 GHz is %s\n", countryString );
276664064216a8433360745f69edddce19a606659163The Android Open Source Project            }
276764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
276864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
276964064216a8433360745f69edddce19a606659163The Android Open Source Project    else
277064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
277164064216a8433360745f69edddce19a606659163The Android Open Source Project        country_t countryWorld;
277264064216a8433360745f69edddce19a606659163The Android Open Source Project
277364064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.elementId = COUNTRY_IE_ID;
277464064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.len = 6;
277564064216a8433360745f69edddce19a606659163The Android Open Source Project        memcpy( countryWorld.countryIE.CountryString,"US ", 3);
277664064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.countryIE.tripletChannels[0].firstChannelNumber = 36;
277764064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.countryIE.tripletChannels[0].maxTxPowerLevel = 16;
277864064216a8433360745f69edddce19a606659163The Android Open Source Project        countryWorld.countryIE.tripletChannels[0].numberOfChannels = 8;
277964064216a8433360745f69edddce19a606659163The Android Open Source Project        result = TI_Set_countryIeFor5_Ghz(g_id_adapter, countryWorld);
278064064216a8433360745f69edddce19a606659163The Android Open Source Project
278164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("802_11d Setting US Country for 5 GHz, result=%d\n", result);
278264064216a8433360745f69edddce19a606659163The Android Open Source Project
278364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
278464064216a8433360745f69edddce19a606659163The Android Open Source Project
278564064216a8433360745f69edddce19a606659163The Android Open Source Project}
278664064216a8433360745f69edddce19a606659163The Android Open Source Project
278764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_DFS_range(ConParm_t parm[], U16 nParms)
278864064216a8433360745f69edddce19a606659163The Android Open Source Project{
278964064216a8433360745f69edddce19a606659163The Android Open Source Project    tiINT32 result;
279064064216a8433360745f69edddce19a606659163The Android Open Source Project    DFS_ChannelRange_t DFS_ChannelRange;
279164064216a8433360745f69edddce19a606659163The Android Open Source Project
279264064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
279364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
279464064216a8433360745f69edddce19a606659163The Android Open Source Project
279564064216a8433360745f69edddce19a606659163The Android Open Source Project        result = TI_Get_minMaxDfsChannels(g_id_adapter, &DFS_ChannelRange );
279664064216a8433360745f69edddce19a606659163The Android Open Source Project        if( result ==  TI_RESULT_OK)
279764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
279864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("DFS min channel is %d, DFS max channel is %d\n",
279964064216a8433360745f69edddce19a606659163The Android Open Source Project                                    DFS_ChannelRange.minDFS_channelNum, DFS_ChannelRange.maxDFS_channelNum);
280064064216a8433360745f69edddce19a606659163The Android Open Source Project        }
280164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
280264064216a8433360745f69edddce19a606659163The Android Open Source Project    else
280364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
280464064216a8433360745f69edddce19a606659163The Android Open Source Project        DFS_ChannelRange.minDFS_channelNum = (UINT16) parm[0].value;
280564064216a8433360745f69edddce19a606659163The Android Open Source Project        DFS_ChannelRange.maxDFS_channelNum = (UINT16) parm[1].value;
280664064216a8433360745f69edddce19a606659163The Android Open Source Project
280764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Given params: min channel %d, DFS max channel %d\n",
280864064216a8433360745f69edddce19a606659163The Android Open Source Project                                parm[0].value, parm[1].value);
280964064216a8433360745f69edddce19a606659163The Android Open Source Project
281064064216a8433360745f69edddce19a606659163The Android Open Source Project        result = TI_Set_minMaxDfsChannels(g_id_adapter, DFS_ChannelRange);
281164064216a8433360745f69edddce19a606659163The Android Open Source Project        if (result ==  TI_RESULT_OK)
281264064216a8433360745f69edddce19a606659163The Android Open Source Project        {
281364064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Setting DFS min channel %d, DFS max channel %d\n",
281464064216a8433360745f69edddce19a606659163The Android Open Source Project                                    DFS_ChannelRange.minDFS_channelNum, DFS_ChannelRange.maxDFS_channelNum);
281564064216a8433360745f69edddce19a606659163The Android Open Source Project        }
281664064216a8433360745f69edddce19a606659163The Android Open Source Project        else
281764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
281864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Setting DFS min channel %d, DFS max channel %d - FAILED !!\n",
281964064216a8433360745f69edddce19a606659163The Android Open Source Project                                    DFS_ChannelRange.minDFS_channelNum, DFS_ChannelRange.maxDFS_channelNum);
282064064216a8433360745f69edddce19a606659163The Android Open Source Project        }
282164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
282264064216a8433360745f69edddce19a606659163The Android Open Source Project
282364064216a8433360745f69edddce19a606659163The Android Open Source Project}
282464064216a8433360745f69edddce19a606659163The Android Open Source Project
282564064216a8433360745f69edddce19a606659163The Android Open Source Project#if 0
282664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_tx_power_value(ConParm_t parm[], U16 nParms)
282764064216a8433360745f69edddce19a606659163The Android Open Source Project{
282864064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
282964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
283064064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data = 1234;
283164064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetTxPowerValue(g_id_adapter, &data) )
283264064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal(  "Tx Power val = %ld\n", data);
283364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
283464064216a8433360745f69edddce19a606659163The Android Open Source Project    else
283564064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetTxPowerValue(g_id_adapter, parm[0].value);
283664064216a8433360745f69edddce19a606659163The Android Open Source Project}
283764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
283864064216a8433360745f69edddce19a606659163The Android Open Source Project
283964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_show_regdomain_table(ConParm_t parm[], U16 nParms)
284064064216a8433360745f69edddce19a606659163The Android Open Source Project{
284164064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
284264064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
284364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal(  "not implemented ....\n");
284464064216a8433360745f69edddce19a606659163The Android Open Source Project}
284564064216a8433360745f69edddce19a606659163The Android Open Source Project
284664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_4x_state(ConParm_t parm[], U16 nParms)
284764064216a8433360745f69edddce19a606659163The Android Open Source Project{
284864064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
284964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
285064064216a8433360745f69edddce19a606659163The Android Open Source Project        tiBOOL data = FALSE;
285164064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_Get4XState(g_id_adapter, &data ) )
285264064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("4x state=%s\n", data ? "True" : "False" );
285364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
285464064216a8433360745f69edddce19a606659163The Android Open Source Project    else    /* param <read-only!!> */
285564064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_Set4XState(g_id_adapter, (BOOL) parm[0].value);
285664064216a8433360745f69edddce19a606659163The Android Open Source Project}
285764064216a8433360745f69edddce19a606659163The Android Open Source Project
285864064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic named_value_t BSS_type[] =
285964064216a8433360745f69edddce19a606659163The Android Open Source Project{
286064064216a8433360745f69edddce19a606659163The Android Open Source Project    { os802_11IBSS,                  "AD-Hoc" },
286164064216a8433360745f69edddce19a606659163The Android Open Source Project    { os802_11Infrastructure,        "Infr." },
286264064216a8433360745f69edddce19a606659163The Android Open Source Project    { os802_11AutoUnknown,           "Auto" },
286364064216a8433360745f69edddce19a606659163The Android Open Source Project/*    { os802_11HighSpeedIBSS,         "HighSpeedIBSS" },*/
286464064216a8433360745f69edddce19a606659163The Android Open Source Project/*    { os802_11InfrastructureMax,     "Max" }*/
286564064216a8433360745f69edddce19a606659163The Android Open Source Project};
286664064216a8433360745f69edddce19a606659163The Android Open Source Project
286764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_bss_type(ConParm_t parm[], U16 nParms)
286864064216a8433360745f69edddce19a606659163The Android Open Source Project{
286964064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_NETWORK_MODE data = 0;     //TRS:MEB use correct datatype to avoid compiler warning
287064064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
287164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
287264064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetBSSType(g_id_adapter, &data ) )
287364064216a8433360745f69edddce19a606659163The Android Open Source Project        {
287464064216a8433360745f69edddce19a606659163The Android Open Source Project            print_available_values(BSS_type);
287564064216a8433360745f69edddce19a606659163The Android Open Source Project
287664064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Current mode=%d\n", data );
287764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
287864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
287964064216a8433360745f69edddce19a606659163The Android Open Source Project    else    /* param <read-only!!> */
288064064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetBSSType(g_id_adapter, (BOOL) parm[0].value);
288164064216a8433360745f69edddce19a606659163The Android Open Source Project}
288264064216a8433360745f69edddce19a606659163The Android Open Source Project
288364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_driver_state(ConParm_t parm[], U16 nParms)
288464064216a8433360745f69edddce19a606659163The Android Open Source Project{
288564064216a8433360745f69edddce19a606659163The Android Open Source Project   static char stateDesc[6][100] =
288664064216a8433360745f69edddce19a606659163The Android Open Source Project{
288764064216a8433360745f69edddce19a606659163The Android Open Source Project    "DRIVER_STATE_IDLE",
288864064216a8433360745f69edddce19a606659163The Android Open Source Project    "DRIVER_STATE_SCANNING",
288964064216a8433360745f69edddce19a606659163The Android Open Source Project    "DRIVER_STATE_SELECTING",
289064064216a8433360745f69edddce19a606659163The Android Open Source Project    "DRIVER_STATE_CONNECTING",
289164064216a8433360745f69edddce19a606659163The Android Open Source Project    "DRIVER_STATE_CONNECTED",
289264064216a8433360745f69edddce19a606659163The Android Open Source Project    "DRIVER_STATE_DISCONNECTED",
289364064216a8433360745f69edddce19a606659163The Android Open Source Project};
289464064216a8433360745f69edddce19a606659163The Android Open Source Project   driverState_e myState;
289564064216a8433360745f69edddce19a606659163The Android Open Source Project
289664064216a8433360745f69edddce19a606659163The Android Open Source Project   TI_GetDriverState (g_id_adapter, &myState);
289764064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("Driver state is %s\n", stateDesc[(UINT8)myState]);
289864064216a8433360745f69edddce19a606659163The Android Open Source Project}
289964064216a8433360745f69edddce19a606659163The Android Open Source Project
290064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_ext_rates_ie(ConParm_t parm[], U16 nParms)
290164064216a8433360745f69edddce19a606659163The Android Open Source Project{
290264064216a8433360745f69edddce19a606659163The Android Open Source Project    static named_value_t ExtRatesIE[] =
290364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
290464064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRAFT_5_AND_EARLIER,  "5_AND_EARLIER" },
290564064216a8433360745f69edddce19a606659163The Android Open Source Project        { DRAFT_6_AND_LATER,    "6_AND_LATER" }
290664064216a8433360745f69edddce19a606659163The Android Open Source Project    };
290764064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
290864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
290964064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data = 1122;
291064064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetExtRatesIE(g_id_adapter, &data ) )
291164064216a8433360745f69edddce19a606659163The Android Open Source Project        {
291264064216a8433360745f69edddce19a606659163The Android Open Source Project            print_available_values(ExtRatesIE);
291364064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("ExtRatesIE=%u\n", data  );
291464064216a8433360745f69edddce19a606659163The Android Open Source Project        }
291564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
291664064216a8433360745f69edddce19a606659163The Android Open Source Project    else
291764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetExtRatesIE(g_id_adapter, (tiUINT32) parm[0].value);
291864064216a8433360745f69edddce19a606659163The Android Open Source Project}
291964064216a8433360745f69edddce19a606659163The Android Open Source Project
292064064216a8433360745f69edddce19a606659163The Android Open Source Project
292164064216a8433360745f69edddce19a606659163The Android Open Source Project/*will return RSSI*/
292264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_rsii_level(ConParm_t parm[], U16 nParms)
292364064216a8433360745f69edddce19a606659163The Android Open Source Project{
292464064216a8433360745f69edddce19a606659163The Android Open Source Project   tiINT32 rssi ;
292564064216a8433360745f69edddce19a606659163The Android Open Source Project   TI_GetRSSI(g_id_adapter, &rssi);
292664064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("\n Current RSSI : %d\n" ,rssi)  ; // TRS:WDK - add return
292764064216a8433360745f69edddce19a606659163The Android Open Source Project}
292864064216a8433360745f69edddce19a606659163The Android Open Source Project
292964064216a8433360745f69edddce19a606659163The Android Open Source Project
293064064216a8433360745f69edddce19a606659163The Android Open Source Project/*will return SNR ratio*/
293164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_snr_ratio(ConParm_t parm[], U16 nParms)
293264064216a8433360745f69edddce19a606659163The Android Open Source Project{
293364064216a8433360745f69edddce19a606659163The Android Open Source Project   tiUINT32 snr ;
293464064216a8433360745f69edddce19a606659163The Android Open Source Project   TI_GetSNR(g_id_adapter, &snr);
293564064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("\n Current SNR ratio : %d\n" ,snr)  ;  // TRS:WDK - add return
293664064216a8433360745f69edddce19a606659163The Android Open Source Project}
293764064216a8433360745f69edddce19a606659163The Android Open Source Project
293864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_frag_threshold(ConParm_t parm[], U16 nParms)
293964064216a8433360745f69edddce19a606659163The Android Open Source Project{
294064064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
294164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
294264064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data = 0xfefefefe;
294364064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetFragmentThreshold(g_id_adapter, &data ) )
294464064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Frag. threshold=%d\n", data );
294564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
294664064216a8433360745f69edddce19a606659163The Android Open Source Project    else
294764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetFragmentThreshold(g_id_adapter, parm[0].value);
294864064216a8433360745f69edddce19a606659163The Android Open Source Project}
294964064216a8433360745f69edddce19a606659163The Android Open Source Project
295064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_short_slot(ConParm_t parm[], U16 nParms)
295164064216a8433360745f69edddce19a606659163The Android Open Source Project{
295264064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
295364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
295464064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data = 0xfefefefe;
295564064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetShortSlot(g_id_adapter, &data ) )
295664064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Short slot=%d\n", data );
295764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
295864064216a8433360745f69edddce19a606659163The Android Open Source Project    else
295964064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetShortSlot(g_id_adapter, parm[0].value);
296064064216a8433360745f69edddce19a606659163The Android Open Source Project}
296164064216a8433360745f69edddce19a606659163The Android Open Source Project
296264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_rts_threshold(ConParm_t parm[], U16 nParms)
296364064216a8433360745f69edddce19a606659163The Android Open Source Project{
296464064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
296564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
296664064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data = 0xfefefefe;
296764064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetRTSThreshold( g_id_adapter, &data) )
296864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("RTSThreshold=%d\n", data );
296964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
297064064216a8433360745f69edddce19a606659163The Android Open Source Project    else
297164064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetRTSThreshold(g_id_adapter, parm[0].value);
297264064216a8433360745f69edddce19a606659163The Android Open Source Project}
297364064216a8433360745f69edddce19a606659163The Android Open Source Project
297464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_preamble(ConParm_t parm[], U16 nParms)
297564064216a8433360745f69edddce19a606659163The Android Open Source Project{
297664064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
297764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
297864064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data = 0xfefefefe;
297964064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetShortPreamble( g_id_adapter, &data) )
298064064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("ShortPreamble=%d\n", data );
298164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
298264064216a8433360745f69edddce19a606659163The Android Open Source Project    else
298364064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetShortPreamble(g_id_adapter, parm[0].value);
298464064216a8433360745f69edddce19a606659163The Android Open Source Project}
298564064216a8433360745f69edddce19a606659163The Android Open Source Project
298664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_antenna_diversity(ConParm_t parm[], U16 nParms)
298764064216a8433360745f69edddce19a606659163The Android Open Source Project{
298864064216a8433360745f69edddce19a606659163The Android Open Source Project    TIWLAN_ANT_DIVERSITY antennaDiversityOptions;
298964064216a8433360745f69edddce19a606659163The Android Open Source Project
299064064216a8433360745f69edddce19a606659163The Android Open Source Project    antennaDiversityOptions.enableRxDiversity = (UINT8)parm[0].value;
299164064216a8433360745f69edddce19a606659163The Android Open Source Project    antennaDiversityOptions.rxSelectedAntenna = (UINT8)parm[1].value;
299264064216a8433360745f69edddce19a606659163The Android Open Source Project    antennaDiversityOptions.enableTxDiversity = (UINT8)parm[2].value;
299364064216a8433360745f69edddce19a606659163The Android Open Source Project    antennaDiversityOptions.txSelectedAntenna = (UINT8)parm[3].value;
299464064216a8433360745f69edddce19a606659163The Android Open Source Project    antennaDiversityOptions.rxTxSharedAnts = (UINT8)parm[4].value;
299564064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetAntennaDiversityParams(g_id_adapter, &antennaDiversityOptions);
299664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Antenna diversity parameters sent.\n");
299764064216a8433360745f69edddce19a606659163The Android Open Source Project}
299864064216a8433360745f69edddce19a606659163The Android Open Source Project
299964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_short_retry(ConParm_t parm[], U16 nParms)
300064064216a8433360745f69edddce19a606659163The Android Open Source Project{
300164064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
300264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
300364064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data = 0xfefefefe;
300464064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetShortRetry( g_id_adapter, &data) )
300564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("ShortRetry=%d\n", data );
300664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
300764064216a8433360745f69edddce19a606659163The Android Open Source Project    else
300864064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetShortRetry(g_id_adapter, parm[0].value);
300964064216a8433360745f69edddce19a606659163The Android Open Source Project}
301064064216a8433360745f69edddce19a606659163The Android Open Source Project
301164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_long_retry(ConParm_t parm[], U16 nParms)
301264064216a8433360745f69edddce19a606659163The Android Open Source Project{
301364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
301464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
301564064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data = 0xfefefefe;
301664064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetLongRetry( g_id_adapter, &data) )
301764064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("LongRetry=%d\n", data );
301864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
301964064216a8433360745f69edddce19a606659163The Android Open Source Project    else
302064064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetLongRetry(g_id_adapter, parm[0].value);
302164064216a8433360745f69edddce19a606659163The Android Open Source Project}
302264064216a8433360745f69edddce19a606659163The Android Open Source Project
302364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_start_driver(ConParm_t parm[], U16 nParms)
302464064216a8433360745f69edddce19a606659163The Android Open Source Project{
302564064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_Start( g_id_adapter );
302664064216a8433360745f69edddce19a606659163The Android Open Source Project}
302764064216a8433360745f69edddce19a606659163The Android Open Source Project
302864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_stop_driver(ConParm_t parm[], U16 nParms)
302964064216a8433360745f69edddce19a606659163The Android Open Source Project{
303064064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
303164064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
303264064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_Stop(g_id_adapter);
303364064216a8433360745f69edddce19a606659163The Android Open Source Project}
303464064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic TI_HANDLE eventRegistered[IPC_EVENT_MAX];
303564064216a8433360745f69edddce19a606659163The Android Open Source Project
303664064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic named_value_t event_type[] = {
303764064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_ASSOCIATED,             "Associated" },
303864064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_DISASSOCIATED,          "Disassociated"  },
303964064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_LINK_SPEED,             "LinkSpeed" },
304064064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_AUTH_SUCC,              "Authentication Success" },
304164064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_SCAN_COMPLETE,          "ScanComplete" },
304264064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_TIMEOUT,                "Timeout" },
304364064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_CCKM_START,             "CCKM_Start" },
304464064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_MEDIA_SPECIFIC,         "Media_Specific" },
304564064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_EAPOL,                  "EAPOL" },
304664064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_BOUND,                  "Bound" },
304764064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_UNBOUND,                "Unbound" },
304864064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_PREAUTH_EAPOL,          "PreAuth EAPOL"},
304964064216a8433360745f69edddce19a606659163The Android Open Source Project/*  { IPC_EVENT_PER,                    "PER" },*/
305064064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_LOW_SNR,               "Low SNR" },
305164064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_LOW_RSSI,               "Low RSSI" },
305264064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_TSPEC_STATUS,           "IPC_EVENT_TSPEC_STATUS" },
305364064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_TSPEC_RATE_STATUS,      "IPC_EVENT_TSPEC_RATE_STATUS" },
305464064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_MEDIUM_TIME_CROSS,      "IPC_EVENT_MEDIUM_TIME_CROSS" },
305564064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_ROAMING_COMPLETE,       "ROAMING_COMPLETE"},
305664064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_EAP_AUTH_FAILURE,       "EAP-FAST/LEAP Auth Failed"},
305764064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_WPA2_PREAUTHENTICATION, "IPC_EVENT_WPA2_PREAUTHENTICATION" },
305864064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_TRAFFIC_INTENSITY_THRESHOLD_CROSSED, "IPC_EVENT_TRAFFIC_INTENSITY_THRESHOLD_CROSSED" },
305964064216a8433360745f69edddce19a606659163The Android Open Source Project    { IPC_EVENT_BT_COEX_MODE, 	"IPC_EVENT_BT_COEX_MODE" },
306064064216a8433360745f69edddce19a606659163The Android Open Source Project
306164064216a8433360745f69edddce19a606659163The Android Open Source Project};
306264064216a8433360745f69edddce19a606659163The Android Open Source Project
306364064216a8433360745f69edddce19a606659163The Android Open Source Project
306464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_events_register(ConParm_t parm[], U16 nParms)
306564064216a8433360745f69edddce19a606659163The Android Open Source Project{
306664064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 event;
306764064216a8433360745f69edddce19a606659163The Android Open Source Project    IPC_EVENT_PARAMS pEvent;
306864064216a8433360745f69edddce19a606659163The Android Open Source Project
306964064216a8433360745f69edddce19a606659163The Android Open Source Project   if( nParms )
307064064216a8433360745f69edddce19a606659163The Android Open Source Project   {
307164064216a8433360745f69edddce19a606659163The Android Open Source Project        event = (tiUINT32)parm[0].value;
307264064216a8433360745f69edddce19a606659163The Android Open Source Project
307364064216a8433360745f69edddce19a606659163The Android Open Source Project        if (events_mask & (1 << event))
307464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
307564064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _WINDOWS
307664064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("cmd_events_register, event is already enabled! (%d)\n", events_mask);
307764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
307864064216a8433360745f69edddce19a606659163The Android Open Source Project        }
307964064216a8433360745f69edddce19a606659163The Android Open Source Project        else
308064064216a8433360745f69edddce19a606659163The Android Open Source Project   {
308164064216a8433360745f69edddce19a606659163The Android Open Source Project        pEvent.uEventType       = (tiUINT32)parm[0].value;
308264064216a8433360745f69edddce19a606659163The Android Open Source Project        pEvent.uDeliveryType      = DELIVERY_PUSH;
308364064216a8433360745f69edddce19a606659163The Android Open Source Project        pEvent.pfEventCallback = cli_receive_ev;
308464064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
308564064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
308664064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_RegisterEvent(g_id_adapter, &pEvent) )
308764064216a8433360745f69edddce19a606659163The Android Open Source Project            {
308864064216a8433360745f69edddce19a606659163The Android Open Source Project            eventRegistered[pEvent.uEventType] = pEvent.uEventID;
308964064216a8433360745f69edddce19a606659163The Android Open Source Project
309064064216a8433360745f69edddce19a606659163The Android Open Source Project                events_mask |= (1 << event);
309164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
309264064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
309364064216a8433360745f69edddce19a606659163The Android Open Source Project            }
309464064216a8433360745f69edddce19a606659163The Android Open Source Project        }
309564064216a8433360745f69edddce19a606659163The Android Open Source Project        }
309664064216a8433360745f69edddce19a606659163The Android Open Source Project    else
309764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
309864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
309964064216a8433360745f69edddce19a606659163The Android Open Source Project#else
310064064216a8433360745f69edddce19a606659163The Android Open Source Project		print_available_values(event_type);
310164064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
310264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
310364064216a8433360745f69edddce19a606659163The Android Open Source Project
310464064216a8433360745f69edddce19a606659163The Android Open Source Project        }
310564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_events_unregister(ConParm_t parm[], U16 nParms)
310664064216a8433360745f69edddce19a606659163The Android Open Source Project{
310764064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 event;
310864064216a8433360745f69edddce19a606659163The Android Open Source Project    IPC_EVENT_PARAMS pEvent;
310964064216a8433360745f69edddce19a606659163The Android Open Source Project
311064064216a8433360745f69edddce19a606659163The Android Open Source Project   if( nParms )
311164064216a8433360745f69edddce19a606659163The Android Open Source Project   {
311264064216a8433360745f69edddce19a606659163The Android Open Source Project        event = (tiUINT32)parm[0].value;
311364064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
311464064216a8433360745f69edddce19a606659163The Android Open Source Project#else
311564064216a8433360745f69edddce19a606659163The Android Open Source Project        pEvent.uEventType = event;
311664064216a8433360745f69edddce19a606659163The Android Open Source Project        pEvent.uEventID = eventRegistered[pEvent.uEventType];
311764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_UnRegisterEvent(g_id_adapter, &pEvent);
311864064216a8433360745f69edddce19a606659163The Android Open Source Project
311964064216a8433360745f69edddce19a606659163The Android Open Source Project        events_mask &= ~(1 << event);
312064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
312164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
312264064216a8433360745f69edddce19a606659163The Android Open Source Project    else
312364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
312464064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
312564064216a8433360745f69edddce19a606659163The Android Open Source Project#else
312664064216a8433360745f69edddce19a606659163The Android Open Source Project        print_available_values(event_type);
312764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
312864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
312964064216a8433360745f69edddce19a606659163The Android Open Source Project}
313064064216a8433360745f69edddce19a606659163The Android Open Source Project
313164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_selected_bssid_info(ConParm_t parm[], U16 nParms)
313264064216a8433360745f69edddce19a606659163The Android Open Source Project{
313364064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_BSSID_EX myInfo;
313464064216a8433360745f69edddce19a606659163The Android Open Source Project   TI_GetSelectedBSSIDInfo(g_id_adapter, &myInfo);
313564064216a8433360745f69edddce19a606659163The Android Open Source Project
313664064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("Selected BSSID Info:\n");
313764064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("--------------------\n");
313864064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("SSID: %s\n", get_ssid_string(&myInfo.Ssid));
313964064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("BSSID: %02x.%02x.%02x.%02x.%02x.%02x\n",
314064064216a8433360745f69edddce19a606659163The Android Open Source Project          myInfo.MacAddress[0], myInfo.MacAddress[1], myInfo.MacAddress[2], myInfo.MacAddress[3], myInfo.MacAddress[4], myInfo.MacAddress[5] );
314164064216a8433360745f69edddce19a606659163The Android Open Source Project}
314264064216a8433360745f69edddce19a606659163The Android Open Source Project
314364064216a8433360745f69edddce19a606659163The Android Open Source Projectint parseBssidIe(OS_802_11_BSSID_EX * bssid)
314464064216a8433360745f69edddce19a606659163The Android Open Source Project{
314564064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_VARIABLE_IEs *pData;
314664064216a8433360745f69edddce19a606659163The Android Open Source Project    dot11_WME_PARAM_t *  qosParams;
314764064216a8433360745f69edddce19a606659163The Android Open Source Project
314864064216a8433360745f69edddce19a606659163The Android Open Source Project    int length;
314964064216a8433360745f69edddce19a606659163The Android Open Source Project    int retval = 0;
315064064216a8433360745f69edddce19a606659163The Android Open Source Project    /* console_printf_terminal("parseBssidIe,IElength=%d \n",bssid->IELength);*/
315164064216a8433360745f69edddce19a606659163The Android Open Source Project    for (
315264064216a8433360745f69edddce19a606659163The Android Open Source Project            length =sizeof(OS_802_11_FIXED_IEs) , pData = (OS_802_11_VARIABLE_IEs*) ((char*)bssid->IEs + sizeof(OS_802_11_FIXED_IEs));
315364064216a8433360745f69edddce19a606659163The Android Open Source Project            length < (int)(bssid->IELength-3);
315464064216a8433360745f69edddce19a606659163The Android Open Source Project            length += (pData->Length +2),pData =  (OS_802_11_VARIABLE_IEs*)((char*)bssid->IEs  + length)
315564064216a8433360745f69edddce19a606659163The Android Open Source Project        )
315664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
315764064216a8433360745f69edddce19a606659163The Android Open Source Project        /* console_printf_terminal("ElementID=%d pData=%x length=%d length1=%d\n",pData->ElementID,pData,pData->Length,length);*/
315864064216a8433360745f69edddce19a606659163The Android Open Source Project        if (pData->ElementID == DOT11_WME_ELE_ID)
315964064216a8433360745f69edddce19a606659163The Android Open Source Project        {
316064064216a8433360745f69edddce19a606659163The Android Open Source Project            qosParams = (dot11_WME_PARAM_t *)pData;
316164064216a8433360745f69edddce19a606659163The Android Open Source Project            /* console_printf_terminal("OUIType=%x OUI =%x %x %x \n",qosParams->OUIType,qosParams->OUI[0],qosParams->OUI[1],qosParams->OUI[2]);*/
316264064216a8433360745f69edddce19a606659163The Android Open Source Project            if (qosParams->OUIType == dot11_WME_OUI_TYPE)
316364064216a8433360745f69edddce19a606659163The Android Open Source Project            {
316464064216a8433360745f69edddce19a606659163The Android Open Source Project                retval |= dot11_WME_OUI_TYPE;
316564064216a8433360745f69edddce19a606659163The Android Open Source Project            }
316664064216a8433360745f69edddce19a606659163The Android Open Source Project
316764064216a8433360745f69edddce19a606659163The Android Open Source Project
316864064216a8433360745f69edddce19a606659163The Android Open Source Project        }
316964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
317064064216a8433360745f69edddce19a606659163The Android Open Source Project
317164064216a8433360745f69edddce19a606659163The Android Open Source Project
317264064216a8433360745f69edddce19a606659163The Android Open Source Project    return retval;
317364064216a8433360745f69edddce19a606659163The Android Open Source Project}
317464064216a8433360745f69edddce19a606659163The Android Open Source Project
317564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_bssid_list(ConParm_t parm[], U16 nParms)
317664064216a8433360745f69edddce19a606659163The Android Open Source Project{
317764064216a8433360745f69edddce19a606659163The Android Open Source Project
317864064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_BSSID_EX BssIdInfo;
317964064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetSelectedBSSIDInfo(g_id_adapter, &BssIdInfo);
318064064216a8433360745f69edddce19a606659163The Android Open Source Project    get_bssid_list(parm, nParms, FALSE , &BssIdInfo );
318164064216a8433360745f69edddce19a606659163The Android Open Source Project}
318264064216a8433360745f69edddce19a606659163The Android Open Source Project
318364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Full_bssid_list(ConParm_t parm[], U16 nParms)
318464064216a8433360745f69edddce19a606659163The Android Open Source Project{
318564064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_BSSID_EX BssIdInfo;
318664064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetSelectedBSSIDInfo(g_id_adapter, &BssIdInfo);
318764064216a8433360745f69edddce19a606659163The Android Open Source Project    get_bssid_list(parm, nParms, TRUE , &BssIdInfo);
318864064216a8433360745f69edddce19a606659163The Android Open Source Project}
318964064216a8433360745f69edddce19a606659163The Android Open Source Project
319064064216a8433360745f69edddce19a606659163The Android Open Source Project/*When beacon filter is activated, the current RSSI of the connection with the AP will be displayed despite no beacons are
319164064216a8433360745f69edddce19a606659163The Android Open Source Project *passed up to the driver*/
319264064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void get_bssid_list(ConParm_t parm[], U16 nParms, BOOL fullBssidList , OS_802_11_BSSID_EX *pBssid)
319364064216a8433360745f69edddce19a606659163The Android Open Source Project{
319464064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_BSSID_LIST_EX *list;/* = (OS_802_11_BSSID_LIST_EX *) data; */
319564064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_BSSID_EX *bssid;
319664064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 number_items, index;
319764064216a8433360745f69edddce19a606659163The Android Open Source Project    char buffer[8] ;
319864064216a8433360745f69edddce19a606659163The Android Open Source Project    int Qos = 0;
319964064216a8433360745f69edddce19a606659163The Android Open Source Project	BOOL isConnectedAp = FALSE ;   //TRS:MEB move this line earlier to avoid compile error
320064064216a8433360745f69edddce19a606659163The Android Open Source Project    buffer[0] ='\0';
320164064216a8433360745f69edddce19a606659163The Android Open Source Project
320264064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
320364064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
320464064216a8433360745f69edddce19a606659163The Android Open Source Project
320564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (fullBssidList)
320664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
320764064216a8433360745f69edddce19a606659163The Android Open Source Project        if( TI_GetFullBSSIDList(g_id_adapter, &list) || !list )
320864064216a8433360745f69edddce19a606659163The Android Open Source Project            return ;
320964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
321064064216a8433360745f69edddce19a606659163The Android Open Source Project    else
321164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
321264064216a8433360745f69edddce19a606659163The Android Open Source Project    if( TI_GetBSSIDList(g_id_adapter, &list) || !list )
321364064216a8433360745f69edddce19a606659163The Android Open Source Project        return ;
321464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
321564064216a8433360745f69edddce19a606659163The Android Open Source Project
321664064216a8433360745f69edddce19a606659163The Android Open Source Project
321764064216a8433360745f69edddce19a606659163The Android Open Source Project    bssid = &list->Bssid[0];
321864064216a8433360745f69edddce19a606659163The Android Open Source Project    number_items = list->NumberOfItems;
321964064216a8433360745f69edddce19a606659163The Android Open Source Project
322064064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("BssId List: Num=%u\n", number_items );
322164064216a8433360745f69edddce19a606659163The Android Open Source Project
322264064216a8433360745f69edddce19a606659163The Android Open Source Project    if( number_items )
322364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
322464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("%17s %7s %4s %5s %7s  %10s %s\n", "MAC", "Privacy", "Rssi", "Infra", "Channel","Qos   ", "SSID");
322564064216a8433360745f69edddce19a606659163The Android Open Source Project        while (number_items)
322664064216a8433360745f69edddce19a606659163The Android Open Source Project        {
322764064216a8433360745f69edddce19a606659163The Android Open Source Project            Qos = parseBssidIe(bssid);
322864064216a8433360745f69edddce19a606659163The Android Open Source Project
322964064216a8433360745f69edddce19a606659163The Android Open Source Project/*          console_printf_terminal("Qos=%d\n",Qos);*/
323064064216a8433360745f69edddce19a606659163The Android Open Source Project            if (Qos & dot11_WME_OUI_TYPE)
323164064216a8433360745f69edddce19a606659163The Android Open Source Project            {
323264064216a8433360745f69edddce19a606659163The Android Open Source Project                strcpy(buffer, "WME ");
323364064216a8433360745f69edddce19a606659163The Android Open Source Project            }
323464064216a8433360745f69edddce19a606659163The Android Open Source Project
323564064216a8433360745f69edddce19a606659163The Android Open Source Project            if (Qos == 0)
323664064216a8433360745f69edddce19a606659163The Android Open Source Project            {
323764064216a8433360745f69edddce19a606659163The Android Open Source Project                strcpy(buffer, "NONE ");
323864064216a8433360745f69edddce19a606659163The Android Open Source Project            }
323964064216a8433360745f69edddce19a606659163The Android Open Source Project
324064064216a8433360745f69edddce19a606659163The Android Open Source Project            if (( 0 == memcmp(pBssid->MacAddress ,bssid->MacAddress,sizeof(OS_802_11_MAC_ADDRESS)) ) &&
324164064216a8433360745f69edddce19a606659163The Android Open Source Project				(pBssid->NetworkTypeInUse == bssid->NetworkTypeInUse))
324264064216a8433360745f69edddce19a606659163The Android Open Source Project            {
324364064216a8433360745f69edddce19a606659163The Android Open Source Project                /*bssid->Rssi = staRssi ;*/
324464064216a8433360745f69edddce19a606659163The Android Open Source Project                isConnectedAp = TRUE ;
324564064216a8433360745f69edddce19a606659163The Android Open Source Project            }
324664064216a8433360745f69edddce19a606659163The Android Open Source Project            else
324764064216a8433360745f69edddce19a606659163The Android Open Source Project            {
324864064216a8433360745f69edddce19a606659163The Android Open Source Project                isConnectedAp = FALSE ;
324964064216a8433360745f69edddce19a606659163The Android Open Source Project            }
325064064216a8433360745f69edddce19a606659163The Android Open Source Project
325164064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("%s %s %7u %4d %5d %7d %10s %s\n",
325264064216a8433360745f69edddce19a606659163The Android Open Source Project                    ( TRUE == isConnectedAp)?"*":" " ,
325364064216a8433360745f69edddce19a606659163The Android Open Source Project                    print_mac_2_str(bssid->MacAddress),
325464064216a8433360745f69edddce19a606659163The Android Open Source Project                    bssid->Privacy, bssid->Rssi,
325564064216a8433360745f69edddce19a606659163The Android Open Source Project                    bssid->InfrastructureMode, Freq2Chan(bssid->Configuration.Union.channel),
325664064216a8433360745f69edddce19a606659163The Android Open Source Project                    buffer,
325764064216a8433360745f69edddce19a606659163The Android Open Source Project                    get_ssid_string(&bssid->Ssid) );
325864064216a8433360745f69edddce19a606659163The Android Open Source Project
325964064216a8433360745f69edddce19a606659163The Android Open Source Project            if (fullBssidList)
326064064216a8433360745f69edddce19a606659163The Android Open Source Project            {
326164064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("   TSF 0x%02x-0x%02x-0x%02x-0x%02x-0x%02x-0x%02x-0x%02x-0x%02x\n",
326264064216a8433360745f69edddce19a606659163The Android Open Source Project                      bssid->IEs[0], bssid->IEs[1], bssid->IEs[2], bssid->IEs[3],
326364064216a8433360745f69edddce19a606659163The Android Open Source Project                      bssid->IEs[4], bssid->IEs[5], bssid->IEs[6], bssid->IEs[7]);
326464064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("   BeaconInterval 0x%02x%02x\n",  bssid->IEs[9], bssid->IEs[8]);
326564064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("   Capabilities   0x%02x%02x\n",  bssid->IEs[10], bssid->IEs[11]);
326664064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("   Variable IEs:\n");
326764064216a8433360745f69edddce19a606659163The Android Open Source Project                for (index=12; index<bssid->IELength; index++)
326864064216a8433360745f69edddce19a606659163The Android Open Source Project                {
326964064216a8433360745f69edddce19a606659163The Android Open Source Project                    if ((index-12)%8 == 0)
327064064216a8433360745f69edddce19a606659163The Android Open Source Project                    {
327164064216a8433360745f69edddce19a606659163The Android Open Source Project                        console_printf_terminal("\n   ");
327264064216a8433360745f69edddce19a606659163The Android Open Source Project                    }
327364064216a8433360745f69edddce19a606659163The Android Open Source Project                    console_printf_terminal("0x%02x ",bssid->IEs[index]);
327464064216a8433360745f69edddce19a606659163The Android Open Source Project
327564064216a8433360745f69edddce19a606659163The Android Open Source Project                }
327664064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("\n");
327764064216a8433360745f69edddce19a606659163The Android Open Source Project            }
327864064216a8433360745f69edddce19a606659163The Android Open Source Project            bssid = (OS_802_11_BSSID_EX *) (((char *) bssid) + bssid->Length);
327964064216a8433360745f69edddce19a606659163The Android Open Source Project            number_items--;
328064064216a8433360745f69edddce19a606659163The Android Open Source Project        }
328164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Infra.mode:");
328264064216a8433360745f69edddce19a606659163The Android Open Source Project        print_available_values(BSS_type);
328364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
328464064216a8433360745f69edddce19a606659163The Android Open Source Project
328564064216a8433360745f69edddce19a606659163The Android Open Source Project    free(list);
328664064216a8433360745f69edddce19a606659163The Android Open Source Project}
328764064216a8433360745f69edddce19a606659163The Android Open Source Project
328864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
328964064216a8433360745f69edddce19a606659163The Android Open Source Project#else
329064064216a8433360745f69edddce19a606659163The Android Open Source ProjectPACKED_STRUCT( OS_802_11_BSSID_EX_TEMP,
329164064216a8433360745f69edddce19a606659163The Android Open Source Project	tiUINT32                  Length;
329264064216a8433360745f69edddce19a606659163The Android Open Source Project	OS_802_11_MAC_ADDRESS     MacAddress;
329364064216a8433360745f69edddce19a606659163The Android Open Source Project    PACKED_UNION(Union,
329464064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT8  Reserved[2];
329564064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT16 Capabilities;
329664064216a8433360745f69edddce19a606659163The Android Open Source Project    );
329764064216a8433360745f69edddce19a606659163The Android Open Source Project	OS_802_11_SSID            Ssid;
329864064216a8433360745f69edddce19a606659163The Android Open Source Project	tiUINT32                  Privacy;
329964064216a8433360745f69edddce19a606659163The Android Open Source Project	OS_802_11_RSSI            Rssi;
330064064216a8433360745f69edddce19a606659163The Android Open Source Project	OS_802_11_NETWORK_TYPE    NetworkTypeInUse;
330164064216a8433360745f69edddce19a606659163The Android Open Source Project	OS_802_11_CONFIGURATION   Configuration;
330264064216a8433360745f69edddce19a606659163The Android Open Source Project	OS_802_11_NETWORK_MODE    InfrastructureMode;
330364064216a8433360745f69edddce19a606659163The Android Open Source Project	OS_802_11_RATES_EX        SupportedRates;
330464064216a8433360745f69edddce19a606659163The Android Open Source Project	tiUINT32                  IELength;
330564064216a8433360745f69edddce19a606659163The Android Open Source Project	tiUINT8                   IEs[MAX_BEACON_BODY_LENGTH+sizeof(OS_802_11_FIXED_IEs)];
330664064216a8433360745f69edddce19a606659163The Android Open Source Project);
330764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
330864064216a8433360745f69edddce19a606659163The Android Open Source Project
330964064216a8433360745f69edddce19a606659163The Android Open Source Project
331064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_FullPrimaryBbssid(ConParm_t parm[], U16 nParms)
331164064216a8433360745f69edddce19a606659163The Android Open Source Project{
331264064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_BSSID_EX_TEMP bssid;
331364064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_BSSID_EX_TEMP *pBssid = &bssid;
331464064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32  index;
331564064216a8433360745f69edddce19a606659163The Android Open Source Project    char buffer[8] ;
331664064216a8433360745f69edddce19a606659163The Android Open Source Project    int Qos = 0;
331764064216a8433360745f69edddce19a606659163The Android Open Source Project    buffer[0] ='\0';
331864064216a8433360745f69edddce19a606659163The Android Open Source Project
331964064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(nParms);
332064064216a8433360745f69edddce19a606659163The Android Open Source Project    UNUSED(parm);
332164064216a8433360745f69edddce19a606659163The Android Open Source Project
332264064216a8433360745f69edddce19a606659163The Android Open Source Project    memset(pBssid, 0, sizeof(OS_802_11_BSSID_EX));
332364064216a8433360745f69edddce19a606659163The Android Open Source Project    pBssid->Length = sizeof(OS_802_11_BSSID_EX) + sizeof(OS_802_11_FIXED_IEs) + MAX_BEACON_BODY_LENGTH;
332464064216a8433360745f69edddce19a606659163The Android Open Source Project    if( TI_GetPrimaryBSSIDInfo(g_id_adapter, (OS_802_11_BSSID_EX*)pBssid))
332564064216a8433360745f69edddce19a606659163The Android Open Source Project            return ;
332664064216a8433360745f69edddce19a606659163The Android Open Source Project
332764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Primary BssId: Length = %d, IELength=%d \n" , pBssid->Length, pBssid->IELength);
332864064216a8433360745f69edddce19a606659163The Android Open Source Project
332964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pBssid->Length > sizeof(OS_802_11_BSSID_EX) + sizeof(OS_802_11_FIXED_IEs) + MAX_BEACON_BODY_LENGTH)
333064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
333164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Error - Length = %d is too long!!\n", pBssid->Length);
333264064216a8433360745f69edddce19a606659163The Android Open Source Project        return;
333364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
333464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pBssid->Length < pBssid->IELength)
333564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
333664064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Error - IELength = %d is too long!!\n", pBssid->IELength);
333764064216a8433360745f69edddce19a606659163The Android Open Source Project        pBssid->IELength = 50;
333864064216a8433360745f69edddce19a606659163The Android Open Source Project        print_mac_2_str(pBssid->MacAddress),
333964064216a8433360745f69edddce19a606659163The Android Open Source Project
334064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("SSID len=%d\n", pBssid->Ssid.SsidLength);
334164064216a8433360745f69edddce19a606659163The Android Open Source Project
334264064216a8433360745f69edddce19a606659163The Android Open Source Project        return;
334364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
334464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("%17s %7s %4s %5s %7s  %10s %s\n", "MAC", "Privacy", "Rssi", "Infra", "Channel","Qos   ", "SSID");
334564064216a8433360745f69edddce19a606659163The Android Open Source Project    Qos = parseBssidIe((OS_802_11_BSSID_EX*)pBssid);
334664064216a8433360745f69edddce19a606659163The Android Open Source Project
334764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (Qos & dot11_WME_OUI_TYPE)
334864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
334964064216a8433360745f69edddce19a606659163The Android Open Source Project        strcpy(buffer, "WME ");
335064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
335164064216a8433360745f69edddce19a606659163The Android Open Source Project
335264064216a8433360745f69edddce19a606659163The Android Open Source Project    if (Qos == 0)
335364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
335464064216a8433360745f69edddce19a606659163The Android Open Source Project        strcpy(buffer, "NONE ");
335564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
335664064216a8433360745f69edddce19a606659163The Android Open Source Project
335764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("%s %7u %4d %5d %7d %10s %s\n",
335864064216a8433360745f69edddce19a606659163The Android Open Source Project            print_mac_2_str(pBssid->MacAddress),
335964064216a8433360745f69edddce19a606659163The Android Open Source Project            pBssid->Privacy, pBssid->Rssi,
336064064216a8433360745f69edddce19a606659163The Android Open Source Project            pBssid->InfrastructureMode, Freq2Chan(pBssid->Configuration.Union.channel),
336164064216a8433360745f69edddce19a606659163The Android Open Source Project            buffer,
336264064216a8433360745f69edddce19a606659163The Android Open Source Project            get_ssid_string(&pBssid->Ssid) );
336364064216a8433360745f69edddce19a606659163The Android Open Source Project
336464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
336564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("   TSF 0x%02x-0x%02x-0x%02x-0x%02x-0x%02x-0x%02x-0x%02x-0x%02x\n",
336664064216a8433360745f69edddce19a606659163The Android Open Source Project              pBssid->IEs[0], pBssid->IEs[1], pBssid->IEs[2], pBssid->IEs[3],
336764064216a8433360745f69edddce19a606659163The Android Open Source Project              pBssid->IEs[4], pBssid->IEs[5], pBssid->IEs[6], pBssid->IEs[7]);
336864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("   BeaconInterval 0x%02x%02x\n",  pBssid->IEs[9], pBssid->IEs[8]);
336964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("   Capabilities   0x%02x%02x\n",  pBssid->IEs[10], pBssid->IEs[11]);
337064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("   Variable IEs:\n");
337164064216a8433360745f69edddce19a606659163The Android Open Source Project        for (index=12; index<pBssid->IELength; index++)
337264064216a8433360745f69edddce19a606659163The Android Open Source Project        {
337364064216a8433360745f69edddce19a606659163The Android Open Source Project            if ((index-12)%8 == 0)
337464064216a8433360745f69edddce19a606659163The Android Open Source Project            {
337564064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("\n   ");
337664064216a8433360745f69edddce19a606659163The Android Open Source Project            }
337764064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("0x%02x ",pBssid->IEs[index]);
337864064216a8433360745f69edddce19a606659163The Android Open Source Project
337964064216a8433360745f69edddce19a606659163The Android Open Source Project        }
338064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("\n");
338164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
338264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\nInfra.mode:");
338364064216a8433360745f69edddce19a606659163The Android Open Source Project    print_available_values(BSS_type);
338464064216a8433360745f69edddce19a606659163The Android Open Source Project}
338564064216a8433360745f69edddce19a606659163The Android Open Source Project
338664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_file_load(ConParm_t parm[], U16 nParms)
338764064216a8433360745f69edddce19a606659163The Android Open Source Project{
338864064216a8433360745f69edddce19a606659163The Android Open Source Project    consoleRunScript((char *) parm[0].value);
338964064216a8433360745f69edddce19a606659163The Android Open Source Project}
339064064216a8433360745f69edddce19a606659163The Android Open Source Project
339164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG
339264064216a8433360745f69edddce19a606659163The Android Open Source Project
339364064216a8433360745f69edddce19a606659163The Android Open Source Projectstruct report_bit_desc_t
339464064216a8433360745f69edddce19a606659163The Android Open Source Project{
339564064216a8433360745f69edddce19a606659163The Android Open Source Project    int index;
339664064216a8433360745f69edddce19a606659163The Android Open Source Project    char *desc;
339764064216a8433360745f69edddce19a606659163The Android Open Source Project};
339864064216a8433360745f69edddce19a606659163The Android Open Source Project
339964064216a8433360745f69edddce19a606659163The Android Open Source Projectstruct report_bit_desc_t report[] =
340064064216a8433360745f69edddce19a606659163The Android Open Source Project{
340164064216a8433360745f69edddce19a606659163The Android Open Source Project
340264064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Set 0 */
340364064216a8433360745f69edddce19a606659163The Android Open Source Project    { CONFIG_MGR_MODULE_LOG,        "CONFIG_MGR" },
340464064216a8433360745f69edddce19a606659163The Android Open Source Project    { SME_SM_MODULE_LOG,            "SME_SM" },
340564064216a8433360745f69edddce19a606659163The Android Open Source Project    { SITE_MGR_MODULE_LOG,          "SITE_MGR" },
340664064216a8433360745f69edddce19a606659163The Android Open Source Project    { CONN_MODULE_LOG,              "CONN" },
340764064216a8433360745f69edddce19a606659163The Android Open Source Project    { MLME_SM_MODULE_LOG,           "MLMEE" },
340864064216a8433360745f69edddce19a606659163The Android Open Source Project    { AUTH_MODULE_LOG,              "AUTH" },
340964064216a8433360745f69edddce19a606659163The Android Open Source Project    { ASSOC_MODULE_LOG,             "ASSOC" },
341064064216a8433360745f69edddce19a606659163The Android Open Source Project    { RX_DATA_MODULE_LOG,           "RX_DATA" },
341164064216a8433360745f69edddce19a606659163The Android Open Source Project    { TX_DATA_MODULE_LOG,           "TX_DATA" },
341264064216a8433360745f69edddce19a606659163The Android Open Source Project    { CTRL_DATA_MODULE_LOG,         "CTRL_DATA" },
341364064216a8433360745f69edddce19a606659163The Android Open Source Project    { RSN_MODULE_LOG,               "RSN" },
341464064216a8433360745f69edddce19a606659163The Android Open Source Project    { HAL_RX_MODULE_LOG,            "HAL_RX" },
341564064216a8433360745f69edddce19a606659163The Android Open Source Project    { HAL_TX_MODULE_LOG,            "HAL_TX" },
341664064216a8433360745f69edddce19a606659163The Android Open Source Project    { HAL_CTRL_MODULE_LOG,          "HAL_CTRL" },
341764064216a8433360745f69edddce19a606659163The Android Open Source Project    { HAL_SECURITY_MODULE_LOG,      "HAL_SECUR" },
341864064216a8433360745f69edddce19a606659163The Android Open Source Project    { MEM_MGR_MODULE_LOG,           "MEM_MGR" },
341964064216a8433360745f69edddce19a606659163The Android Open Source Project    { REPORT_MODULE_LOG,            "REPORT" },
342064064216a8433360745f69edddce19a606659163The Android Open Source Project    { SITE_UPDATE_MODULE_LOG,       "SITE_UPDATE" },
342164064216a8433360745f69edddce19a606659163The Android Open Source Project    { REGULATORY_DOMAIN_MODULE_LOG, "REG_DOMAIN" },
342264064216a8433360745f69edddce19a606659163The Android Open Source Project    { MEASUREMENT_MNGR_MODULE_LOG,  "MEASUREMENT_MNGR" },
342364064216a8433360745f69edddce19a606659163The Android Open Source Project    { MEASUREMENT_SRV_MODULE_LOG,   "MEASUREMENT_SRV" },
342464064216a8433360745f69edddce19a606659163The Android Open Source Project    { SOFT_GEMINI_MODULE_LOG,       "SOFT_GEMINI" },
342564064216a8433360745f69edddce19a606659163The Android Open Source Project    { SC_MODULE_LOG,                "SC (Switch Channel)" },
342664064216a8433360745f69edddce19a606659163The Android Open Source Project    { EXC_MANAGER_MODULE_LOG,       "EXC_MANAGER" },
342764064216a8433360745f69edddce19a606659163The Android Open Source Project    { ROAMING_MANAGER_MODULE_LOG,   "ROAMING_MANAGER" },
342864064216a8433360745f69edddce19a606659163The Android Open Source Project    { QOS_MANAGER_MODULE_LOG,       "QOS_MANAGER" },
342964064216a8433360745f69edddce19a606659163The Android Open Source Project    { TRAFFIC_ADM_CTRL_MODULE_LOG,  "TRAFFIC_ADM_CTRL" },
343064064216a8433360745f69edddce19a606659163The Android Open Source Project    { POWER_MANAGER_MODULE_LOG,     "POWER_MANAGER" },
343164064216a8433360745f69edddce19a606659163The Android Open Source Project    { POWER_CONTROL_MODULE_LOG,     "POWER_CONTROL" },
343264064216a8433360745f69edddce19a606659163The Android Open Source Project    { POWER_SERVER_MODULE_LOG,      "POWER_SERVER" },
343364064216a8433360745f69edddce19a606659163The Android Open Source Project    { ELP_MODULE_LOG,               "ELP" },
343464064216a8433360745f69edddce19a606659163The Android Open Source Project    { SCR_MODULE_LOG,               "SCR" },
343564064216a8433360745f69edddce19a606659163The Android Open Source Project    { SCAN_SRV_MODULE_LOG,          "SCAN_SRV" },
343664064216a8433360745f69edddce19a606659163The Android Open Source Project    { SCAN_CNCN_MODULE_LOG,         "SCAN_CNCN" },
343764064216a8433360745f69edddce19a606659163The Android Open Source Project    { SCAN_MNGR_MODULE_LOG,         "SCAN_MNGR" },
343864064216a8433360745f69edddce19a606659163The Android Open Source Project    { GWSI_ADAPT_MODULE_LOG,        "GWSI_ADAPT" },
343964064216a8433360745f69edddce19a606659163The Android Open Source Project    { GWSI_ADAPT_CB_MODULE_LOG,     "GWSI_ADAPT_CB" },
344064064216a8433360745f69edddce19a606659163The Android Open Source Project    { CORE_ADAPT_MODULE_LOG,        "CORE_ADAPT" },
344164064216a8433360745f69edddce19a606659163The Android Open Source Project    { TX_HW_QUEUE_MODULE_LOG,       "TX HW QUEUE" },
344264064216a8433360745f69edddce19a606659163The Android Open Source Project    { TX_CTRL_BLK_MODULE_LOG,       "TX CTRL BLK" },
344364064216a8433360745f69edddce19a606659163The Android Open Source Project    { TX_RESULT_MODULE_LOG,         "TX RESULT" },
344464064216a8433360745f69edddce19a606659163The Android Open Source Project    { TNETW_IF_MODULE_LOG,          "TNETW IF" },
344564064216a8433360745f69edddce19a606659163The Android Open Source Project    { TNETW_ARBITER_MODULE_LOG,     "TNETW ARBITER" },
344664064216a8433360745f69edddce19a606659163The Android Open Source Project    { CURR_BSS_MODULE_LOG,          "CURR_BSS" },
344764064216a8433360745f69edddce19a606659163The Android Open Source Project    { FW_EVENT_MODULE_LOG,          "FW_EVENT" },
344864064216a8433360745f69edddce19a606659163The Android Open Source Project    { CMD_MBOX_MODULE_LOG,          "CMD_MBOX" },
344964064216a8433360745f69edddce19a606659163The Android Open Source Project	{ CMDQUEUE_MODULE_LOG,          "CMD_QUEUE" },
345064064216a8433360745f69edddce19a606659163The Android Open Source Project    { EVENT_MBOX_MODULE_LOG,        "EVENT_MBOX"},
345164064216a8433360745f69edddce19a606659163The Android Open Source Project    { TNETW_DRV_MODULE_LOG,         "TNETW DRV" },
345264064216a8433360745f69edddce19a606659163The Android Open Source Project	{ TNETW_XFER_MODULE_LOG,        "TX XFER" },
345364064216a8433360745f69edddce19a606659163The Android Open Source Project    { RECOVERY_MGR_MODULE_LOG,      "RECOVERY MGR" },
345464064216a8433360745f69edddce19a606659163The Android Open Source Project    { RECOVERY_CTRL_MODULE_LOG,     "RECOVERY CTRL" },
345564064216a8433360745f69edddce19a606659163The Android Open Source Project    { HW_INIT_MODULE_LOG,           "HW INIT" }
345664064216a8433360745f69edddce19a606659163The Android Open Source Project
345764064216a8433360745f69edddce19a606659163The Android Open Source Project};
345864064216a8433360745f69edddce19a606659163The Android Open Source Project
345964064216a8433360745f69edddce19a606659163The Android Open Source Project
346064064216a8433360745f69edddce19a606659163The Android Open Source Projectstruct rep_severity_level_t {
346164064216a8433360745f69edddce19a606659163The Android Open Source Project    U8 level;
346264064216a8433360745f69edddce19a606659163The Android Open Source Project    char *desc;
346364064216a8433360745f69edddce19a606659163The Android Open Source Project};
346464064216a8433360745f69edddce19a606659163The Android Open Source Project
346564064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic struct rep_severity_level_t report_severity_level[] = {
346664064216a8433360745f69edddce19a606659163The Android Open Source Project    { 0,                          "----"           },
346764064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_INIT,         "INIT",          },
346864064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_INFORMATION,  "INFORMATION",   },
346964064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_WARNING,      "WARNING",       },
347064064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_ERROR,        "ERROR",         },
347164064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_FATAL_ERROR,  "FATAL_ERROR",   },
347264064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_SM,           "SM",            },
347364064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_CONSOLE,      "CONSOLE",       },
347464064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_DEBUG_RX,     "DEBUG RX",      },
347564064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_DEBUG_TX,     "DEBUG TX",      },
347664064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_DEBUG_CONTROL,"DEBUG CONTROL", },
347764064216a8433360745f69edddce19a606659163The Android Open Source Project    { WLAN_SEVERITY_GWSI_RECORDING,"GWSI RECORDING"}
347864064216a8433360745f69edddce19a606659163The Android Open Source Project};
347964064216a8433360745f69edddce19a606659163The Android Open Source Project
348064064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void print_report_module_desc(void)
348164064216a8433360745f69edddce19a606659163The Android Open Source Project{
348264064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
348364064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT8 module_table[WLAN_MAX_LOG_MODULES];
348464064216a8433360745f69edddce19a606659163The Android Open Source Project
348564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (!TI_GetReportModule(g_id_adapter, module_table))
348664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
348764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("-------------------------------\n");
348864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("%.5s\tState\t %s\n", "Index", "Desc");
348964064216a8433360745f69edddce19a606659163The Android Open Source Project
349064064216a8433360745f69edddce19a606659163The Android Open Source Project        for( i = 0; i < SIZE_ARR(report); i++)
349164064216a8433360745f69edddce19a606659163The Android Open Source Project        {
349264064216a8433360745f69edddce19a606659163The Android Open Source Project            /* Check if there is string content (the first character is not ZERO) */
349364064216a8433360745f69edddce19a606659163The Android Open Source Project            if( report[i].desc[0] )
349464064216a8433360745f69edddce19a606659163The Android Open Source Project            {
349564064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("%3d\t%c\t%s\n", report[i].index, (module_table[i] == '1') ? '+' : ' ', report[i].desc );
349664064216a8433360745f69edddce19a606659163The Android Open Source Project            }
349764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
349864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
349964064216a8433360745f69edddce19a606659163The Android Open Source Project    else
350064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
350164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Error reading the report table form the driver\n");
350264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
350364064216a8433360745f69edddce19a606659163The Android Open Source Project}
350464064216a8433360745f69edddce19a606659163The Android Open Source Project
350564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_report_add(ConParm_t parm[], U16 nParms)
350664064216a8433360745f69edddce19a606659163The Android Open Source Project{
350764064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT8 module_table[WLAN_MAX_LOG_MODULES];
350864064216a8433360745f69edddce19a606659163The Android Open Source Project
350964064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 1)
351064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
351164064216a8433360745f69edddce19a606659163The Android Open Source Project        print_report_module_desc();
351264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal( "* Use '%d' (max index) to set all table.\n", WLAN_MAX_LOG_MODULES);
351364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
351464064216a8433360745f69edddce19a606659163The Android Open Source Project    else if(!TI_GetReportModule(g_id_adapter, module_table))
351564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
351664064216a8433360745f69edddce19a606659163The Android Open Source Project        if (parm[0].value == WLAN_MAX_LOG_MODULES)
351764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
351864064216a8433360745f69edddce19a606659163The Android Open Source Project            memset(module_table, '1', sizeof(module_table));
351964064216a8433360745f69edddce19a606659163The Android Open Source Project        }
352064064216a8433360745f69edddce19a606659163The Android Open Source Project        else if(parm[0].value < WLAN_MAX_LOG_MODULES)
352164064216a8433360745f69edddce19a606659163The Android Open Source Project        {
352264064216a8433360745f69edddce19a606659163The Android Open Source Project            module_table[parm[0].value] = '1';
352364064216a8433360745f69edddce19a606659163The Android Open Source Project        }
352464064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetReportModule(g_id_adapter, module_table);
352564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
352664064216a8433360745f69edddce19a606659163The Android Open Source Project}
352764064216a8433360745f69edddce19a606659163The Android Open Source Project
352864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_report_clear(ConParm_t parm[], U16 nParms)
352964064216a8433360745f69edddce19a606659163The Android Open Source Project{
353064064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT8 module_table[WLAN_MAX_LOG_MODULES + 1];
353164064216a8433360745f69edddce19a606659163The Android Open Source Project
353264064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 1)
353364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
353464064216a8433360745f69edddce19a606659163The Android Open Source Project        print_report_module_desc();
353564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal( "* Use '%d' (max index) to clear all table.\n", WLAN_MAX_LOG_MODULES);
353664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
353764064216a8433360745f69edddce19a606659163The Android Open Source Project    else if(!TI_GetReportModule(g_id_adapter, module_table))
353864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
353964064216a8433360745f69edddce19a606659163The Android Open Source Project        if (parm[0].value == WLAN_MAX_LOG_MODULES)
354064064216a8433360745f69edddce19a606659163The Android Open Source Project        {
354164064216a8433360745f69edddce19a606659163The Android Open Source Project            memset(module_table, '0', WLAN_MAX_LOG_MODULES);
354264064216a8433360745f69edddce19a606659163The Android Open Source Project        }
354364064216a8433360745f69edddce19a606659163The Android Open Source Project        else if (parm[0].value < WLAN_MAX_LOG_MODULES)
354464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
354564064216a8433360745f69edddce19a606659163The Android Open Source Project            module_table[parm[0].value] = '0';
354664064216a8433360745f69edddce19a606659163The Android Open Source Project        }
354764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetReportModule(g_id_adapter, module_table);
354864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
354964064216a8433360745f69edddce19a606659163The Android Open Source Project}
355064064216a8433360745f69edddce19a606659163The Android Open Source Project
355164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_report_set(ConParm_t parm[], U16 nParms)
355264064216a8433360745f69edddce19a606659163The Android Open Source Project{
355364064216a8433360745f69edddce19a606659163The Android Open Source Project    U8 *ModuleTable = (U8 *)parm[0].value;
355464064216a8433360745f69edddce19a606659163The Android Open Source Project
355564064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 1)
355664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
355764064216a8433360745f69edddce19a606659163The Android Open Source Project        print_report_module_desc();
355864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
355964064216a8433360745f69edddce19a606659163The Android Open Source Project    else
356064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
356164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
356264064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* _WINDOWS */
356364064216a8433360745f69edddce19a606659163The Android Open Source Project
356464064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetReportModule(g_id_adapter, ModuleTable);
356564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
356664064216a8433360745f69edddce19a606659163The Android Open Source Project}
356764064216a8433360745f69edddce19a606659163The Android Open Source Project
356864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_hw_register(ConParm_t parm[], U16 nParms)
356964064216a8433360745f69edddce19a606659163The Android Open Source Project{
357064064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 data;
357164064216a8433360745f69edddce19a606659163The Android Open Source Project
357264064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _WINDOWS
357364064216a8433360745f69edddce19a606659163The Android Open Source Project        usleep(10 * 1000);
357464064216a8433360745f69edddce19a606659163The Android Open Source Project#elif defined (_WINDOWS)
357564064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
357664064216a8433360745f69edddce19a606659163The Android Open Source Project
357764064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 1 )
357864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
357964064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_hwReadRegister(g_id_adapter, parm[0].value, &data ) )
358064064216a8433360745f69edddce19a606659163The Android Open Source Project        {
358164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
358264064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
358364064216a8433360745f69edddce19a606659163The Android Open Source Project        }
358464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
358564064216a8433360745f69edddce19a606659163The Android Open Source Project    else
358664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
358764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_hwWriteRegister(g_id_adapter, parm[0].value, parm[1].value );
358864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
358964064216a8433360745f69edddce19a606659163The Android Open Source Project}
359064064216a8433360745f69edddce19a606659163The Android Open Source Project
359164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_debug_driver_print(ConParm_t parm[], U16 nParms)
359264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
359364064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 func_id = ( nParms > 0 ) ? parm[0].value : 0;
359464064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 opt_param = ( nParms > 1 ) ? parm[1].value : 0;
359564064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 buf[2] = { func_id, opt_param };
359664064216a8433360745f69edddce19a606659163The Android Open Source Project
359764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("DRV_PRINT: FUNC:%u, PARAM:%u\n", func_id, opt_param);
359864064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_DisplayStats(g_id_adapter, (tiUINT8 *) buf, sizeof(buf) );
359964064216a8433360745f69edddce19a606659163The Android Open Source Project        /* tiwlan_driver_debug_print( g_drv_name, func_id, opt_param ); */
360064064216a8433360745f69edddce19a606659163The Android Open Source Project}
360164064216a8433360745f69edddce19a606659163The Android Open Source Project
360264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_debug_buffer_put(ConParm_t parm[], U16 nParms)
360364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
360464064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 func_id = ( nParms > 0 ) ? parm[0].value : 0;
360564064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 opt_param = ( nParms > 1 ) ? parm[1].value : 0;
360664064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT8 buf[260];  /* no more then 256 + func id */
360764064216a8433360745f69edddce19a606659163The Android Open Source Project
360864064216a8433360745f69edddce19a606659163The Android Open Source Project        if (opt_param == 0)
360964064216a8433360745f69edddce19a606659163The Android Open Source Project            return;
361064064216a8433360745f69edddce19a606659163The Android Open Source Project        *(tiUINT32*) buf = func_id;
361164064216a8433360745f69edddce19a606659163The Android Open Source Project        memcpy (buf + sizeof(func_id),(char *)opt_param,strlen((char *)opt_param));
361264064216a8433360745f69edddce19a606659163The Android Open Source Project
361364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("cmd_debug_buffer_put: FUNC:%u, PARAM:%u\n", func_id, opt_param);
361464064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_DisplayStats(g_id_adapter, (tiUINT8 *) buf, strlen((char *)opt_param) +  sizeof(func_id));
361564064216a8433360745f69edddce19a606659163The Android Open Source Project        /* tiwlan_driver_debug_print( g_drv_name, func_id, opt_param ); */
361664064216a8433360745f69edddce19a606659163The Android Open Source Project}
361764064216a8433360745f69edddce19a606659163The Android Open Source Project
361864064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void print_severity_table(tiUINT8 *pTable)
361964064216a8433360745f69edddce19a606659163The Android Open Source Project{
362064064216a8433360745f69edddce19a606659163The Android Open Source Project    int i;
362164064216a8433360745f69edddce19a606659163The Android Open Source Project
362264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Severity:\n");
362364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("-------------------------------\n");
362464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("%14s\tState\t%s\n", "Severity level", "Desc");
362564064216a8433360745f69edddce19a606659163The Android Open Source Project
362664064216a8433360745f69edddce19a606659163The Android Open Source Project    for( i=1; i<SIZE_ARR(report_severity_level); i++ )
362764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
362864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("%d\t%c\t%s\n", report_severity_level[i].level, (pTable[i] == '1') ? '+' : ' ',report_severity_level[i].desc );
362964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
363064064216a8433360745f69edddce19a606659163The Android Open Source Project
363164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal( "* Use '0' to clear all table.\n");
363264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal( "* Use '%d' (max index) to set all table.\n", SIZE_ARR(report_severity_level));
363364064216a8433360745f69edddce19a606659163The Android Open Source Project}
363464064216a8433360745f69edddce19a606659163The Android Open Source Project
363564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_report_severity_table(ConParm_t parm[], U16 nParms)
363664064216a8433360745f69edddce19a606659163The Android Open Source Project{
363764064216a8433360745f69edddce19a606659163The Android Open Source Project    U8 *pSeverityTable = (U8 *)parm[0].value;
363864064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT8 SeverityTable[WLAN_MAX_SEVERITIES];
363964064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
364064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* _WINDOWS */
364164064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 1)
364264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
364364064216a8433360745f69edddce19a606659163The Android Open Source Project        if (!TI_GetReportSeverity( g_id_adapter, &SeverityTable[0]))
364464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
364564064216a8433360745f69edddce19a606659163The Android Open Source Project            print_severity_table(SeverityTable);
364664064216a8433360745f69edddce19a606659163The Android Open Source Project        }
364764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
364864064216a8433360745f69edddce19a606659163The Android Open Source Project    else
364964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
365064064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetReportSeverity(g_id_adapter, pSeverityTable);
365164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
365264064216a8433360745f69edddce19a606659163The Android Open Source Project}
365364064216a8433360745f69edddce19a606659163The Android Open Source Project
365464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_report_severity_level(ConParm_t parm[], U16 nParms)
365564064216a8433360745f69edddce19a606659163The Android Open Source Project{
365664064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT8 SeverityTable[WLAN_MAX_SEVERITIES];
365764064216a8433360745f69edddce19a606659163The Android Open Source Project
365864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Get the current report severity */
365964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (!TI_GetReportSeverity( g_id_adapter, &SeverityTable[0]))
366064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
366164064216a8433360745f69edddce19a606659163The Android Open Source Project        if(nParms == 0)
366264064216a8433360745f69edddce19a606659163The Android Open Source Project        {
366364064216a8433360745f69edddce19a606659163The Android Open Source Project            /* Parameters error - print the current table values */
366464064216a8433360745f69edddce19a606659163The Android Open Source Project            print_severity_table(SeverityTable);
366564064216a8433360745f69edddce19a606659163The Android Open Source Project        }
366664064216a8433360745f69edddce19a606659163The Android Open Source Project        else
366764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
366864064216a8433360745f69edddce19a606659163The Android Open Source Project            if (parm[0].value == 0)
366964064216a8433360745f69edddce19a606659163The Android Open Source Project            {
367064064216a8433360745f69edddce19a606659163The Android Open Source Project                /* Disable all severity levels */
367164064216a8433360745f69edddce19a606659163The Android Open Source Project
367264064216a8433360745f69edddce19a606659163The Android Open Source Project                memset(SeverityTable, (int)('0'), sizeof(SeverityTable));
367364064216a8433360745f69edddce19a606659163The Android Open Source Project
367464064216a8433360745f69edddce19a606659163The Android Open Source Project                TI_SetReportSeverity(g_id_adapter, SeverityTable);
367564064216a8433360745f69edddce19a606659163The Android Open Source Project            }
367664064216a8433360745f69edddce19a606659163The Android Open Source Project            else if (parm[0].value == SIZE_ARR(report_severity_level))
367764064216a8433360745f69edddce19a606659163The Android Open Source Project            {
367864064216a8433360745f69edddce19a606659163The Android Open Source Project                /* Enable all severity levels */
367964064216a8433360745f69edddce19a606659163The Android Open Source Project
368064064216a8433360745f69edddce19a606659163The Android Open Source Project                memset(SeverityTable, (int)('1'), sizeof(SeverityTable));
368164064216a8433360745f69edddce19a606659163The Android Open Source Project
368264064216a8433360745f69edddce19a606659163The Android Open Source Project                TI_SetReportSeverity(g_id_adapter, SeverityTable);
368364064216a8433360745f69edddce19a606659163The Android Open Source Project            }
368464064216a8433360745f69edddce19a606659163The Android Open Source Project            else if (parm[0].value < SIZE_ARR(report_severity_level))
368564064216a8433360745f69edddce19a606659163The Android Open Source Project            {
368664064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("Toggle severity level %#lx\n", parm[0].value);
368764064216a8433360745f69edddce19a606659163The Android Open Source Project
368864064216a8433360745f69edddce19a606659163The Android Open Source Project                if (SeverityTable[parm[0].value] == '1')
368964064216a8433360745f69edddce19a606659163The Android Open Source Project                {
369064064216a8433360745f69edddce19a606659163The Android Open Source Project                    /* The level is enabled - Disable it */
369164064216a8433360745f69edddce19a606659163The Android Open Source Project                    SeverityTable[parm[0].value] = '0';
369264064216a8433360745f69edddce19a606659163The Android Open Source Project                }
369364064216a8433360745f69edddce19a606659163The Android Open Source Project                else
369464064216a8433360745f69edddce19a606659163The Android Open Source Project                {
369564064216a8433360745f69edddce19a606659163The Android Open Source Project                    /* The bit is disabled - Enable it */
369664064216a8433360745f69edddce19a606659163The Android Open Source Project                    SeverityTable[parm[0].value] = '1';
369764064216a8433360745f69edddce19a606659163The Android Open Source Project                }
369864064216a8433360745f69edddce19a606659163The Android Open Source Project
369964064216a8433360745f69edddce19a606659163The Android Open Source Project                TI_SetReportSeverity(g_id_adapter, SeverityTable);
370064064216a8433360745f69edddce19a606659163The Android Open Source Project            }
370164064216a8433360745f69edddce19a606659163The Android Open Source Project            else
370264064216a8433360745f69edddce19a606659163The Android Open Source Project            {
370364064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("invalid level value: %#lx\n", parm[0].value );
370464064216a8433360745f69edddce19a606659163The Android Open Source Project            }
370564064216a8433360745f69edddce19a606659163The Android Open Source Project        }
370664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
370764064216a8433360745f69edddce19a606659163The Android Open Source Project    else
370864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
370964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Error retriving the severity table from the driver\n");
371064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
371164064216a8433360745f69edddce19a606659163The Android Open Source Project}
371264064216a8433360745f69edddce19a606659163The Android Open Source Project
371364064216a8433360745f69edddce19a606659163The Android Open Source Project
371464064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef DRIVER_PROFILING
371564064216a8433360745f69edddce19a606659163The Android Open Source Project
371664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_profile_report(ConParm_t parm[], U16 nParms)
371764064216a8433360745f69edddce19a606659163The Android Open Source Project{
371864064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_ProfileReport( g_id_adapter );
371964064216a8433360745f69edddce19a606659163The Android Open Source Project}
372064064216a8433360745f69edddce19a606659163The Android Open Source Project
372164064216a8433360745f69edddce19a606659163The Android Open Source Project
372264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_profile_cpu_estimator_command(ConParm_t parm[], U16 nParms)
372364064216a8433360745f69edddce19a606659163The Android Open Source Project{
372464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* reset or stop command */
372564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (nParms == 1) {
372664064216a8433360745f69edddce19a606659163The Android Open Source Project        //printf("cpu_profile_cpu_estimator: param[0] = %d\n", (tiUINT8)parm[0].value);
372764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_CpuEstimatorCommand(g_id_adapter, (tiUINT8)parm[0].value, 0);
372864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
372964064216a8433360745f69edddce19a606659163The Android Open Source Project    else /* start command */
373064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
373164064216a8433360745f69edddce19a606659163The Android Open Source Project        //printf("cpu_profile_cpu_estimator: param[0] = %d, param[1] = %d\n",(tiUINT8)parm[0].value,(tiUINT32)parm[1].value);
373264064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_CpuEstimatorCommand(g_id_adapter, (tiUINT8)parm[0].value,(tiUINT32)parm[1].value);
373364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
373464064216a8433360745f69edddce19a606659163The Android Open Source Project}
373564064216a8433360745f69edddce19a606659163The Android Open Source Project
373664064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
373764064216a8433360745f69edddce19a606659163The Android Open Source Project
373864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_report_os_dbg_state(ConParm_t parm[], U16 nParms)
373964064216a8433360745f69edddce19a606659163The Android Open Source Project{
374064064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 dwOsDbgState;
374164064216a8433360745f69edddce19a606659163The Android Open Source Project
374264064216a8433360745f69edddce19a606659163The Android Open Source Project    if(nParms == 0) {
374364064216a8433360745f69edddce19a606659163The Android Open Source Project        if (TI_GetOsDbgState( g_id_adapter, &dwOsDbgState) == TI_RESULT_OK) {
374464064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("OsDbgState %d (0x%08X)\n", dwOsDbgState, dwOsDbgState);
374564064216a8433360745f69edddce19a606659163The Android Open Source Project        }
374664064216a8433360745f69edddce19a606659163The Android Open Source Project        else {
374764064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Error retriving the OsDbgState from the driver\n");
374864064216a8433360745f69edddce19a606659163The Android Open Source Project        }
374964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
375064064216a8433360745f69edddce19a606659163The Android Open Source Project    else {
375164064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetOsDbgState(g_id_adapter, parm[0].value);
375264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
375364064216a8433360745f69edddce19a606659163The Android Open Source Project}
375464064216a8433360745f69edddce19a606659163The Android Open Source Project
375564064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* define TI_DBG */
375664064216a8433360745f69edddce19a606659163The Android Open Source Project
375764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_auth(ConParm_t parm[], U16 nParms)
375864064216a8433360745f69edddce19a606659163The Android Open Source Project{
375964064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms )
376064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
376164064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetAuthenticationMode( g_id_adapter, (tiUINT32)parm[0].value );
376264064216a8433360745f69edddce19a606659163The Android Open Source Project        /*console_printf_terminal("CLI-AuthenticationMode: - %x",(tiUINT32)parm[0].value);*/
376364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
376464064216a8433360745f69edddce19a606659163The Android Open Source Project    else
376564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
376664064216a8433360745f69edddce19a606659163The Android Open Source Project        static named_value_t auth_mode_type[] = {
376764064216a8433360745f69edddce19a606659163The Android Open Source Project            { os802_11AuthModeOpen,             "Open"      },
376864064216a8433360745f69edddce19a606659163The Android Open Source Project            { os802_11AuthModeShared,           "Shared"    },
376964064216a8433360745f69edddce19a606659163The Android Open Source Project            { os802_11AuthModeAutoSwitch,       "AutoSwitch"},
377064064216a8433360745f69edddce19a606659163The Android Open Source Project            { os802_11AuthModeWPA,              "WPA"       },
377164064216a8433360745f69edddce19a606659163The Android Open Source Project            { os802_11AuthModeWPAPSK,           "WPAPSK"    },
377264064216a8433360745f69edddce19a606659163The Android Open Source Project            { os802_11AuthModeWPANone,          "WPANone"   },
377364064216a8433360745f69edddce19a606659163The Android Open Source Project            { os802_11AuthModeWPA2,             "WPA2"      },
377464064216a8433360745f69edddce19a606659163The Android Open Source Project            { os802_11AuthModeWPA2PSK,          "WPA2PSK"   },
377564064216a8433360745f69edddce19a606659163The Android Open Source Project
377664064216a8433360745f69edddce19a606659163The Android Open Source Project            /*{ os802_11AuthModeMax,              "Max"       }*/
377764064216a8433360745f69edddce19a606659163The Android Open Source Project        };
377864064216a8433360745f69edddce19a606659163The Android Open Source Project        OS_802_11_AUTHENTICATION_MODE data;
377964064216a8433360745f69edddce19a606659163The Android Open Source Project
378064064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetAuthenticationMode( g_id_adapter, &data ) )
378164064216a8433360745f69edddce19a606659163The Android Open Source Project        {
378264064216a8433360745f69edddce19a606659163The Android Open Source Project            print_available_values(auth_mode_type);
378364064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("AuthenticationMode=%d\n", data );
378464064216a8433360745f69edddce19a606659163The Android Open Source Project        }
378564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
378664064216a8433360745f69edddce19a606659163The Android Open Source Project}
378764064216a8433360745f69edddce19a606659163The Android Open Source Project
378864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_eap(ConParm_t parm[], U16 nParms)
378964064216a8433360745f69edddce19a606659163The Android Open Source Project{
379064064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms )
379164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
379264064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetEAPType( g_id_adapter, (OS_802_11_EAP_TYPES) parm[0].value );
379364064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetEAPTypeDriver( g_id_adapter, (OS_802_11_EAP_TYPES) parm[0].value );
379464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
379564064216a8433360745f69edddce19a606659163The Android Open Source Project    else
379664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
379764064216a8433360745f69edddce19a606659163The Android Open Source Project        static named_value_t eap_type[] = {
379864064216a8433360745f69edddce19a606659163The Android Open Source Project            { OS_EAP_TYPE_GENERIC_TOKEN_CARD,   "TOKEN" },
379964064216a8433360745f69edddce19a606659163The Android Open Source Project            { OS_EAP_TYPE_TLS,                  "TLS"   },
380064064216a8433360745f69edddce19a606659163The Android Open Source Project            INCLUDE_EXC_TYPE_NAMES
380164064216a8433360745f69edddce19a606659163The Android Open Source Project            { OS_EAP_TYPE_TTLS,                 "TTLS"  },
380264064216a8433360745f69edddce19a606659163The Android Open Source Project            { OS_EAP_TYPE_PEAP,                 "PEAP"  },
380364064216a8433360745f69edddce19a606659163The Android Open Source Project            {OS_EAP_TYPE_MS_CHAP_V2,            "CHAP"  }
380464064216a8433360745f69edddce19a606659163The Android Open Source Project        };
380564064216a8433360745f69edddce19a606659163The Android Open Source Project/*temp_closed
380664064216a8433360745f69edddce19a606659163The Android Open Source Project        OS_802_11_EAP_TYPES data;
380764064216a8433360745f69edddce19a606659163The Android Open Source Project
380864064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetEAPType( g_id_adapter, &data ) )
380964064216a8433360745f69edddce19a606659163The Android Open Source Project        {
381064064216a8433360745f69edddce19a606659163The Android Open Source Project            print_available_values(eap_type);
381164064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("EAP Type = %d\n", data );
381264064216a8433360745f69edddce19a606659163The Android Open Source Project        }
381364064216a8433360745f69edddce19a606659163The Android Open Source Project*/
381464064216a8433360745f69edddce19a606659163The Android Open Source Project    print_available_values(eap_type);
381564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
381664064216a8433360745f69edddce19a606659163The Android Open Source Project
381764064216a8433360745f69edddce19a606659163The Android Open Source Project}
381864064216a8433360745f69edddce19a606659163The Android Open Source Project
381964064216a8433360745f69edddce19a606659163The Android Open Source Project
382064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_encrypt(ConParm_t parm[], U16 nParms)
382164064216a8433360745f69edddce19a606659163The Android Open Source Project{
382264064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_ENCRYPTION_TYPES data;
382364064216a8433360745f69edddce19a606659163The Android Open Source Project   if( nParms )
382464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
382564064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetEncryptionType( g_id_adapter, (OS_802_11_ENCRYPTION_TYPES) parm[0].value );
382664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
382764064216a8433360745f69edddce19a606659163The Android Open Source Project    else
382864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
382964064216a8433360745f69edddce19a606659163The Android Open Source Project        print_available_values(encrypt_type);
383064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Encryption=%d\n", !TI_GetEncryptionType( g_id_adapter, &data ) ? data : -1 );
383164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
383264064216a8433360745f69edddce19a606659163The Android Open Source Project
383364064216a8433360745f69edddce19a606659163The Android Open Source Project}
383464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_credent(ConParm_t parm[], U16 nParms)
383564064216a8433360745f69edddce19a606659163The Android Open Source Project{
383664064216a8433360745f69edddce19a606659163The Android Open Source Project
383764064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 2 )
383864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
383964064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetCredentials(g_id_adapter,(tiCHAR *) parm[0].value, (tiCHAR *) parm[1].value);
384064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
384164064216a8433360745f69edddce19a606659163The Android Open Source Project    else if( nParms == 1 )
384264064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetCredentials(g_id_adapter,(tiCHAR *) parm[0].value, NULL);
384364064216a8433360745f69edddce19a606659163The Android Open Source Project    else
384464064216a8433360745f69edddce19a606659163The Android Open Source Project        return;
384564064216a8433360745f69edddce19a606659163The Android Open Source Project
384664064216a8433360745f69edddce19a606659163The Android Open Source Project}
384764064216a8433360745f69edddce19a606659163The Android Open Source Project
384864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_PSKPassphrase(ConParm_t parm[], U16 nParms)
384964064216a8433360745f69edddce19a606659163The Android Open Source Project{
385064064216a8433360745f69edddce19a606659163The Android Open Source Project    char buf[PSK_BUFF_LEN], *pPassphrase;
385164064216a8433360745f69edddce19a606659163The Android Open Source Project    unsigned int len, is_hex_key = 0;
385264064216a8433360745f69edddce19a606659163The Android Open Source Project
385364064216a8433360745f69edddce19a606659163The Android Open Source Project
385464064216a8433360745f69edddce19a606659163The Android Open Source Project	if( nParms == 0 )
385564064216a8433360745f69edddce19a606659163The Android Open Source Project        return;
385664064216a8433360745f69edddce19a606659163The Android Open Source Project
385764064216a8433360745f69edddce19a606659163The Android Open Source Project	len = strlen((char*)(parm[0].value));
385864064216a8433360745f69edddce19a606659163The Android Open Source Project
385964064216a8433360745f69edddce19a606659163The Android Open Source Project	pPassphrase = (char*)(parm[0].value);
386064064216a8433360745f69edddce19a606659163The Android Open Source Project
386164064216a8433360745f69edddce19a606659163The Android Open Source Project	memset(buf,0,PSK_BUFF_LEN);
386264064216a8433360745f69edddce19a606659163The Android Open Source Project
386364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms >= 2 )
386464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
386564064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
386664064216a8433360745f69edddce19a606659163The Android Open Source Project#else
386764064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !stricmp((char *) parm[1].value, "hex") )
386864064216a8433360745f69edddce19a606659163The Android Open Source Project            is_hex_key = 1;
386964064216a8433360745f69edddce19a606659163The Android Open Source Project        else if(!stricmp((char *) parm[1].value, "text"))
387064064216a8433360745f69edddce19a606659163The Android Open Source Project            is_hex_key = 0;
387164064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
387264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
387364064216a8433360745f69edddce19a606659163The Android Open Source Project
387464064216a8433360745f69edddce19a606659163The Android Open Source Project    if( is_hex_key )
387564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
387664064216a8433360745f69edddce19a606659163The Android Open Source Project		if( len != PSK_HEXA_LENGTH )
387764064216a8433360745f69edddce19a606659163The Android Open Source Project        {
387864064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("The hexa PSKPassphrase must be at length of %d hexa digits \n",PSK_HEXA_LENGTH);
387964064216a8433360745f69edddce19a606659163The Android Open Source Project            return ;
388064064216a8433360745f69edddce19a606659163The Android Open Source Project        }
388164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
388264064216a8433360745f69edddce19a606659163The Android Open Source Project	else
388364064216a8433360745f69edddce19a606659163The Android Open Source Project	{
388464064216a8433360745f69edddce19a606659163The Android Open Source Project		if (len > MAX_PSK_STRING_LENGTH || len < MIN_PSK_STRING_LENGTH)
388564064216a8433360745f69edddce19a606659163The Android Open Source Project		{
388664064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("The PSKPassphrase must be between %d to  %d chars \n", MIN_PSK_STRING_LENGTH, MAX_PSK_STRING_LENGTH);
388764064216a8433360745f69edddce19a606659163The Android Open Source Project            return ;
388864064216a8433360745f69edddce19a606659163The Android Open Source Project        }
388964064216a8433360745f69edddce19a606659163The Android Open Source Project	}
389064064216a8433360745f69edddce19a606659163The Android Open Source Project
389164064216a8433360745f69edddce19a606659163The Android Open Source Project	memcpy(buf, (char*)(parm[0].value), len);
389264064216a8433360745f69edddce19a606659163The Android Open Source Project
389364064216a8433360745f69edddce19a606659163The Android Open Source Project	/*TI_SetPSKPassPhrase*/
389464064216a8433360745f69edddce19a606659163The Android Open Source Project	TI_SetPSK(g_id_adapter, (tiCHAR *)buf);
389564064216a8433360745f69edddce19a606659163The Android Open Source Project}
389664064216a8433360745f69edddce19a606659163The Android Open Source Project
389764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_certificate(ConParm_t parm[], U16 nParms)
389864064216a8433360745f69edddce19a606659163The Android Open Source Project{
389964064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS // TRS:HLC
390064064216a8433360745f69edddce19a606659163The Android Open Source Project#else
390164064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Set sertificate file : %s\n", (char*)parm[0].value);
390264064216a8433360745f69edddce19a606659163The Android Open Source Project    if(nParms == 1 )
390364064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetCertificateParameters(g_id_adapter, (void*)parm[0].value, 0);
390464064216a8433360745f69edddce19a606659163The Android Open Source Project    else if(nParms == 2 )
390564064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetCertificateParameters(g_id_adapter, (void*)parm[0].value,
390664064216a8433360745f69edddce19a606659163The Android Open Source Project                                                   (unsigned int)parm[1].value);
390764064216a8433360745f69edddce19a606659163The Android Open Source Project    else return;
390864064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
390964064216a8433360745f69edddce19a606659163The Android Open Source Project//TRS end
391064064216a8433360745f69edddce19a606659163The Android Open Source Project}
391164064216a8433360745f69edddce19a606659163The Android Open Source Project
391264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_wpa_options(ConParm_t parm[], U16 nParms)
391364064216a8433360745f69edddce19a606659163The Android Open Source Project{
391464064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms )
391564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
391664064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetWpaOptions(g_id_adapter, parm[0].value );
391764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
391864064216a8433360745f69edddce19a606659163The Android Open Source Project    else
391964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
392064064216a8433360745f69edddce19a606659163The Android Open Source Project        tiUINT32 data;
392164064216a8433360745f69edddce19a606659163The Android Open Source Project        static named_value_t wpa_options[] = {
392264064216a8433360745f69edddce19a606659163The Android Open Source Project            { OS_802_11_OPTION_ENABLE_PROMOTE_MODE,   "PROMOTE_MODE" },
392364064216a8433360745f69edddce19a606659163The Android Open Source Project            { OS_802_11_OPTION_ENABLE_PROMOTE_CIPHER, "PROMOTE_CIPHER"   },
392464064216a8433360745f69edddce19a606659163The Android Open Source Project            { OS_802_11_OPTION_ENABLE_ALL,            "All" }
392564064216a8433360745f69edddce19a606659163The Android Open Source Project        };
392664064216a8433360745f69edddce19a606659163The Android Open Source Project
392764064216a8433360745f69edddce19a606659163The Android Open Source Project        print_available_values(wpa_options);
392864064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !TI_GetWpaOptions(g_id_adapter, &data ) )
392964064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("WPA option=%d\n", data );
393064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
393164064216a8433360745f69edddce19a606659163The Android Open Source Project}
393264064216a8433360745f69edddce19a606659163The Android Open Source Project
393364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_getdefaultkey(ConParm_t parm[], U16 nParms)
393464064216a8433360745f69edddce19a606659163The Android Open Source Project{
393564064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 DefaultKeyId;
393664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (OK == TI_GetDefaultWepKey(g_id_adapter, &DefaultKeyId))
393764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("WEP default key ID = %d\n", DefaultKeyId );
393864064216a8433360745f69edddce19a606659163The Android Open Source Project
393964064216a8433360745f69edddce19a606659163The Android Open Source Project}
394064064216a8433360745f69edddce19a606659163The Android Open Source Projectunsigned int char_2_hexa( char c )
394164064216a8433360745f69edddce19a606659163The Android Open Source Project{
394264064216a8433360745f69edddce19a606659163The Android Open Source Project    if( c >= '0' && c <= '9' )
394364064216a8433360745f69edddce19a606659163The Android Open Source Project        return c - '0';
394464064216a8433360745f69edddce19a606659163The Android Open Source Project    else if( tolower(c) >= 'a' && tolower(c) <= 'f' )
394564064216a8433360745f69edddce19a606659163The Android Open Source Project        return tolower(c) - 'a' + 0x0a;
394664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("invalid symbol '%c'\n", c );
394764064216a8433360745f69edddce19a606659163The Android Open Source Project    return (unsigned int) -1;
394864064216a8433360745f69edddce19a606659163The Android Open Source Project}
394964064216a8433360745f69edddce19a606659163The Android Open Source Project
395064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_addkey(ConParm_t parm[], U16 nParms)
395164064216a8433360745f69edddce19a606659163The Android Open Source Project{
395264064216a8433360745f69edddce19a606659163The Android Open Source Project    OS_802_11_WEP data;
395364064216a8433360745f69edddce19a606659163The Android Open Source Project    char *buf;
395464064216a8433360745f69edddce19a606659163The Android Open Source Project    unsigned int i, len, is_hex_key = 1;
395564064216a8433360745f69edddce19a606659163The Android Open Source Project    U32 val, val_l;
395664064216a8433360745f69edddce19a606659163The Android Open Source Project    unsigned int key_id = 0;
395764064216a8433360745f69edddce19a606659163The Android Open Source Project    unsigned int def_flag = 0;
395864064216a8433360745f69edddce19a606659163The Android Open Source Project
395964064216a8433360745f69edddce19a606659163The Android Open Source Project    buf = (char *) parm[0].value;
396064064216a8433360745f69edddce19a606659163The Android Open Source Project
396164064216a8433360745f69edddce19a606659163The Android Open Source Project    key_id = (unsigned int)parm[1].value;
396264064216a8433360745f69edddce19a606659163The Android Open Source Project
396364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( parm[2].value )
396464064216a8433360745f69edddce19a606659163The Android Open Source Project        def_flag = 0x80000000;
396564064216a8433360745f69edddce19a606659163The Android Open Source Project
396664064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms >= 4 )
396764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
396864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
396964064216a8433360745f69edddce19a606659163The Android Open Source Project#else
397064064216a8433360745f69edddce19a606659163The Android Open Source Project        if( !stricmp((char *) parm[3].value, "hex") )
397164064216a8433360745f69edddce19a606659163The Android Open Source Project            is_hex_key = 1;
397264064216a8433360745f69edddce19a606659163The Android Open Source Project        else if(!stricmp((char *) parm[3].value, "text"))
397364064216a8433360745f69edddce19a606659163The Android Open Source Project            is_hex_key = 0;
397464064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
397564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
397664064216a8433360745f69edddce19a606659163The Android Open Source Project
397764064216a8433360745f69edddce19a606659163The Android Open Source Project    memset(data.KeyMaterial,0,sizeof(data.KeyMaterial));
397864064216a8433360745f69edddce19a606659163The Android Open Source Project
397964064216a8433360745f69edddce19a606659163The Android Open Source Project    len = strlen(buf);
398064064216a8433360745f69edddce19a606659163The Android Open Source Project
398164064216a8433360745f69edddce19a606659163The Android Open Source Project    if( is_hex_key )
398264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
398364064216a8433360745f69edddce19a606659163The Android Open Source Project        if( len % 2 )
398464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
398564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("The hexa key should be even length\n");
398664064216a8433360745f69edddce19a606659163The Android Open Source Project            return ;
398764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
398864064216a8433360745f69edddce19a606659163The Android Open Source Project        if(len <= 10) /*10 is number of character for key length 40 bit*/
398964064216a8433360745f69edddce19a606659163The Android Open Source Project            data.KeyLength = 5;
399064064216a8433360745f69edddce19a606659163The Android Open Source Project        else if(len <= 26) /*26 is number of character for key length 128 bit*/
399164064216a8433360745f69edddce19a606659163The Android Open Source Project            data.KeyLength = 13;
399264064216a8433360745f69edddce19a606659163The Android Open Source Project        else if(len <= 58) /*58 is number of character for key length 256 bit*/
399364064216a8433360745f69edddce19a606659163The Android Open Source Project            data.KeyLength = 29;
399464064216a8433360745f69edddce19a606659163The Android Open Source Project        else {
399564064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("**Error key length\n" );
399664064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
399764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
399864064216a8433360745f69edddce19a606659163The Android Open Source Project
399964064216a8433360745f69edddce19a606659163The Android Open Source Project        for( i=0; *buf && i < data.KeyLength; i++ )
400064064216a8433360745f69edddce19a606659163The Android Open Source Project        {
400164064216a8433360745f69edddce19a606659163The Android Open Source Project                val = char_2_hexa(*buf);
400264064216a8433360745f69edddce19a606659163The Android Open Source Project                if( val == (U32) -1 )
400364064216a8433360745f69edddce19a606659163The Android Open Source Project                    return;
400464064216a8433360745f69edddce19a606659163The Android Open Source Project
400564064216a8433360745f69edddce19a606659163The Android Open Source Project                val_l = char_2_hexa(*(++buf));
400664064216a8433360745f69edddce19a606659163The Android Open Source Project                if( val_l == (U32) -1 )
400764064216a8433360745f69edddce19a606659163The Android Open Source Project                    return;
400864064216a8433360745f69edddce19a606659163The Android Open Source Project
400964064216a8433360745f69edddce19a606659163The Android Open Source Project                data.KeyMaterial[i] = (tiUINT8)((val << 4) | val_l);
401064064216a8433360745f69edddce19a606659163The Android Open Source Project                buf++;
401164064216a8433360745f69edddce19a606659163The Android Open Source Project        }
401264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
401364064216a8433360745f69edddce19a606659163The Android Open Source Project    else        /* for ascii key */
401464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
401564064216a8433360745f69edddce19a606659163The Android Open Source Project        if(len <= 5) /*10 is number of character for key length 40 bit*/
401664064216a8433360745f69edddce19a606659163The Android Open Source Project            data.KeyLength = 5;
401764064216a8433360745f69edddce19a606659163The Android Open Source Project        else if(len <= 13) /*26 is number of character for key length 128 bit*/
401864064216a8433360745f69edddce19a606659163The Android Open Source Project            data.KeyLength = 13;
401964064216a8433360745f69edddce19a606659163The Android Open Source Project        else if(len <= 29) /*58 is number of character for key length 256 bit*/
402064064216a8433360745f69edddce19a606659163The Android Open Source Project            data.KeyLength = 29;
402164064216a8433360745f69edddce19a606659163The Android Open Source Project        else {
402264064216a8433360745f69edddce19a606659163The Android Open Source Project                console_printf_terminal("**Error key length\n" );
402364064216a8433360745f69edddce19a606659163The Android Open Source Project                return;
402464064216a8433360745f69edddce19a606659163The Android Open Source Project        }
402564064216a8433360745f69edddce19a606659163The Android Open Source Project        memcpy(data.KeyMaterial, buf, len );
402664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
402764064216a8433360745f69edddce19a606659163The Android Open Source Project
402864064216a8433360745f69edddce19a606659163The Android Open Source Project    data.KeyIndex = def_flag | key_id;
402964064216a8433360745f69edddce19a606659163The Android Open Source Project    data.Length = sizeof(OS_802_11_WEP);
403064064216a8433360745f69edddce19a606659163The Android Open Source Project
403164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef DEBUG_MESSAGES
403264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("cmd_privacy_addkey len = %d, type: %s\nkey:", data.KeyLength, is_hex_key ? "hex" : "text");
403364064216a8433360745f69edddce19a606659163The Android Open Source Project    for(i=0; i<SIZE_ARR(data.KeyMaterial); i++ )
403464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("%02x", (U32) data.KeyMaterial[i]);
403564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("\n");
403664064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /*DEBUG_MESSAGES */
403764064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_AddWEPKey(g_id_adapter, &data);
403864064216a8433360745f69edddce19a606659163The Android Open Source Project}
403964064216a8433360745f69edddce19a606659163The Android Open Source Project
404064064216a8433360745f69edddce19a606659163The Android Open Source Project
404164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_removekey(ConParm_t parm[], U16 nParms)
404264064216a8433360745f69edddce19a606659163The Android Open Source Project{
404364064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_RemoveWEPKey(g_id_adapter, (U32) parm[0].value );
404464064216a8433360745f69edddce19a606659163The Android Open Source Project}
404564064216a8433360745f69edddce19a606659163The Android Open Source Project
404664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_key_type(ConParm_t parm[], U16 nParms)
404764064216a8433360745f69edddce19a606659163The Android Open Source Project{
404864064216a8433360745f69edddce19a606659163The Android Open Source Project
404964064216a8433360745f69edddce19a606659163The Android Open Source Project   if( nParms )
405064064216a8433360745f69edddce19a606659163The Android Open Source Project        {
405164064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetKeyType( g_id_adapter, (OS_802_11_KEY_TYPES)parm[0].value );
405264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("CLI-: KeyType - %x\n",(tiUINT32)parm[0].value);
405364064216a8433360745f69edddce19a606659163The Android Open Source Project        }
405464064216a8433360745f69edddce19a606659163The Android Open Source Project    else
405564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
405664064216a8433360745f69edddce19a606659163The Android Open Source Project        static named_value_t key_type[] = {
405764064216a8433360745f69edddce19a606659163The Android Open Source Project            { OS_KEY_TYPE_STATIC,             "STATIC" },
405864064216a8433360745f69edddce19a606659163The Android Open Source Project            { OS_KEY_TYPE_DYNAMIC,            "DYNAMIC"}
405964064216a8433360745f69edddce19a606659163The Android Open Source Project        };
406064064216a8433360745f69edddce19a606659163The Android Open Source Project
406164064216a8433360745f69edddce19a606659163The Android Open Source Project        print_available_values(key_type);
406264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
406364064216a8433360745f69edddce19a606659163The Android Open Source Project
406464064216a8433360745f69edddce19a606659163The Android Open Source Project}
406564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_privacy_mixed_mode(ConParm_t parm[], U16 nParms)
406664064216a8433360745f69edddce19a606659163The Android Open Source Project{
406764064216a8433360745f69edddce19a606659163The Android Open Source Project    tiBOOL data;
406864064216a8433360745f69edddce19a606659163The Android Open Source Project
406964064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
407064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
407164064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("Mixed Mode: 0 - FALSE, 1 - TRUE\n");
407264064216a8433360745f69edddce19a606659163The Android Open Source Project       data = FALSE;
407364064216a8433360745f69edddce19a606659163The Android Open Source Project       if( !TI_GetMixedMode(g_id_adapter, &data ) );
407464064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("Mixed Mode =%s\n", data ? "True" : "False" );
407564064216a8433360745f69edddce19a606659163The Android Open Source Project
407664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
407764064216a8433360745f69edddce19a606659163The Android Open Source Project    else    /* param <read-only!!> */
407864064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetMixedMode(g_id_adapter, (BOOL) parm[0].value);
407964064216a8433360745f69edddce19a606659163The Android Open Source Project}
408064064216a8433360745f69edddce19a606659163The Android Open Source Project
408164064216a8433360745f69edddce19a606659163The Android Open Source Project
408264064216a8433360745f69edddce19a606659163The Android Open Source Project/************** Roaming Manager functions  ******************/
408364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_enable(ConParm_t parm[], U16 nParms)
408464064216a8433360745f69edddce19a606659163The Android Open Source Project{
408564064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
408664064216a8433360745f69edddce19a606659163The Android Open Source Project    roamingMngrConfigParams.roamingMngrConfig.enableDisable = ROAMING_ENABLED;
408764064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
408864064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Roaming is enabled \n");
408964064216a8433360745f69edddce19a606659163The Android Open Source Project}
409064064216a8433360745f69edddce19a606659163The Android Open Source Project
409164064216a8433360745f69edddce19a606659163The Android Open Source Project
409264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_disable(ConParm_t parm[], U16 nParms)
409364064216a8433360745f69edddce19a606659163The Android Open Source Project{
409464064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
409564064216a8433360745f69edddce19a606659163The Android Open Source Project    roamingMngrConfigParams.roamingMngrConfig.enableDisable = ROAMING_DISABLED;
409664064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
409764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Roaming is disabled \n");
409864064216a8433360745f69edddce19a606659163The Android Open Source Project}
409964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_lowPassFilter(ConParm_t parm[], U16 nParms)
410064064216a8433360745f69edddce19a606659163The Android Open Source Project{
410164064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
410264064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
410364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
410464064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrConfig.lowPassFilterRoamingAttempt = (UINT16) parm[0].value;
410564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
410664064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
410764064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Time in sec to wait before low quality Roaming Triggers, \n lowPassFilterRoamingAttempt = %d sec\n",
410864064216a8433360745f69edddce19a606659163The Android Open Source Project           roamingMngrConfigParams.roamingMngrConfig.lowPassFilterRoamingAttempt);
410964064216a8433360745f69edddce19a606659163The Android Open Source Project}
411064064216a8433360745f69edddce19a606659163The Android Open Source Project
411164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_qualityIndicator(ConParm_t parm[], U16 nParms)
411264064216a8433360745f69edddce19a606659163The Android Open Source Project{
411364064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
411464064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
411564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
411664064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrConfig.apQualityThreshold = (S8) parm[0].value;
411764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
411864064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
411964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Quality indicator (RSSI) to be used when comparing AP List matching quality, \n apQualityThreshold = %d \n",
412064064216a8433360745f69edddce19a606659163The Android Open Source Project           (roamingMngrConfigParams.roamingMngrConfig.apQualityThreshold));
412164064216a8433360745f69edddce19a606659163The Android Open Source Project}
412264064216a8433360745f69edddce19a606659163The Android Open Source Project
412364064216a8433360745f69edddce19a606659163The Android Open Source Project
412464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_dataRetryThreshold(ConParm_t parm[], U16 nParms)
412564064216a8433360745f69edddce19a606659163The Android Open Source Project{
412664064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
412764064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
412864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
412964064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrThresholdsConfig.dataRetryThreshold = (UINT8) parm[0].value;
413064064216a8433360745f69edddce19a606659163The Android Open Source Project
413164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
413264064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
413364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("dataRetryThreshold = %d \n",
413464064216a8433360745f69edddce19a606659163The Android Open Source Project           roamingMngrConfigParams.roamingMngrThresholdsConfig.dataRetryThreshold);
413564064216a8433360745f69edddce19a606659163The Android Open Source Project
413664064216a8433360745f69edddce19a606659163The Android Open Source Project}
413764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_numExpectedTbttForBSSLoss(ConParm_t parm[], U16 nParms)
413864064216a8433360745f69edddce19a606659163The Android Open Source Project{
413964064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
414064064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
414164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
414264064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrThresholdsConfig.numExpectedTbttForBSSLoss =  (UINT8) parm[0].value;
414364064216a8433360745f69edddce19a606659163The Android Open Source Project
414464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
414564064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
414664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Number of expected TBTTs for BSS Loss event, \n numExpectedTbttForBSSLoss = %d \n",
414764064216a8433360745f69edddce19a606659163The Android Open Source Project           roamingMngrConfigParams.roamingMngrThresholdsConfig.numExpectedTbttForBSSLoss);
414864064216a8433360745f69edddce19a606659163The Android Open Source Project
414964064216a8433360745f69edddce19a606659163The Android Open Source Project}
415064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_txRateThreshold(ConParm_t parm[], U16 nParms)
415164064216a8433360745f69edddce19a606659163The Android Open Source Project{
415264064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
415364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
415464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
415564064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrThresholdsConfig.txRateThreshold =  (UINT8) parm[0].value;
415664064216a8433360745f69edddce19a606659163The Android Open Source Project
415764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
415864064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
415964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("txRateThreshold = %d \n",
416064064216a8433360745f69edddce19a606659163The Android Open Source Project           roamingMngrConfigParams.roamingMngrThresholdsConfig.txRateThreshold);
416164064216a8433360745f69edddce19a606659163The Android Open Source Project
416264064216a8433360745f69edddce19a606659163The Android Open Source Project}
416364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_lowRssiThreshold(ConParm_t parm[], U16 nParms)
416464064216a8433360745f69edddce19a606659163The Android Open Source Project{
416564064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
416664064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
416764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
416864064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrThresholdsConfig.lowRssiThreshold =  (S8) parm[0].value;
416964064216a8433360745f69edddce19a606659163The Android Open Source Project
417064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
417164064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
417264064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("lowRssiThreshold = %d \n",
417364064216a8433360745f69edddce19a606659163The Android Open Source Project           (roamingMngrConfigParams.roamingMngrThresholdsConfig.lowRssiThreshold));
417464064216a8433360745f69edddce19a606659163The Android Open Source Project
417564064216a8433360745f69edddce19a606659163The Android Open Source Project}
417664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_lowSnrThreshold(ConParm_t parm[], U16 nParms)
417764064216a8433360745f69edddce19a606659163The Android Open Source Project{
417864064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
417964064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
418064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
418164064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrThresholdsConfig.lowSnrThreshold =  (S8)parm[0].value;
418264064216a8433360745f69edddce19a606659163The Android Open Source Project
418364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
418464064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
418564064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("lowSnrThreshold = %d \n", roamingMngrConfigParams.roamingMngrThresholdsConfig.lowSnrThreshold);
418664064216a8433360745f69edddce19a606659163The Android Open Source Project}
418764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_lowQualityForBackgroungScanCondition(ConParm_t parm[], U16 nParms)
418864064216a8433360745f69edddce19a606659163The Android Open Source Project{
418964064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
419064064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
419164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
419264064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrThresholdsConfig.lowQualityForBackgroungScanCondition = (S8) parm[0].value;
419364064216a8433360745f69edddce19a606659163The Android Open Source Project
419464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
419564064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
419664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Indicator used to increase the background scan period when quality is low, \n lowQualityForBackgroungScanCondition = %d \n",
419764064216a8433360745f69edddce19a606659163The Android Open Source Project           (roamingMngrConfigParams.roamingMngrThresholdsConfig.lowQualityForBackgroungScanCondition));
419864064216a8433360745f69edddce19a606659163The Android Open Source Project
419964064216a8433360745f69edddce19a606659163The Android Open Source Project}
420064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_normalQualityForBackgroungScanCondition(ConParm_t parm[], U16 nParms)
420164064216a8433360745f69edddce19a606659163The Android Open Source Project{
420264064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
420364064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
420464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
420564064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrThresholdsConfig.normalQualityForBackgroungScanCondition = (S8) parm[0].value;
420664064216a8433360745f69edddce19a606659163The Android Open Source Project
420764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
420864064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
420964064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Indicator used to reduce the background scan period when quality is normal, \n normalQualityForBackgroungScanCondition = %d \n",
421064064216a8433360745f69edddce19a606659163The Android Open Source Project           (roamingMngrConfigParams.roamingMngrThresholdsConfig.normalQualityForBackgroungScanCondition));
421164064216a8433360745f69edddce19a606659163The Android Open Source Project
421264064216a8433360745f69edddce19a606659163The Android Open Source Project}
421364064216a8433360745f69edddce19a606659163The Android Open Source Project
421464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_rssiFilterWeight(ConParm_t parm[], U16 nParms)
421564064216a8433360745f69edddce19a606659163The Android Open Source Project{
421664064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
421764064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
421864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
421964064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrThresholdsConfig.rssiFilterWeight =  (UINT8) parm[0].value;
422064064216a8433360745f69edddce19a606659163The Android Open Source Project
422164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
422264064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
422364064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Rssi Filter Weight = %d \n",
422464064216a8433360745f69edddce19a606659163The Android Open Source Project           (roamingMngrConfigParams.roamingMngrThresholdsConfig.rssiFilterWeight));
422564064216a8433360745f69edddce19a606659163The Android Open Source Project}
422664064216a8433360745f69edddce19a606659163The Android Open Source Project
422764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_snrFilterWeight(ConParm_t parm[], U16 nParms)
422864064216a8433360745f69edddce19a606659163The Android Open Source Project{
422964064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
423064064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != 0 )
423164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
423264064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngrConfigParams.roamingMngrThresholdsConfig.snrFilterWeight =  (UINT8) parm[0].value;
423364064216a8433360745f69edddce19a606659163The Android Open Source Project
423464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
423564064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_SetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
423664064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Snr FIlter Weight = %d \n",
423764064216a8433360745f69edddce19a606659163The Android Open Source Project           (roamingMngrConfigParams.roamingMngrThresholdsConfig.snrFilterWeight));
423864064216a8433360745f69edddce19a606659163The Android Open Source Project}
423964064216a8433360745f69edddce19a606659163The Android Open Source Project
424064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_Roaming_getConfParams(ConParm_t parm[], U16 nParms)
424164064216a8433360745f69edddce19a606659163The Android Open Source Project{
424264064216a8433360745f69edddce19a606659163The Android Open Source Project   TI_GetRoamingConfiguration (g_id_adapter, (UINT8*)&roamingMngrConfigParams, sizeof(roamingMngrConfigParams_t));
424364064216a8433360745f69edddce19a606659163The Android Open Source Project
424464064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("Roaming is: %s \n", roamingMngrConfigParams.roamingMngrConfig.enableDisable ? "Enabled" : "Disabled");
424564064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("lowPassFilterRoamingAttempt = %d sec, apQualityThreshold = %d\n",
424664064216a8433360745f69edddce19a606659163The Android Open Source Project          roamingMngrConfigParams.roamingMngrConfig.lowPassFilterRoamingAttempt,
424764064216a8433360745f69edddce19a606659163The Android Open Source Project		  roamingMngrConfigParams.roamingMngrConfig.apQualityThreshold);
424864064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("Roaming Triggers' thresholds are: \n");
424964064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("dataRetryThreshold = %d, lowQualityForBackgroungScanCondition = %d, \
425064064216a8433360745f69edddce19a606659163The Android Open Source ProjectlowRssiThreshold = %d, lowSnrThreshold = %d, normalQualityForBackgroungScanCondition = %d, \
425164064216a8433360745f69edddce19a606659163The Android Open Source ProjectnumExpectedTbttForBSSLoss = %d, txRateThreshold = %d \n",
425264064216a8433360745f69edddce19a606659163The Android Open Source Project          roamingMngrConfigParams.roamingMngrThresholdsConfig.dataRetryThreshold,
425364064216a8433360745f69edddce19a606659163The Android Open Source Project		  roamingMngrConfigParams.roamingMngrThresholdsConfig.lowQualityForBackgroungScanCondition,
425464064216a8433360745f69edddce19a606659163The Android Open Source Project		  roamingMngrConfigParams.roamingMngrThresholdsConfig.lowRssiThreshold,
425564064216a8433360745f69edddce19a606659163The Android Open Source Project          roamingMngrConfigParams.roamingMngrThresholdsConfig.lowSnrThreshold,
425664064216a8433360745f69edddce19a606659163The Android Open Source Project		  roamingMngrConfigParams.roamingMngrThresholdsConfig.normalQualityForBackgroungScanCondition,
425764064216a8433360745f69edddce19a606659163The Android Open Source Project          roamingMngrConfigParams.roamingMngrThresholdsConfig.numExpectedTbttForBSSLoss,
425864064216a8433360745f69edddce19a606659163The Android Open Source Project          roamingMngrConfigParams.roamingMngrThresholdsConfig.txRateThreshold);
425964064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("RSSI / SNR filter weights are: \n");
426064064216a8433360745f69edddce19a606659163The Android Open Source Project   console_printf_terminal("RSSI filter weight = %d, SNR filter weight = %d\n ",
426164064216a8433360745f69edddce19a606659163The Android Open Source Project   		roamingMngrConfigParams.roamingMngrThresholdsConfig.rssiFilterWeight,
426264064216a8433360745f69edddce19a606659163The Android Open Source Project   		roamingMngrConfigParams.roamingMngrThresholdsConfig.snrFilterWeight);
426364064216a8433360745f69edddce19a606659163The Android Open Source Project}
426464064216a8433360745f69edddce19a606659163The Android Open Source Project
426564064216a8433360745f69edddce19a606659163The Android Open Source Project
426664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_bt_coe_enable(ConParm_t parm[], U16 nParms)
426764064216a8433360745f69edddce19a606659163The Android Open Source Project{
426864064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms == 0 )
426964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
427064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Please enter enable value:\n");
427164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("0 - Enable\n");
427264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("1 - Disable\n");
427364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("2 - Auto\n");
427464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
427564064216a8433360745f69edddce19a606659163The Android Open Source Project    else
427664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
427764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetBtCoeEnable(g_id_adapter, parm[0].value);
427864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
427964064216a8433360745f69edddce19a606659163The Android Open Source Project}
428064064216a8433360745f69edddce19a606659163The Android Open Source Project
428164064216a8433360745f69edddce19a606659163The Android Open Source Project
428264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_bt_coe_rate(ConParm_t parm[], U16 nParms)
428364064216a8433360745f69edddce19a606659163The Android Open Source Project{
428464064216a8433360745f69edddce19a606659163The Android Open Source Project    U8 Values[NUM_OF_RATES_IN_SG];
428564064216a8433360745f69edddce19a606659163The Android Open Source Project    U8 Index;
428664064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != NUM_OF_RATES_IN_SG )
428764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
428864064216a8433360745f69edddce19a606659163The Android Open Source Project 		console_printf_terminal("0 - 1Mbps (not recommended)\n");
428964064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("1 - 2Mbps (not recommended)\n");
429064064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("2 - 5.5Mbps\n");
429164064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("3 - 6Mbps\n");
429264064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("4 - 9Mbps\n");
429364064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("5 - 11Mbps\n");
429464064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("6 - 12Mbps\n");
429564064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("7 - 18Mbps\n");
429664064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("8 - 22Mbps (not in use)\n");
429764064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("9 - 24Mbps\n");
429864064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("10 - 36Mbps\n");
429964064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("11 - 48Mbps\n");
430064064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("12 - 54Mbps\n");
430164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
430264064216a8433360745f69edddce19a606659163The Android Open Source Project    else
430364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
430464064216a8433360745f69edddce19a606659163The Android Open Source Project        for (Index = 0; Index < NUM_OF_RATES_IN_SG; Index++ )
430564064216a8433360745f69edddce19a606659163The Android Open Source Project        {
430664064216a8433360745f69edddce19a606659163The Android Open Source Project			Values[Index] = (U8)parm[Index].value;  //TRS:MEB use cast to fix compile warning
430764064216a8433360745f69edddce19a606659163The Android Open Source Project        }
430864064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_SetBtCoeRate(g_id_adapter, Values);
430964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
431064064216a8433360745f69edddce19a606659163The Android Open Source Project}
431164064216a8433360745f69edddce19a606659163The Android Open Source Project
431264064216a8433360745f69edddce19a606659163The Android Open Source Project
431364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_bt_coe_config(ConParm_t parm[], U16 nParms)
431464064216a8433360745f69edddce19a606659163The Android Open Source Project{
431564064216a8433360745f69edddce19a606659163The Android Open Source Project    U32 Values[NUM_OF_CONFIG_PARAMS_IN_SG];
431664064216a8433360745f69edddce19a606659163The Android Open Source Project    U8 Index = 0;
431764064216a8433360745f69edddce19a606659163The Android Open Source Project
431864064216a8433360745f69edddce19a606659163The Android Open Source Project    if( nParms != NUM_OF_CONFIG_PARAMS_IN_SG )
431964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
432064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Please enter valid config values:\n");
432164064216a8433360745f69edddce19a606659163The Android Open Source Project
432264064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Param %d - wlanRxMinRateToRespectBtHp (0 - all,2,5,6,9,11,12,18,22,24,36,48,54)  \n",Index++);
432364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - btHpMaxTime (100 - 15000)\n",Index++);
432464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - wlanHpMaxTime (100 - 15000)\n",Index++);
432564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - senseDisableTimer (100 - 15000)\n",Index++);
432664064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - protectiveRxTimeBeforeBtHp (10 - 2300)\n",Index++);
432764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - protectiveTxTimeBeforeBtHp (10 - 2300)\n",Index++);
432864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - protectiveRxTimeBeforeBtHpFastAp (10 - 20000)\n",Index++);
432964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - protectiveTxTimeBeforeBtHpFastAp (10 - 20000)\n",Index++);
433064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - protectiveWlanCycleTimeForFastAp (2000 - 65535)\n",Index++);
433164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - btAntiStarvationPeriod (0 - 15000) \n",Index++);
433264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - timeoutNextBtLpPacket (400 - 10000)\n",Index++);
433364064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Param %d - wakeUpTimeBeforeBeacon   (0 - 20000)  \n",Index++);
433464064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Param %d - hpdmMaxGuardTime   (0 - 50000)  \n",Index++);
433564064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Param %d - timeoutNextWlanPacket   (100 - 50000)  \n",Index++);
433664064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - sgAntennaType (0 - Single | 1 - Dual | 2 - Single+ )\n",Index++);
433764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - signalingType (0 - Legacy | 1 - Palau | 2 - Other)\n",Index++);
433864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - afhLeverageOn (0 - OFF | 1 - GPIO  | 2 - ON)\n",Index++);
433964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - numberQuietCycle (0 - 10)\n",Index++);
434064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - maxNumCts (0 - 10)\n",Index++);
434164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - numberOfWlanPackets (1 - 10)\n",Index++);
434264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - numberOfBtPackets (2 - 10)\n",Index++);
434364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - numberOfMissedRxForAvalancheTrigger (1 - 255)\n",Index++);
434464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - wlanElpHpSupport (0 - 1)\n",Index++);
434564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - btAntiStarvationNumberOfCyclesWithinThePeriod (0 - 15)  \n",Index++);
434664064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - ackModeDuringBtLpInDualAnt (0 - 1)  \n",Index++);
434764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Param %d - allowPaSdToggleDuringBtActivityEnable (0 - 1)  \n",Index++);
434864064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Param %d - sgAutoModeNoCts   (0 - 1)  \n",Index++);
434964064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Param %d - numOfBtHpRespectedReq   (0 - 20)  \n",Index++);
435064064216a8433360745f69edddce19a606659163The Android Open Source Project   }
435164064216a8433360745f69edddce19a606659163The Android Open Source Project   else
435264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
435364064216a8433360745f69edddce19a606659163The Android Open Source Project        for (Index = 0; Index < NUM_OF_CONFIG_PARAMS_IN_SG; Index++ )
435464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
435564064216a8433360745f69edddce19a606659163The Android Open Source Project            Values[Index] = parm[Index].value;
435664064216a8433360745f69edddce19a606659163The Android Open Source Project        }
435764064216a8433360745f69edddce19a606659163The Android Open Source Project
435864064216a8433360745f69edddce19a606659163The Android Open Source Project		if ( ( (is_value_rate(Values[0])) && (Values[0] != 1) ) || (Values[0] == 0) )
435964064216a8433360745f69edddce19a606659163The Android Open Source Project		{
436064064216a8433360745f69edddce19a606659163The Android Open Source Project			TI_SetBtCoeConfig(g_id_adapter, (tiUINT32 *)Values);
436164064216a8433360745f69edddce19a606659163The Android Open Source Project		}
436264064216a8433360745f69edddce19a606659163The Android Open Source Project		else
436364064216a8433360745f69edddce19a606659163The Android Open Source Project		{
436464064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("Error: Param 26 - wlanRxMinRateToRespectBtHp (0 - all,2,5,6,9,11,12,18,22,24,36,48,54)  \n");
436564064216a8433360745f69edddce19a606659163The Android Open Source Project		}
436664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
436764064216a8433360745f69edddce19a606659163The Android Open Source Project}
436864064216a8433360745f69edddce19a606659163The Android Open Source Project
436964064216a8433360745f69edddce19a606659163The Android Open Source Project
437064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_bt_coe_get_status(ConParm_t parm[], U16 nParms)
437164064216a8433360745f69edddce19a606659163The Android Open Source Project{
437264064216a8433360745f69edddce19a606659163The Android Open Source Project    U32 Values[NUM_OF_STATUS_PARAMS_IN_SG];
437364064216a8433360745f69edddce19a606659163The Android Open Source Project    /* The print is done inside the module */
437464064216a8433360745f69edddce19a606659163The Android Open Source Project    console_printf_terminal("Done by driver - ");
437564064216a8433360745f69edddce19a606659163The Android Open Source Project    if( TI_SetBtCoeGetStatus(g_id_adapter,(tiUINT32 *) Values) == OK ) {
437664064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Ok\n");
437764064216a8433360745f69edddce19a606659163The Android Open Source Project/*      console_printf_terminal("BT Coxistence status: \n\n");
437864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Enable: %d\n", Values[0]);
437964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Rate: %d\n", Values[1]);
438064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("BtSignaling: %d\n", Values[2]);
438164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("BtHPMaxTime: %d\n", Values[3]);
438264064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("WlanHPMaxTime: %d\n", Values[4]);
438364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("WlanEOSMaxPacket: %d\n", Values[5]);
438464064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("WlanEOSMaxPacketTimeOut: %d\n", Values[6]);
438564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("BtPTAMaxPacket: %d\n", Values[7]);
438664064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("BtPTAMaxPacketTimeOut: %d\n", Values[8]);
438764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("WlanSlowAPSocial: %d\n", Values[9]);
438864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("WlanSlowAPMaxCTS: %d\n", Values[10]);
438964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("WlanSlowAPMaxTimeToCTS: %d\n", Values[11]);
439064064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("T8_temporary: %d\n", Values[12]);
439164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("BTtoWLANSwitchTime: %d\n", Values[13]); */
439264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
439364064216a8433360745f69edddce19a606659163The Android Open Source Project    else
439464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
439564064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Fail\n");
439664064216a8433360745f69edddce19a606659163The Android Open Source Project/*      console_printf_terminal("Error reading status!\n"); */
439764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
439864064216a8433360745f69edddce19a606659163The Android Open Source Project}
439964064216a8433360745f69edddce19a606659163The Android Open Source Project
440064064216a8433360745f69edddce19a606659163The Android Open Source Project
440164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_RxPerStart(ConParm_t parm[], U16 nParms)
440264064216a8433360745f69edddce19a606659163The Android Open Source Project{
440364064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT32 Status = TI_PLT_RxPerStart(g_id_adapter);
440464064216a8433360745f69edddce19a606659163The Android Open Source Project	if (Status == OK)
440564064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Plt RX counters started\n");
440664064216a8433360745f69edddce19a606659163The Android Open Source Project	else
440764064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Plt RX counters start failed\n");
440864064216a8433360745f69edddce19a606659163The Android Open Source Project}
440964064216a8433360745f69edddce19a606659163The Android Open Source Project
441064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_RxPerStop(ConParm_t parm[], U16 nParms)
441164064216a8433360745f69edddce19a606659163The Android Open Source Project{
441264064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT32 Status = TI_PLT_RxPerStop(g_id_adapter);
441364064216a8433360745f69edddce19a606659163The Android Open Source Project	if (Status == OK)
441464064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Plt RX counters stoped\n");
441564064216a8433360745f69edddce19a606659163The Android Open Source Project	else
441664064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Plt RX counters stop failed\n");
441764064216a8433360745f69edddce19a606659163The Android Open Source Project}
441864064216a8433360745f69edddce19a606659163The Android Open Source Project
441964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_RxPerClear(ConParm_t parm[], U16 nParms)
442064064216a8433360745f69edddce19a606659163The Android Open Source Project{
442164064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT32 Status = TI_PLT_RxPerClear(g_id_adapter);
442264064216a8433360745f69edddce19a606659163The Android Open Source Project	if (Status == OK)
442364064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Plt RX counters cleard\n");
442464064216a8433360745f69edddce19a606659163The Android Open Source Project	else
442564064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Plt RX counters clear failed\n");
442664064216a8433360745f69edddce19a606659163The Android Open Source Project}
442764064216a8433360745f69edddce19a606659163The Android Open Source Project
442864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_RxPerGet(ConParm_t parm[], U16 nParms)
442964064216a8433360745f69edddce19a606659163The Android Open Source Project{
443064064216a8433360745f69edddce19a606659163The Android Open Source Project	PltRxPer_t PltRxPer;
443164064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT32 Status = TI_PLT_RxPerGetResults(g_id_adapter, &PltRxPer);
443264064216a8433360745f69edddce19a606659163The Android Open Source Project
443364064216a8433360745f69edddce19a606659163The Android Open Source Project	if (Status == OK)
443464064216a8433360745f69edddce19a606659163The Android Open Source Project	{
443564064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("FCSErrorCount = %d\n", PltRxPer.FCSErrorCount);
443664064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("PLCPErrorCount  = %d\n", PltRxPer.PLCPErrorCount);
443764064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("SeqNumMissCount = %d\n", PltRxPer.SeqNumMissCount);
443864064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("TotalFrameCount = %d\n", PltRxPer.TotalFrameCount);
443964064216a8433360745f69edddce19a606659163The Android Open Source Project	}
444064064216a8433360745f69edddce19a606659163The Android Open Source Project	else
444164064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("Plt RX counters Get results failed\n");
444264064216a8433360745f69edddce19a606659163The Android Open Source Project}
444364064216a8433360745f69edddce19a606659163The Android Open Source Project
444464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_RegisterRead(ConParm_t parm[], U16 nParms)
444564064216a8433360745f69edddce19a606659163The Android Open Source Project{
444664064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 RegAddress;
444764064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 RegValue;
444864064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 Status;
444964064216a8433360745f69edddce19a606659163The Android Open Source Project    char* pTmp;
445064064216a8433360745f69edddce19a606659163The Android Open Source Project
445164064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Converting hex string to tiUINT32*/
445264064216a8433360745f69edddce19a606659163The Android Open Source Project    pTmp = (char*)parm[0].value;
445364064216a8433360745f69edddce19a606659163The Android Open Source Project    sscanf(pTmp , "%x", &RegAddress);
445464064216a8433360745f69edddce19a606659163The Android Open Source Project
445564064216a8433360745f69edddce19a606659163The Android Open Source Project    /*Call the API function */
445664064216a8433360745f69edddce19a606659163The Android Open Source Project    Status = TI_PLT_ReadRegister(g_id_adapter, RegAddress, &RegValue);
445764064216a8433360745f69edddce19a606659163The Android Open Source Project    if( Status == OK )
445864064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Reg. %#lx = %#x (%d)\n", RegAddress, RegValue, RegValue );
445964064216a8433360745f69edddce19a606659163The Android Open Source Project}
446064064216a8433360745f69edddce19a606659163The Android Open Source Project
446164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_RegisterWrite(ConParm_t parm[], U16 nParms)
446264064216a8433360745f69edddce19a606659163The Android Open Source Project{
446364064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 RegAddress;
446464064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 RegValue = 0;
446564064216a8433360745f69edddce19a606659163The Android Open Source Project    tiUINT32 Status;
446664064216a8433360745f69edddce19a606659163The Android Open Source Project    char* pTmp;
446764064216a8433360745f69edddce19a606659163The Android Open Source Project
446864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Converting hex string to tiUINT32*/
446964064216a8433360745f69edddce19a606659163The Android Open Source Project    printf("cmd_PLT_RegisterWrite\n");
447064064216a8433360745f69edddce19a606659163The Android Open Source Project    pTmp = (char*)parm[0].value;
447164064216a8433360745f69edddce19a606659163The Android Open Source Project    sscanf(pTmp, "%x", &RegAddress);
447264064216a8433360745f69edddce19a606659163The Android Open Source Project    pTmp = (char*)parm[1].value;
447364064216a8433360745f69edddce19a606659163The Android Open Source Project    sscanf(pTmp , "%x", &RegValue);
447464064216a8433360745f69edddce19a606659163The Android Open Source Project    printf("cmd_PLT_RegisterWrite %x %x\n", RegAddress, RegValue);
447564064216a8433360745f69edddce19a606659163The Android Open Source Project
447664064216a8433360745f69edddce19a606659163The Android Open Source Project    /*Call the API function */
447764064216a8433360745f69edddce19a606659163The Android Open Source Project    Status = TI_PLT_WriteRegister(g_id_adapter, RegAddress, RegValue );
447864064216a8433360745f69edddce19a606659163The Android Open Source Project    if (Status == OK)
447964064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Plt register 0x%x is set to 0x%x OK.\n", RegAddress, RegValue);
448064064216a8433360745f69edddce19a606659163The Android Open Source Project    else
448164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("Plt register 0x%x is set to 0x%x NOK.\n", RegAddress, RegValue);
448264064216a8433360745f69edddce19a606659163The Android Open Source Project
448364064216a8433360745f69edddce19a606659163The Android Open Source Project}
448464064216a8433360745f69edddce19a606659163The Android Open Source Project
448564064216a8433360745f69edddce19a606659163The Android Open Source Project
448664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_TxContinues(ConParm_t parm[], U16 nParms)
448764064216a8433360745f69edddce19a606659163The Android Open Source Project{
448864064216a8433360745f69edddce19a606659163The Android Open Source Project   UINT32 Status;
448964064216a8433360745f69edddce19a606659163The Android Open Source Project   PltTxContinues_t PltTxContinues;
449064064216a8433360745f69edddce19a606659163The Android Open Source Project   if ((nParms == 0) || (nParms > 10))
449164064216a8433360745f69edddce19a606659163The Android Open Source Project   {
449264064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("\n");
449364064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 0 - Band (0 - 2.4Ghz(B/G), 1 - 5Ghz(A), 2 - Japan(4.9Ghz))\n");
449464064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 1 - Channel: (1..14(2.4Ghz), 1..180(5Ghz)) \n");
449564064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 2 - Rate: \n");
449664064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                1  - 1Mbps\n");
449764064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                2  - 2Mbps\n");
449864064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                3  - 5.5Mbps\n");
449964064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                4  - 11Mbps\n");
450064064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                6  - 6Mbps\n");
450164064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                7  - 9Mbps\n");
450264064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                8  - 12Mbps\n");
450364064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                9  - 18Mbps\n");
450464064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                10 - 24Mbps\n");
450564064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                11 - 36Mbps\n");
450664064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                12 - 48Mbps\n");
450764064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("                13 - 54Mbps \n");
450864064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 3 - preamble (0-long, 1-short)\n");
450964064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 4 - Delay between packets (uSec)\n");
451064064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("Param 5 - Number of TX frames (0 - endless)\n");
451164064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("Param 6 - Test mode (5-Random data, 9-ZOZO(0,1,0,1,...))\n");
451264064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("Param 7 - Sequance number mode(0 - fixed, 1 - incremented)\n");
451364064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("Param 8 - packet Data legth [bytes] (0 - 2284)\n");
451464064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("Param 9 - peer mac address: [xx:xx:xx:xx:xx:xx]\n");
451564064216a8433360745f69edddce19a606659163The Android Open Source Project
451664064216a8433360745f69edddce19a606659163The Android Open Source Project   }
451764064216a8433360745f69edddce19a606659163The Android Open Source Project   else
451864064216a8433360745f69edddce19a606659163The Android Open Source Project   {
451964064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltTxContinues.band 	            = (UINT8) parm[0].value;
452064064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltTxContinues.chID   	        = parm[1].value;
452164064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltTxContinues.rate   	        = parm[2].value;
452264064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltTxContinues.preamble	        = (UINT8) parm[3].value;
452364064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltTxContinues.InterPacketDelay  = parm[4].value;
452464064216a8433360745f69edddce19a606659163The Android Open Source Project       PltTxContinues.NumOfFrames       = parm[5].value;
452564064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltTxContinues.mode              = (UINT8) parm[6].value;
452664064216a8433360745f69edddce19a606659163The Android Open Source Project       PltTxContinues.aSeqNumMode       = parm[7].value;
452764064216a8433360745f69edddce19a606659163The Android Open Source Project       PltTxContinues.aPacketLength     = parm[8].value;
452864064216a8433360745f69edddce19a606659163The Android Open Source Project       hexStr2MACAddr( (char*)parm[9].value, &(PltTxContinues.aPeerMacAddr) );
452964064216a8433360745f69edddce19a606659163The Android Open Source Project
453064064216a8433360745f69edddce19a606659163The Android Open Source Project
453164064216a8433360745f69edddce19a606659163The Android Open Source Project	   Status = TI_PLT_TxContiues(g_id_adapter, &PltTxContinues);
453264064216a8433360745f69edddce19a606659163The Android Open Source Project		if (Status == OK)
453364064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("OK\n");
453464064216a8433360745f69edddce19a606659163The Android Open Source Project		else
453564064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("NOK\n");
453664064216a8433360745f69edddce19a606659163The Android Open Source Project
453764064216a8433360745f69edddce19a606659163The Android Open Source Project   }
453864064216a8433360745f69edddce19a606659163The Android Open Source Project}
453964064216a8433360745f69edddce19a606659163The Android Open Source Project
454064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_TxCW(ConParm_t parm[], U16 nParms)
454164064216a8433360745f69edddce19a606659163The Android Open Source Project{
454264064216a8433360745f69edddce19a606659163The Android Open Source Project   UINT32 Status;
454364064216a8433360745f69edddce19a606659163The Android Open Source Project   TestCmdChannelBand_t PltTxCW;
454464064216a8433360745f69edddce19a606659163The Android Open Source Project
454564064216a8433360745f69edddce19a606659163The Android Open Source Project   if ((nParms == 0) || (nParms > 2))
454664064216a8433360745f69edddce19a606659163The Android Open Source Project   {
454764064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 0 - Band (0 - 2.4Ghz(B/G), 1 - 5Ghz(A), 2 - Japan(4.9Ghz))\n");
454864064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 1 - Channel(1..14(2.4Ghz), 1..180(5Ghz))\n");
454964064216a8433360745f69edddce19a606659163The Android Open Source Project   }
455064064216a8433360745f69edddce19a606659163The Android Open Source Project   else
455164064216a8433360745f69edddce19a606659163The Android Open Source Project   {
455264064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltTxCW.band 	= (RadioBand_e) parm[0].value;
455364064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltTxCW.channel 	= (Channel_e) parm[1].value;
455464064216a8433360745f69edddce19a606659163The Android Open Source Project
455564064216a8433360745f69edddce19a606659163The Android Open Source Project	   Status = TI_PLT_TxCW(g_id_adapter, &PltTxCW);
455664064216a8433360745f69edddce19a606659163The Android Open Source Project		if (Status == OK)
455764064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("OK\n");
455864064216a8433360745f69edddce19a606659163The Android Open Source Project		else
455964064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("NOK\n");
456064064216a8433360745f69edddce19a606659163The Android Open Source Project
456164064216a8433360745f69edddce19a606659163The Android Open Source Project   }
456264064216a8433360745f69edddce19a606659163The Android Open Source Project}
456364064216a8433360745f69edddce19a606659163The Android Open Source Project
456464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_TxStop(ConParm_t parm[], U16 nParms)
456564064216a8433360745f69edddce19a606659163The Android Open Source Project{
456664064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT32 Status = TI_PLT_TxStop(g_id_adapter);
456764064216a8433360745f69edddce19a606659163The Android Open Source Project	if (Status == OK)
456864064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("OK\n");
456964064216a8433360745f69edddce19a606659163The Android Open Source Project	else
457064064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("NOK\n");
457164064216a8433360745f69edddce19a606659163The Android Open Source Project}
457264064216a8433360745f69edddce19a606659163The Android Open Source Project
457364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_MIB_CounterTable(ConParm_t parm[], U16 nParms)
457464064216a8433360745f69edddce19a606659163The Android Open Source Project{
457564064216a8433360745f69edddce19a606659163The Android Open Source Project    PLT_MIB_t Mib;
457664064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 Status;
457764064216a8433360745f69edddce19a606659163The Android Open Source Project    memset(&Mib, 0, sizeof(Mib));
457864064216a8433360745f69edddce19a606659163The Android Open Source Project    Mib.aMib = PLT_MIB_countersTable;
457964064216a8433360745f69edddce19a606659163The Android Open Source Project
458064064216a8433360745f69edddce19a606659163The Android Open Source Project    Status = TI_PLT_ReadMIB(g_id_adapter, &Mib);
458164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (Status == OK)
458264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
458364064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("FCS error count= %d \nPLCP  error count = %d\n",
458464064216a8433360745f69edddce19a606659163The Android Open Source Project							   Mib.aData.CounterTable.FCSErrorCount,
458564064216a8433360745f69edddce19a606659163The Android Open Source Project							   Mib.aData.CounterTable.PLCPErrorCount);
458664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
458764064216a8433360745f69edddce19a606659163The Android Open Source Project    else
458864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
458964064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("NOK\n");
459064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
459164064216a8433360745f69edddce19a606659163The Android Open Source Project}
459264064216a8433360745f69edddce19a606659163The Android Open Source Project
459364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_MIB_StationID(ConParm_t parm[], U16 nParms)
459464064216a8433360745f69edddce19a606659163The Android Open Source Project{
459564064216a8433360745f69edddce19a606659163The Android Open Source Project    PLT_MIB_t Mib;
459664064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 Status;
459764064216a8433360745f69edddce19a606659163The Android Open Source Project    memset(&Mib, 0, sizeof(Mib));
459864064216a8433360745f69edddce19a606659163The Android Open Source Project    Mib.aMib = PLT_MIB_dot11StationId;
459964064216a8433360745f69edddce19a606659163The Android Open Source Project
460064064216a8433360745f69edddce19a606659163The Android Open Source Project    Status = TI_PLT_ReadMIB(g_id_adapter, &Mib);
460164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (Status == OK)
460264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
460364064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("MIB_StationID = %02x:%02x:%02x:%02x:%02x:%02x\n",
460464064216a8433360745f69edddce19a606659163The Android Open Source Project                                Mib.aData.StationId.addr[5],
460564064216a8433360745f69edddce19a606659163The Android Open Source Project                                Mib.aData.StationId.addr[4],
460664064216a8433360745f69edddce19a606659163The Android Open Source Project                                Mib.aData.StationId.addr[3],
460764064216a8433360745f69edddce19a606659163The Android Open Source Project                                Mib.aData.StationId.addr[2],
460864064216a8433360745f69edddce19a606659163The Android Open Source Project                                Mib.aData.StationId.addr[1],
460964064216a8433360745f69edddce19a606659163The Android Open Source Project                                Mib.aData.StationId.addr[0]);
461064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
461164064216a8433360745f69edddce19a606659163The Android Open Source Project    else
461264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
461364064216a8433360745f69edddce19a606659163The Android Open Source Project		console_printf_terminal("NOK\n");
461464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
461564064216a8433360745f69edddce19a606659163The Android Open Source Project
461664064216a8433360745f69edddce19a606659163The Android Open Source Project
461764064216a8433360745f69edddce19a606659163The Android Open Source Project}
461864064216a8433360745f69edddce19a606659163The Android Open Source Project
461964064216a8433360745f69edddce19a606659163The Android Open Source Project
462064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_modify_ctsToSelf(ConParm_t parm[], U16 nParms)
462164064216a8433360745f69edddce19a606659163The Android Open Source Project{
462264064216a8433360745f69edddce19a606659163The Android Open Source Project    PLT_MIB_t Mib;
462364064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 Status;
462464064216a8433360745f69edddce19a606659163The Android Open Source Project    memset(&Mib, 0, sizeof(Mib));
462564064216a8433360745f69edddce19a606659163The Android Open Source Project    Mib.aMib = PLT_MIB_ctsToSelf;
462664064216a8433360745f69edddce19a606659163The Android Open Source Project
462764064216a8433360745f69edddce19a606659163The Android Open Source Project	if (nParms != 1)
462864064216a8433360745f69edddce19a606659163The Android Open Source Project	{
462964064216a8433360745f69edddce19a606659163The Android Open Source Project	   console_printf_terminal("CTS to self: [0 - Disable, 1 - Enable]\n");
463064064216a8433360745f69edddce19a606659163The Android Open Source Project	}
463164064216a8433360745f69edddce19a606659163The Android Open Source Project
463264064216a8433360745f69edddce19a606659163The Android Open Source Project	if (nParms == 0) /*Get ctsToSelf */
463364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
463464064216a8433360745f69edddce19a606659163The Android Open Source Project        Status = TI_PLT_ReadMIB(g_id_adapter, &Mib);
463564064216a8433360745f69edddce19a606659163The Android Open Source Project        if (OK == Status)
463664064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("ctsToSelf = %s (%d)\n",
463764064216a8433360745f69edddce19a606659163The Android Open Source Project            Mib.aData.CTSToSelfEnable?"Enable":"Disable",
463864064216a8433360745f69edddce19a606659163The Android Open Source Project            Mib.aData.CTSToSelfEnable);
463964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
464064064216a8433360745f69edddce19a606659163The Android Open Source Project    else if (nParms == 1)
464164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
464264064216a8433360745f69edddce19a606659163The Android Open Source Project        Mib.Length = sizeof(Mib.aData.CTSToSelfEnable);
464364064216a8433360745f69edddce19a606659163The Android Open Source Project        Mib.aData.CTSToSelfEnable = parm[0].value;
464464064216a8433360745f69edddce19a606659163The Android Open Source Project        if (OK != TI_PLT_WriteMIB(g_id_adapter, &Mib))
464564064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("TI_PLT_WriteMIB failed\n");
464664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
464764064216a8433360745f69edddce19a606659163The Android Open Source Project}
464864064216a8433360745f69edddce19a606659163The Android Open Source Project
464964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_arpIpTable(ConParm_t parm[], U16 nParms)
465064064216a8433360745f69edddce19a606659163The Android Open Source Project{
465164064216a8433360745f69edddce19a606659163The Android Open Source Project    PLT_MIB_t Mib;
465264064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 Status;
465364064216a8433360745f69edddce19a606659163The Android Open Source Project    memset(&Mib, 0, sizeof(Mib));
465464064216a8433360745f69edddce19a606659163The Android Open Source Project    Mib.aMib = PLT_MIB_arpIpAddressesTable;
465564064216a8433360745f69edddce19a606659163The Android Open Source Project    Status = TI_PLT_ReadMIB(g_id_adapter, &Mib);
465664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (OK == Status)
465764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
465864064216a8433360745f69edddce19a606659163The Android Open Source Project       int FilteringEnable = Mib.aData.ArpIpAddressesTable.FilteringEnable;
465964064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("ARP IP Table:\n");
466064064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("FilteringEnable: %s (%d)\n",
466164064216a8433360745f69edddce19a606659163The Android Open Source Project           FilteringEnable?"Enable":"Disable",
466264064216a8433360745f69edddce19a606659163The Android Open Source Project           FilteringEnable);
466364064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("ArpIpAddress: %d.%d.%d.%d\n",
466464064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.ArpIpAddressesTable.addr[0],
466564064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.ArpIpAddressesTable.addr[1],
466664064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.ArpIpAddressesTable.addr[2],
466764064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.ArpIpAddressesTable.addr[3]
466864064216a8433360745f69edddce19a606659163The Android Open Source Project           );
466964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
467064064216a8433360745f69edddce19a606659163The Android Open Source Project}
467164064216a8433360745f69edddce19a606659163The Android Open Source Project
467264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_get_GroupAddressTable(ConParm_t parm[], U16 nParms)
467364064216a8433360745f69edddce19a606659163The Android Open Source Project{
467464064216a8433360745f69edddce19a606659163The Android Open Source Project    PLT_MIB_t Mib;
467564064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32 Status;
467664064216a8433360745f69edddce19a606659163The Android Open Source Project    memset(&Mib, 0, sizeof(Mib));
467764064216a8433360745f69edddce19a606659163The Android Open Source Project    Mib.aMib = PLT_MIB_dot11GroupAddressesTable;
467864064216a8433360745f69edddce19a606659163The Android Open Source Project    Status = TI_PLT_ReadMIB(g_id_adapter, &Mib);
467964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (OK == Status)
468064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
468164064216a8433360745f69edddce19a606659163The Android Open Source Project       int FilteringEnable = Mib.aData.GroupAddressTable.bFilteringEnable;
468264064216a8433360745f69edddce19a606659163The Android Open Source Project       int i;
468364064216a8433360745f69edddce19a606659163The Android Open Source Project
468464064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("Group addresses Table:\n");
468564064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("FilteringEnable: %s (%d)\n",
468664064216a8433360745f69edddce19a606659163The Android Open Source Project           FilteringEnable?"Enable":"Disable",
468764064216a8433360745f69edddce19a606659163The Android Open Source Project           FilteringEnable);
468864064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("nNumberOfAddresses: %d\n", Mib.aData.GroupAddressTable.nNumberOfAddresses);
468964064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("Group addresses: \n");
469064064216a8433360745f69edddce19a606659163The Android Open Source Project
469164064216a8433360745f69edddce19a606659163The Android Open Source Project       for (i=0; i<Mib.aData.GroupAddressTable.nNumberOfAddresses; i++)
469264064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("%x:%x:%x:%x:%x:%x\n",
469364064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.GroupAddressTable.GroupTable[i].addr[0],
469464064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.GroupAddressTable.GroupTable[i].addr[1],
469564064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.GroupAddressTable.GroupTable[i].addr[2],
469664064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.GroupAddressTable.GroupTable[i].addr[3],
469764064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.GroupAddressTable.GroupTable[i].addr[4],
469864064216a8433360745f69edddce19a606659163The Android Open Source Project           Mib.aData.GroupAddressTable.GroupTable[i].addr[5]
469964064216a8433360745f69edddce19a606659163The Android Open Source Project           );
470064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
470164064216a8433360745f69edddce19a606659163The Android Open Source Project}
470264064216a8433360745f69edddce19a606659163The Android Open Source Project
470364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_TxCalGainGet(ConParm_t parm[], U16 nParms)
470464064216a8433360745f69edddce19a606659163The Android Open Source Project{
470564064216a8433360745f69edddce19a606659163The Android Open Source Project   UINT32 Status;
470664064216a8433360745f69edddce19a606659163The Android Open Source Project   PltGainGet_t PLTGainGet;
470764064216a8433360745f69edddce19a606659163The Android Open Source Project
470864064216a8433360745f69edddce19a606659163The Android Open Source Project   Status = TI_PLT_TxCalGainGet(g_id_adapter, &PLTGainGet);
470964064216a8433360745f69edddce19a606659163The Android Open Source Project   if (Status == OK)
471064064216a8433360745f69edddce19a606659163The Android Open Source Project   {
471164064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("\n");
471264064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("TxGain: %d(0x%x)\n", PLTGainGet.TxGain, PLTGainGet.TxGain);
471364064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("TxUpperBound: %d(0x%x)\n", PLTGainGet.TxUpperBound, PLTGainGet.TxUpperBound);
471464064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("TxLowerBound: %d(0x%x)\n", PLTGainGet.TxLowerBound, PLTGainGet.TxLowerBound);
471564064216a8433360745f69edddce19a606659163The Android Open Source Project   }
471664064216a8433360745f69edddce19a606659163The Android Open Source Project   else
471764064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("NOK\n");
471864064216a8433360745f69edddce19a606659163The Android Open Source Project}
471964064216a8433360745f69edddce19a606659163The Android Open Source Project
472064064216a8433360745f69edddce19a606659163The Android Open Source Project
472164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_TxCalGainAdjust(ConParm_t parm[], U16 nParms)
472264064216a8433360745f69edddce19a606659163The Android Open Source Project{
472364064216a8433360745f69edddce19a606659163The Android Open Source Project   UINT32 Status;
472464064216a8433360745f69edddce19a606659163The Android Open Source Project   UINT32 GainChange;
472564064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_POWER_LEVELS mode;
472664064216a8433360745f69edddce19a606659163The Android Open Source Project
472764064216a8433360745f69edddce19a606659163The Android Open Source Project
472864064216a8433360745f69edddce19a606659163The Android Open Source Project   if ((nParms == 0) || (nParms > 1))
472964064216a8433360745f69edddce19a606659163The Android Open Source Project   {
473064064216a8433360745f69edddce19a606659163The Android Open Source Project	   console_printf_terminal("\n");
473164064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("Param 0 - Gain change (db)\n");
473264064216a8433360745f69edddce19a606659163The Android Open Source Project   }
473364064216a8433360745f69edddce19a606659163The Android Open Source Project   else
473464064216a8433360745f69edddce19a606659163The Android Open Source Project   {
473564064216a8433360745f69edddce19a606659163The Android Open Source Project       GainChange = parm[0].value;
473664064216a8433360745f69edddce19a606659163The Android Open Source Project
473764064216a8433360745f69edddce19a606659163The Android Open Source Project        /* Check Power mode (works only in "awake" mode !!!) */
473864064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_GetPowerLevelDefault(g_id_adapter, &mode );
473964064216a8433360745f69edddce19a606659163The Android Open Source Project        if(mode == OS_POWER_LEVEL_AWAKE)
474064064216a8433360745f69edddce19a606659163The Android Open Source Project        {
474164064216a8433360745f69edddce19a606659163The Android Open Source Project	   Status = TI_PLT_TxCalGainAdjust(g_id_adapter, GainChange);
474264064216a8433360745f69edddce19a606659163The Android Open Source Project		    if (Status == OK)
474364064216a8433360745f69edddce19a606659163The Android Open Source Project			    console_printf_terminal("OK\n");
474464064216a8433360745f69edddce19a606659163The Android Open Source Project		    else
474564064216a8433360745f69edddce19a606659163The Android Open Source Project			    console_printf_terminal("NOK\n");
474664064216a8433360745f69edddce19a606659163The Android Open Source Project        }
474764064216a8433360745f69edddce19a606659163The Android Open Source Project        else
474864064216a8433360745f69edddce19a606659163The Android Open Source Project        {
474964064216a8433360745f69edddce19a606659163The Android Open Source Project	        console_printf_terminal("Gain Adjust was not performed becouse Default power-mode is not AWAKE\n");
475064064216a8433360745f69edddce19a606659163The Android Open Source Project	        console_printf_terminal("Please change defaultPowerLevel parametr in tiwlan.ini file first\n");
475164064216a8433360745f69edddce19a606659163The Android Open Source Project        }
475264064216a8433360745f69edddce19a606659163The Android Open Source Project   }
475364064216a8433360745f69edddce19a606659163The Android Open Source Project}
475464064216a8433360745f69edddce19a606659163The Android Open Source Project
475564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_TxCalStart(ConParm_t parm[], U16 nParms)
475664064216a8433360745f69edddce19a606659163The Android Open Source Project{
475764064216a8433360745f69edddce19a606659163The Android Open Source Project       UINT32 Status;
475864064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltTxCalibrationRequest_t tTxStart;
475964064216a8433360745f69edddce19a606659163The Android Open Source Project
476064064216a8433360745f69edddce19a606659163The Android Open Source Project	   if (nParms != 1)
476164064216a8433360745f69edddce19a606659163The Android Open Source Project	   {
476264064216a8433360745f69edddce19a606659163The Android Open Source Project		   console_printf_terminal("\nParam 0 - Tx Power [0-255]\n");
476364064216a8433360745f69edddce19a606659163The Android Open Source Project	   }
476464064216a8433360745f69edddce19a606659163The Android Open Source Project	   else
476564064216a8433360745f69edddce19a606659163The Android Open Source Project	   {
476664064216a8433360745f69edddce19a606659163The Android Open Source Project        /* use U8 cast to fix compile warning */
476764064216a8433360745f69edddce19a606659163The Android Open Source Project		   tTxStart.refTxPower = (U8)parm[0].value;
476864064216a8433360745f69edddce19a606659163The Android Open Source Project		   Status = TI_PLT_TxCalStart(g_id_adapter,&tTxStart);
476964064216a8433360745f69edddce19a606659163The Android Open Source Project		   if (Status == OK)
477064064216a8433360745f69edddce19a606659163The Android Open Source Project			   console_printf_terminal("OK\n");
477164064216a8433360745f69edddce19a606659163The Android Open Source Project		   else
477264064216a8433360745f69edddce19a606659163The Android Open Source Project			   console_printf_terminal("NOK\n");
477364064216a8433360745f69edddce19a606659163The Android Open Source Project	   }
477464064216a8433360745f69edddce19a606659163The Android Open Source Project}
477564064216a8433360745f69edddce19a606659163The Android Open Source Project
477664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_TxCalStop(ConParm_t parm[], U16 nParms)
477764064216a8433360745f69edddce19a606659163The Android Open Source Project{
477864064216a8433360745f69edddce19a606659163The Android Open Source Project       UINT32 Status;
477964064216a8433360745f69edddce19a606659163The Android Open Source Project
478064064216a8433360745f69edddce19a606659163The Android Open Source Project	   Status = TI_PLT_TxCalStop(g_id_adapter);
478164064216a8433360745f69edddce19a606659163The Android Open Source Project       if (Status == OK)
478264064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal("OK\n");
478364064216a8433360745f69edddce19a606659163The Android Open Source Project       else
478464064216a8433360745f69edddce19a606659163The Android Open Source Project           console_printf_terminal("NOK\n");
478564064216a8433360745f69edddce19a606659163The Android Open Source Project}
478664064216a8433360745f69edddce19a606659163The Android Open Source Project
478764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_RxTxCalNVSUpdateBuffer(ConParm_t parm[], U16 nParms)
478864064216a8433360745f69edddce19a606659163The Android Open Source Project{
478964064216a8433360745f69edddce19a606659163The Android Open Source Project   UINT32 Status;
479064064216a8433360745f69edddce19a606659163The Android Open Source Project   PltNvsResultsBuffer_t PltNvsResultsBuffer;
479164064216a8433360745f69edddce19a606659163The Android Open Source Project   int i;
479264064216a8433360745f69edddce19a606659163The Android Open Source Project
479364064216a8433360745f69edddce19a606659163The Android Open Source Project   memset(&PltNvsResultsBuffer, 0, sizeof(PltNvsResultsBuffer));
479464064216a8433360745f69edddce19a606659163The Android Open Source Project   Status = TI_PLT_RxTxCalNVSUpdateBuffer(g_id_adapter, &PltNvsResultsBuffer);
479564064216a8433360745f69edddce19a606659163The Android Open Source Project   if (Status == OK)
479664064216a8433360745f69edddce19a606659163The Android Open Source Project   {
479764064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("NVSUpdateBuffer -  number of tables:%d\n", PltNvsResultsBuffer.numOfTables);
479864064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("# \t Offset\t Size\t Data\n");
479964064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("###################################################################\n");
480064064216a8433360745f69edddce19a606659163The Android Open Source Project       for (i=0; (i<PltNvsResultsBuffer.numOfTables) && (i<NVS_RESULTS_MAX_NUM_OF_TABLES); i++)
480164064216a8433360745f69edddce19a606659163The Android Open Source Project       {
480264064216a8433360745f69edddce19a606659163The Android Open Source Project        int j;
480364064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("#%d\t %p\t %.4d\t ",
480464064216a8433360745f69edddce19a606659163The Android Open Source Project                                i,
480564064216a8433360745f69edddce19a606659163The Android Open Source Project                                PltNvsResultsBuffer.tables[i].offset,
480664064216a8433360745f69edddce19a606659163The Android Open Source Project                                PltNvsResultsBuffer.tables[i].size);
480764064216a8433360745f69edddce19a606659163The Android Open Source Project        for (j=0; (j<PltNvsResultsBuffer.tables[i].size) && (j<NVS_RESULTS_MAX_UPDATE_TABLE_SIZE); j++)
480864064216a8433360745f69edddce19a606659163The Android Open Source Project        {
480964064216a8433360745f69edddce19a606659163The Android Open Source Project            console_printf_terminal("%.2x ", PltNvsResultsBuffer.tables[i].data[j]);
481064064216a8433360745f69edddce19a606659163The Android Open Source Project        }
481164064216a8433360745f69edddce19a606659163The Android Open Source Project        console_printf_terminal("\n");
481264064216a8433360745f69edddce19a606659163The Android Open Source Project       }
481364064216a8433360745f69edddce19a606659163The Android Open Source Project   }
481464064216a8433360745f69edddce19a606659163The Android Open Source Project   else
481564064216a8433360745f69edddce19a606659163The Android Open Source Project       console_printf_terminal("NOK\n");
481664064216a8433360745f69edddce19a606659163The Android Open Source Project}
481764064216a8433360745f69edddce19a606659163The Android Open Source Project
481864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_RxCal(ConParm_t parm[], U16 nParms)
481964064216a8433360745f69edddce19a606659163The Android Open Source Project{
482064064216a8433360745f69edddce19a606659163The Android Open Source Project   UINT32 Status;
482164064216a8433360745f69edddce19a606659163The Android Open Source Project   PltRxCalibrationRequest_t PltRxCalibrationRequest;
482264064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_POWER_LEVELS mode;
482364064216a8433360745f69edddce19a606659163The Android Open Source Project
482464064216a8433360745f69edddce19a606659163The Android Open Source Project   if ((nParms == 0) || (nParms > 5))
482564064216a8433360745f69edddce19a606659163The Android Open Source Project   {
482664064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("\n");
482764064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 0 - Expected Rssi (db)\n");
482864064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 1 - Channel\n");
482964064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 2 - Band (0 - 2.4Ghz(B/G), 1 - 5Ghz(A), 2 - Japan(4.9Ghz)\n");
483064064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("Param 3 - Interval between samples(uSec) [100]\n");
483164064216a8433360745f69edddce19a606659163The Android Open Source Project      console_printf_terminal("Param 4 - Number of samples [1000]\n");
483264064216a8433360745f69edddce19a606659163The Android Open Source Project   }
483364064216a8433360745f69edddce19a606659163The Android Open Source Project   else
483464064216a8433360745f69edddce19a606659163The Android Open Source Project   {
483564064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltRxCalibrationRequest.expectedRssi	= parm[0].value;
483664064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltRxCalibrationRequest.channel = (UINT8)parm[1].value;
483764064216a8433360745f69edddce19a606659163The Android Open Source Project	   PltRxCalibrationRequest.band = (UINT8)parm[2].value;
483864064216a8433360745f69edddce19a606659163The Android Open Source Project       PltRxCalibrationRequest.intervalBetweenSamplesUsec = parm[3].value;
483964064216a8433360745f69edddce19a606659163The Android Open Source Project       PltRxCalibrationRequest.numOfSamples = (UINT16)parm[4].value;
484064064216a8433360745f69edddce19a606659163The Android Open Source Project
484164064216a8433360745f69edddce19a606659163The Android Open Source Project        /* Check Power mode (works only in "awake" mode !!!) */
484264064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_GetPowerLevelDefault(g_id_adapter, &mode );
484364064216a8433360745f69edddce19a606659163The Android Open Source Project        if(mode == OS_POWER_LEVEL_AWAKE)
484464064216a8433360745f69edddce19a606659163The Android Open Source Project        {
484564064216a8433360745f69edddce19a606659163The Android Open Source Project	        Status = TI_PLT_RxCal(g_id_adapter, &PltRxCalibrationRequest);
484664064216a8433360745f69edddce19a606659163The Android Open Source Project	        if (Status == OK)
484764064216a8433360745f69edddce19a606659163The Android Open Source Project		        console_printf_terminal("OK\n");
484864064216a8433360745f69edddce19a606659163The Android Open Source Project	        else
484964064216a8433360745f69edddce19a606659163The Android Open Source Project		        console_printf_terminal("NOK\n");
485064064216a8433360745f69edddce19a606659163The Android Open Source Project        }
485164064216a8433360745f69edddce19a606659163The Android Open Source Project        else
485264064216a8433360745f69edddce19a606659163The Android Open Source Project        {
485364064216a8433360745f69edddce19a606659163The Android Open Source Project	        console_printf_terminal("Rx calibration was not performed becouse Default power-mode is not AWAKE\n");
485464064216a8433360745f69edddce19a606659163The Android Open Source Project	        console_printf_terminal("Please change defaultPowerLevel parametr in tiwlan.ini file first\n");
485564064216a8433360745f69edddce19a606659163The Android Open Source Project        }
485664064216a8433360745f69edddce19a606659163The Android Open Source Project   }
485764064216a8433360745f69edddce19a606659163The Android Open Source Project}
485864064216a8433360745f69edddce19a606659163The Android Open Source Project
485964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid cmd_PLT_RadioTune(ConParm_t parm[], U16 nParms)
486064064216a8433360745f69edddce19a606659163The Android Open Source Project{
486164064216a8433360745f69edddce19a606659163The Android Open Source Project   UINT32 Status;
486264064216a8433360745f69edddce19a606659163The Android Open Source Project   TestCmdChannelBand_t ChannelBand;
486364064216a8433360745f69edddce19a606659163The Android Open Source Project   OS_802_11_POWER_LEVELS mode;
486464064216a8433360745f69edddce19a606659163The Android Open Source Project
486564064216a8433360745f69edddce19a606659163The Android Open Source Project
486664064216a8433360745f69edddce19a606659163The Android Open Source Project   if ((nParms == 0) || (nParms > 2))
486764064216a8433360745f69edddce19a606659163The Android Open Source Project   {
486864064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 0 - Band (0-2.4Ghz, 1-5Ghz, 2-4.9Ghz)\n");
486964064216a8433360745f69edddce19a606659163The Android Open Source Project	  console_printf_terminal("Param 1 - Channel\n");
487064064216a8433360745f69edddce19a606659163The Android Open Source Project   }
487164064216a8433360745f69edddce19a606659163The Android Open Source Project   else
487264064216a8433360745f69edddce19a606659163The Android Open Source Project   {
487364064216a8433360745f69edddce19a606659163The Android Open Source Project	   ChannelBand.band 	= (RadioBand_e) parm[0].value;
487464064216a8433360745f69edddce19a606659163The Android Open Source Project	   ChannelBand.channel 	= (Channel_e) parm[1].value;
487564064216a8433360745f69edddce19a606659163The Android Open Source Project
487664064216a8433360745f69edddce19a606659163The Android Open Source Project	    /* Check Power mode (works only in "awake" mode !!!) */
487764064216a8433360745f69edddce19a606659163The Android Open Source Project        TI_GetPowerLevelDefault(g_id_adapter, &mode );
487864064216a8433360745f69edddce19a606659163The Android Open Source Project		if(mode == OS_POWER_LEVEL_AWAKE)
487964064216a8433360745f69edddce19a606659163The Android Open Source Project		{
488064064216a8433360745f69edddce19a606659163The Android Open Source Project			Status = TI_PLT_RadioTune(g_id_adapter, &ChannelBand);
488164064216a8433360745f69edddce19a606659163The Android Open Source Project			if (Status == OK)
488264064216a8433360745f69edddce19a606659163The Android Open Source Project				console_printf_terminal("OK\n");
488364064216a8433360745f69edddce19a606659163The Android Open Source Project			else
488464064216a8433360745f69edddce19a606659163The Android Open Source Project				console_printf_terminal("NOK\n");
488564064216a8433360745f69edddce19a606659163The Android Open Source Project		}
488664064216a8433360745f69edddce19a606659163The Android Open Source Project		else
488764064216a8433360745f69edddce19a606659163The Android Open Source Project		{
488864064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("Radio tune was not performed becouse Default power-mode is not AWAKE\n");
488964064216a8433360745f69edddce19a606659163The Android Open Source Project			console_printf_terminal("Please change defaultPowerLevel parametr in tiwlan.ini file first\n");
489064064216a8433360745f69edddce19a606659163The Android Open Source Project		}
489164064216a8433360745f69edddce19a606659163The Android Open Source Project	}
489264064216a8433360745f69edddce19a606659163The Android Open Source Project}
489364064216a8433360745f69edddce19a606659163The Android Open Source Project
489464064216a8433360745f69edddce19a606659163The Android Open Source Project
489564064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef _WINDOWS
489664064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* ifdef _WINDOWS */
4897