1/*
2 * Copyright (c) 2004-2005 Atheros Communications Inc.
3 * All rights reserved.
4 *
5 *
6 * $ATH_LICENSE_HOSTSDK0_C$
7 *
8 */
9
10#ifndef  TESTCMD_H_
11#define  TESTCMD_H_
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17typedef enum {
18    ZEROES_PATTERN = 0,
19    ONES_PATTERN,
20    REPEATING_10,
21    PN7_PATTERN,
22    PN9_PATTERN,
23    PN15_PATTERN
24}TX_DATA_PATTERN;
25
26/* Continous tx
27   mode : TCMD_CONT_TX_OFF - Disabling continous tx
28          TCMD_CONT_TX_SINE - Enable continuous unmodulated tx
29          TCMD_CONT_TX_FRAME- Enable continuous modulated tx
30   freq : Channel freq in Mhz. (e.g 2412 for channel 1 in 11 g)
31dataRate: 0 - 1 Mbps
32          1 - 2 Mbps
33          2 - 5.5 Mbps
34          3 - 11 Mbps
35          4 - 6 Mbps
36          5 - 9 Mbps
37          6 - 12 Mbps
38          7 - 18 Mbps
39          8 - 24 Mbps
40          9 - 36 Mbps
41         10 - 28 Mbps
42         11 - 54 Mbps
43  txPwr: Tx power in dBm[5 -11] for unmod Tx, [5-14] for mod Tx
44antenna:  1 - one antenna
45          2 - two antenna
46Note : Enable/disable continuous tx test cmd works only when target is awake.
47*/
48
49typedef enum {
50    TCMD_CONT_TX_OFF = 0,
51    TCMD_CONT_TX_SINE,
52    TCMD_CONT_TX_FRAME,
53    TCMD_CONT_TX_TX99,
54    TCMD_CONT_TX_TX100
55} TCMD_CONT_TX_MODE;
56
57typedef PREPACK struct {
58    A_UINT32                 testCmdId;
59    A_UINT32                mode;
60    A_UINT32                freq;
61    A_UINT32                dataRate;
62    A_INT32                 txPwr;
63    A_UINT32                antenna;
64    A_UINT32                enANI;
65    A_UINT32                scramblerOff;
66    A_UINT32                aifsn;
67    A_UINT16                pktSz;
68    A_UINT16                txPattern;
69} POSTPACK TCMD_CONT_TX;
70
71#define TCMD_TXPATTERN_ZERONE                 0x1
72#define TCMD_TXPATTERN_ZERONE_DIS_SCRAMBLE    0x2
73
74/* Continuous Rx
75 act: TCMD_CONT_RX_PROMIS - promiscuous mode (accept all incoming frames)
76      TCMD_CONT_RX_FILTER - filter mode (accept only frames with dest
77                                             address equal specified
78                                             mac address (set via act =3)
79      TCMD_CONT_RX_REPORT  off mode  (disable cont rx mode and get the
80                                          report from the last cont
81                                          Rx test)
82
83     TCMD_CONT_RX_SETMAC - set MacAddr mode (sets the MAC address for the
84                                                 target. This Overrides
85                                                 the default MAC address.)
86
87*/
88typedef enum {
89    TCMD_CONT_RX_PROMIS =0,
90    TCMD_CONT_RX_FILTER,
91    TCMD_CONT_RX_REPORT,
92    TCMD_CONT_RX_SETMAC
93} TCMD_CONT_RX_ACT;
94
95typedef PREPACK struct {
96    A_UINT32         testCmdId;
97    A_UINT32        act;
98    A_UINT32        enANI;
99    PREPACK union {
100        struct PREPACK TCMD_CONT_RX_PARA {
101            A_UINT32    freq;
102            A_UINT32    antenna;
103        } POSTPACK para;
104        struct PREPACK TCMD_CONT_RX_REPORT {
105            A_UINT32    totalPkt;
106            A_INT32    rssiInDBm;
107        } POSTPACK report;
108        struct PREPACK TCMD_CONT_RX_MAC {
109            A_UCHAR    addr[ATH_MAC_LEN];
110        } POSTPACK mac;
111    } POSTPACK u;
112} POSTPACK TCMD_CONT_RX;
113
114/* Force sleep/wake  test cmd
115 mode: TCMD_PM_WAKEUP - Wakeup the target
116       TCMD_PM_SLEEP - Force the target to sleep.
117 */
118typedef enum {
119    TCMD_PM_WAKEUP = 1, /* be consistent with target */
120    TCMD_PM_SLEEP
121} TCMD_PM_MODE;
122
123typedef PREPACK struct {
124	A_UINT32  testCmdId;
125    A_UINT32  mode;
126} POSTPACK TCMD_PM;
127
128typedef enum{
129    TCMD_CONT_TX_ID,
130    TCMD_CONT_RX_ID,
131    TCMD_PM_ID
132   } TCMD_ID;
133
134typedef PREPACK union {
135          TCMD_CONT_TX contTx;
136          TCMD_CONT_RX contRx;
137          TCMD_PM pm ;
138} POSTPACK TEST_CMD;
139
140#ifdef __cplusplus
141}
142#endif
143
144#endif /* TESTCMD_H_ */
145