initial merge of infineon code for amazon, pci is still broken a bit. a big thank...
[openwrt.git] / target / linux / amazon-2.6 / files / include / asm-mips / amazon / amazon_mei_app_ioctl.h
1 // 603221:tc.chen 2006/03/21 added APIs to support the WEB related parameters for ADSL Statistics
2
3 #ifndef __AMAZON_MEI_APP_IOCTL_H
4 #define __AMAZON_MEI_APP_IOCTL_H
5
6 #ifdef __KERNEL__
7 #include "amazon_mei_ioctl.h"
8 #endif
9
10 /* Interface Name */
11 //#define INTERFACE_NAME <define the interface>
12
13 /* adslLineTable constants */
14 #define GET_ADSL_LINE_CODE              1
15
16 /* adslAtucPhysTable constants */
17 #define GET_ADSL_ATUC_PHY               4
18
19 /* adslAturPhysTable constants */
20 #define GET_ADSL_ATUR_PHY               10
21
22 /* adslAtucChanTable constants */
23 #define GET_ADSL_ATUC_CHAN_INFO         15
24
25 /* adslAturChanTable constants */
26 #define GET_ADSL_ATUR_CHAN_INFO         18
27
28 /* adslAtucPerfDataTable constants */
29 #define GET_ADSL_ATUC_PERF_DATA         21
30
31 /* adslAturPerfDataTable constants */
32 #define GET_ADSL_ATUR_PERF_DATA         40
33
34 /* adslAtucIntervalTable constants */
35 #define GET_ADSL_ATUC_INTVL_INFO        60
36
37 /* adslAturIntervalTable constants */
38 #define GET_ADSL_ATUR_INTVL_INFO        65
39
40 /* adslAtucChanPerfDataTable constants */
41 #define GET_ADSL_ATUC_CHAN_PERF_DATA    70
42
43 /* adslAturChanPerfDataTable constants */
44 #define GET_ADSL_ATUR_CHAN_PERF_DATA    90
45
46 /* adslAtucChanIntervalTable constants */
47 #define GET_ADSL_ATUC_CHAN_INTVL_INFO   110
48
49 /* adslAturChanIntervalTable constants */
50 #define GET_ADSL_ATUR_CHAN_INTVL_INFO   115
51
52 /* adslLineAlarmConfProfileTable constants */
53 #define GET_ADSL_ALRM_CONF_PROF         120
54 #define SET_ADSL_ALRM_CONF_PROF         121
55
56 /* adslAturTrap constants */
57 #define ADSL_ATUR_TRAPS                 135
58
59 //////////////////  RFC-3440 //////////////
60
61 #ifdef AMAZON_MEI_MIB_RFC3440
62 /* adslLineExtTable */
63 #define GET_ADSL_ATUC_LINE_EXT          201
64 #define SET_ADSL_ATUC_LINE_EXT          203
65
66 /* adslAtucPerfDateExtTable */
67 #define GET_ADSL_ATUC_PERF_DATA_EXT     205
68
69 /* adslAtucIntervalExtTable */
70 #define GET_ADSL_ATUC_INTVL_EXT_INFO    221
71
72 /* adslAturPerfDataExtTable */
73 #define GET_ADSL_ATUR_PERF_DATA_EXT     225
74
75 /* adslAturIntervalExtTable */
76 #define GET_ADSL_ATUR_INTVL_EXT_INFO    233
77
78 /* adslAlarmConfProfileExtTable */
79 #define GET_ADSL_ALRM_CONF_PROF_EXT     235
80 #define SET_ADSL_ALRM_CONF_PROF_EXT     236
81
82 /* adslAturExtTrap */
83 #define ADSL_ATUR_EXT_TRAPS             240
84
85 #endif
86
87 // 603221:tc.chen start
88 /* The following constants are added to support the WEB related ADSL Statistics */
89
90 /* adslLineStatus constants */
91 #define GET_ADSL_LINE_STATUS    245
92
93 /* adslLineRate constants */
94 #define GET_ADSL_LINE_RATE              250
95
96 /* adslLineInformation constants */
97 #define GET_ADSL_LINE_INFO              255
98
99 /* adslNearEndPerformanceStats constants */
100 #define GET_ADSL_NEAREND_STATS  270
101
102 /* adslFarEndPerformanceStats constants */
103 #define GET_ADSL_FAREND_STATS   290
104
105 // 603221:tc.chen end
106
107 /* Loop diagnostics mode of the ADSL line related constants */
108 #define GET_ADSL_LOOP_DIAGNOSTICS_MODE  295
109 #define SET_ADSL_LOOP_DIAGNOSTICS_MODE  296
110 #define IS_ADSL_LOOP_DIAGNOSTICS_MODE_COMPLETE  299
111
112 /* Sub-carrier related parameters */
113 #define GET_ADSL_ATUC_SUBCARRIER_STATS          297
114 #define GET_ADSL_ATUR_SUBCARRIER_STATS          298
115 #define GET_ADSL_LINE_INIT_STATS                150
116 #define GET_ADSL_POWER_SPECTRAL_DENSITY         151
117
118
119 ///////////////////////////////////////////////////////////
120 // makeCMV(Opcode, Group, Address, Index, Size, Data)
121
122 /* adslLineCode Flags */
123 #define LINE_CODE_FLAG                  0x1     /* BIT 0th position */
124
125 /* adslAtucPhysTable Flags */
126 #define ATUC_PHY_SER_NUM_FLAG           0x1     /* BIT 0th position */
127 #define ATUC_PHY_SER_NUM_FLAG_MAKECMV1  makeCMV(H2D_CMV_READ, INFO, 57, 0, 12, data) 
128 #define ATUC_PHY_SER_NUM_FLAG_MAKECMV2  makeCMV(H2D_CMV_READ, INFO, 57, 12, 4, data) 
129
130 #define ATUC_PHY_VENDOR_ID_FLAG         0x2     /* BIT 1 */
131 #define ATUC_PHY_VENDOR_ID_FLAG_MAKECMV makeCMV(H2D_CMV_READ, INFO, 64, 0, 4, data)
132
133 #define ATUC_PHY_VER_NUM_FLAG           0x4     /* BIT 2 */
134 #define ATUC_PHY_VER_NUM_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, INFO, 58, 0, 8, data)
135
136 #define ATUC_CURR_STAT_FLAG             0x8     /* BIT 3 */
137
138 #define ATUC_CURR_OUT_PWR_FLAG          0x10    /* BIT 4 */
139 #define ATUC_CURR_OUT_PWR_FLAG_MAKECMV  makeCMV(H2D_CMV_READ, INFO, 68, 5, 1, data)
140
141 #define ATUC_CURR_ATTR_FLAG             0x20    /* BIT 5 */
142 #define ATUC_CURR_ATTR_FLAG_MAKECMV     makeCMV(H2D_CMV_READ, INFO, 69, 0, 2, data)
143
144
145 /* adslAturPhysTable    Flags */
146 #define ATUR_PHY_SER_NUM_FLAG           0x1     /* BIT 0th position */
147 #define ATUR_PHY_SER_NUM_FLAG_MAKECMV1  makeCMV(H2D_CMV_READ, INFO, 62, 0, 12, data)
148 #define ATUR_PHY_SER_NUM_FLAG_MAKECMV2  makeCMV(H2D_CMV_READ, INFO, 62, 12, 4, data)
149
150 #define ATUR_PHY_VENDOR_ID_FLAG         0x2     /* BIT 1 */
151 #define ATUR_PHY_VENDOR_ID_FLAG_MAKECMV makeCMV(H2D_CMV_READ, INFO, 65, 0, 4, data)
152
153 #define ATUR_PHY_VER_NUM_FLAG           0x4     /* BIT 2 */
154 #define ATUR_PHY_VER_NUM_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, INFO, 61, 0, 8, data)
155
156 #define ATUR_SNRMGN_FLAG                0x8
157 #define ATUR_SNRMGN_FLAG_MAKECMV        makeCMV(H2D_CMV_READ, INFO, 68, 4, 1, data)
158
159 #define ATUR_ATTN_FLAG                  0x10
160 #define ATUR_ATTN_FLAG_MAKECMV          makeCMV(H2D_CMV_READ, INFO, 68, 2, 1, data)
161
162 #define ATUR_CURR_STAT_FLAG             0x20    /* BIT 3 */
163
164 #define ATUR_CURR_OUT_PWR_FLAG          0x40    /* BIT 4 */
165 #define ATUR_CURR_OUT_PWR_FLAG_MAKECMV  makeCMV(H2D_CMV_READ, INFO, 69, 5, 1, data)
166
167 #define ATUR_CURR_ATTR_FLAG             0x80    /* BIT 5 */
168 #define ATUR_CURR_ATTR_FLAG_MAKECMV     makeCMV(H2D_CMV_READ, INFO, 68, 0, 2, data)
169
170 /* adslAtucChanTable Flags */
171 #define ATUC_CHAN_INTLV_DELAY_FLAG      0x1     /* BIT 0th position */
172 #define ATUC_CHAN_INTLV_DELAY_FLAG_MAKECMV      makeCMV(H2D_CMV_READ, RATE, 3, 1, 1, data)
173
174 #define ATUC_CHAN_CURR_TX_RATE_FLAG     0x2     /* BIT 1 */
175 #define ATUC_CHAN_CURR_TX_RATE_FLAG_MAKECMV     makeCMV(H2D_CMV_READ, RATE, 1, 0, 2, data)
176
177 #define ATUC_CHAN_PREV_TX_RATE_FLAG     0x4     /* BIT 2 */
178
179 /* adslAturChanTable Flags */
180 #define ATUR_CHAN_INTLV_DELAY_FLAG      0x1     /* BIT 0th position */
181 #define ATUR_CHAN_INTLV_DELAY_FLAG_MAKECMV      makeCMV(H2D_CMV_READ, RATE, 2, 1, 1, data)
182
183 #define ATUR_CHAN_CURR_TX_RATE_FLAG     0x2     /* BIT 1 */
184 #define ATUR_CHAN_CURR_TX_RATE_FLAG_MAKECMV     makeCMV(H2D_CMV_READ, RATE, 0, 0, 2, data)
185
186 #define ATUR_CHAN_PREV_TX_RATE_FLAG     0x4     /* BIT 2 */
187
188 #define ATUR_CHAN_CRC_BLK_LEN_FLAG      0x8     /* BIT 3 */
189
190 /* adslAtucPerfDataTable Flags */
191 #define ATUC_PERF_LOFS_FLAG             0x1     /* BIT 0th position */
192 #define ATUC_PERF_LOSS_FLAG             0x2     /* BIT 1 */
193 #define ATUC_PERF_LO_FLAG_MAKECMV               makeCMV(H2D_CMV_READ, PLAM, 0, 0, 1, data)
194 #define ATUC_PERF_ESS_FLAG              0x4     /* BIT 2 */
195 #define ATUC_PERF_ESS_FLAG_MAKECMV              makeCMV(H2D_CMV_READ, PLAM, 7, 0, 1, data) 
196 #define ATUC_PERF_INITS_FLAG    0x8     /* BIT 3 */
197 #define ATUC_PERF_VALID_INTVLS_FLAG     0x10 /* BIT 4 */
198 #define ATUC_PERF_INVALID_INTVLS_FLAG   0x20 /* BIT 5 */
199 #define ATUC_PERF_CURR_15MIN_TIME_ELAPSED_FLAG  0x40 /* BIT 6 */
200 #define ATUC_PERF_CURR_15MIN_LOFS_FLAG          0x80     /* BIT 7 */
201 #define ATUC_PERF_CURR_15MIN_LOSS_FLAG          0x100 /* BIT 8 */
202 #define ATUC_PERF_CURR_15MIN_ESS_FLAG           0x200   /* BIT 9 */
203 #define ATUC_PERF_CURR_15MIN_INIT_FLAG          0x400 /* BIT 10 */
204 #define ATUC_PERF_CURR_1DAY_TIME_ELAPSED_FLAG 0x800 /* BIT 11 */
205 #define ATUC_PERF_CURR_1DAY_LOFS_FLAG           0x1000 /* BIT 12 */
206 #define ATUC_PERF_CURR_1DAY_LOSS_FLAG           0x2000 /* BIT 13 */
207 #define ATUC_PERF_CURR_1DAY_ESS_FLAG            0x4000 /* BIT 14 */
208 #define ATUC_PERF_CURR_1DAY_INIT_FLAG           0x8000 /* BIT 15 */
209 #define ATUC_PERF_PREV_1DAY_MON_SEC_FLAG        0x10000 /* BIT 16 */
210 #define ATUC_PERF_PREV_1DAY_LOFS_FLAG           0x20000 /* BIT 17 */
211 #define ATUC_PERF_PREV_1DAY_LOSS_FLAG           0x40000 /* BIT 18 */
212 #define ATUC_PERF_PREV_1DAY_ESS_FLAG            0x80000 /* BIT 19 */
213 #define ATUC_PERF_PREV_1DAY_INITS_FLAG          0x100000 /* BIT 20 */
214
215 /* adslAturPerfDataTable Flags */
216 #define ATUR_PERF_LOFS_FLAG             0x1     /* BIT 0th position */
217 #define ATUR_PERF_LOSS_FLAG             0x2     /* BIT 1 */
218 #define ATUR_PERF_LPR_FLAG              0x4     /* BIT 2 */
219 #define ATUR_PERF_LO_FLAG_MAKECMV               makeCMV(H2D_CMV_READ, PLAM, 1, 0, 1, data)
220 #define ATUR_PERF_ESS_FLAG              0x8     /* BIT 3 */
221 #define ATUR_PERF_ESS_FLAG_MAKECMV              makeCMV(H2D_CMV_READ, PLAM, 33, 0, 1, data)
222 #define ATUR_PERF_VALID_INTVLS_FLAG     0x10 /* BIT 4 */
223 #define ATUR_PERF_INVALID_INTVLS_FLAG   0x20 /* BIT 5 */
224 #define ATUR_PERF_CURR_15MIN_TIME_ELAPSED_FLAG  0x40 /* BIT 6 */
225 #define ATUR_PERF_CURR_15MIN_LOFS_FLAG          0x80     /* BIT 7 */
226 #define ATUR_PERF_CURR_15MIN_LOSS_FLAG          0x100 /* BIT 8 */
227 #define ATUR_PERF_CURR_15MIN_LPR_FLAG           0x200 /* BIT 9 */
228 #define ATUR_PERF_CURR_15MIN_ESS_FLAG           0x400   /* BIT 10 */
229 #define ATUR_PERF_CURR_1DAY_TIME_ELAPSED_FLAG   0x800 /* BIT 11 */
230 #define ATUR_PERF_CURR_1DAY_LOFS_FLAG           0x1000 /* BIT 12 */
231 #define ATUR_PERF_CURR_1DAY_LOSS_FLAG           0x2000 /* BIT 13 */
232 #define ATUR_PERF_CURR_1DAY_LPR_FLAG            0x4000 /* BIT 14 */
233 #define ATUR_PERF_CURR_1DAY_ESS_FLAG            0x8000 /* BIT 15 */
234 #define ATUR_PERF_PREV_1DAY_MON_SEC_FLAG        0x10000 /* BIT 16 */
235 #define ATUR_PERF_PREV_1DAY_LOFS_FLAG           0x20000 /* BIT 17 */
236 #define ATUR_PERF_PREV_1DAY_LOSS_FLAG           0x40000 /* BIT 18 */
237 #define ATUR_PERF_PREV_1DAY_LPR_FLAG            0x80000 /* BIT 19 */
238 #define ATUR_PERF_PREV_1DAY_ESS_FLAG            0x100000 /* BIT 20 */
239
240 /* adslAtucIntervalTable Flags */
241 #define ATUC_INTVL_LOF_FLAG             0x1     /* BIT 0th position */
242 #define ATUC_INTVL_LOS_FLAG             0x2     /* BIT 1 */
243 #define ATUC_INTVL_ESS_FLAG             0x4     /* BIT 2 */
244 #define ATUC_INTVL_INIT_FLAG            0x8   /* BIT 3 */
245 #define ATUC_INTVL_VALID_DATA_FLAG      0x10 /* BIT 4 */
246
247 /* adslAturIntervalTable Flags */
248 #define ATUR_INTVL_LOF_FLAG             0x1     /* BIT 0th position */
249 #define ATUR_INTVL_LOS_FLAG             0x2     /* BIT 1 */
250 #define ATUR_INTVL_LPR_FLAG             0x4     /* BIT 2 */
251 #define ATUR_INTVL_ESS_FLAG             0x8     /* BIT 3 */
252 #define ATUR_INTVL_VALID_DATA_FLAG      0x10 /* BIT 4 */
253
254 /* adslAtucChanPerfDataTable Flags */
255 #define ATUC_CHAN_RECV_BLK_FLAG 0x01    /* BIT 0th position */
256 #define ATUC_CHAN_TX_BLK_FLAG   0x02    /* BIT 1 */
257 #define ATUC_CHAN_CORR_BLK_FLAG 0x04    /* BIT 2 */
258 #define ATUC_CHAN_UNCORR_BLK_FLAG 0x08  /* BIT 3 */
259 #define ATUC_CHAN_PERF_VALID_INTVL_FLAG 0x10 /* BIT 4 */
260 #define ATUC_CHAN_PERF_INVALID_INTVL_FLAG 0x20 /* BIT 5 */
261 #define ATUC_CHAN_PERF_CURR_15MIN_TIME_ELAPSED_FLAG 0x40 /* BIT 6 */
262 #define ATUC_CHAN_PERF_CURR_15MIN_RECV_BLK_FLAG 0x80 /* BIT 7 */
263 #define ATUC_CHAN_PERF_CURR_15MIN_TX_BLK_FLAG 0x100 /* BIT 8 */
264 #define ATUC_CHAN_PERF_CURR_15MIN_CORR_BLK_FLAG 0x200 /* BIT 9 */
265 #define ATUC_CHAN_PERF_CURR_15MIN_UNCORR_BLK_FLAG 0x400 /* BIT 10 */
266 #define ATUC_CHAN_PERF_CURR_1DAY_TIME_ELAPSED_FLAG 0x800 /* BIT 11*/
267 #define ATUC_CHAN_PERF_CURR_1DAY_RECV_BLK_FLAG 0x1000 /* BIT 12 */
268 #define ATUC_CHAN_PERF_CURR_1DAY_TX_BLK_FLAG 0x2000 /* BIT 13 */
269 #define ATUC_CHAN_PERF_CURR_1DAY_CORR_BLK_FLAG 0x4000 /* BIT 14 */
270 #define ATUC_CHAN_PERF_CURR_1DAY_UNCORR_BLK_FLAG 0x8000 /* BIT 15 */
271 #define ATUC_CHAN_PERF_PREV_1DAY_MONI_SEC_FLAG 0x10000 /* BIT 16 */
272 #define ATUC_CHAN_PERF_PREV_1DAY_RECV_BLK_FLAG 0x20000 /* BIT 17 */
273 #define ATUC_CHAN_PERF_PREV_1DAY_TX_BLK_FLAG 0x40000 /* BIT 18 */
274 #define ATUC_CHAN_PERF_PREV_1DAY_CORR_BLK_FLAG 0x80000 /* BIT 19 */
275 #define ATUC_CHAN_PERF_PREV_1DAY_UNCORR_BLK_FLAG 0x100000 /* BIT 20 */
276
277
278 /* adslAturChanPerfDataTable Flags */
279 #define ATUR_CHAN_RECV_BLK_FLAG   0x01  /* BIT 0th position */ 
280 #define ATUR_CHAN_RECV_BLK_FLAG_MAKECMV_LSW             makeCMV(H2D_CMV_READ, PLAM, 20, 0, 1, data)
281 #define ATUR_CHAN_RECV_BLK_FLAG_MAKECMV_MSW             makeCMV(H2D_CMV_READ, PLAM, 21, 0, 1, data)
282 #define ATUR_CHAN_TX_BLK_FLAG     0x02  /* BIT 1 */
283 #define ATUR_CHAN_TX_BLK_FLAG_MAKECMV_LSW               makeCMV(H2D_CMV_READ, PLAM, 20, 0, 1, data)
284 #define ATUR_CHAN_TX_BLK_FLAG_MAKECMV_MSW               makeCMV(H2D_CMV_READ, PLAM, 21, 0, 1, data)
285 #define ATUR_CHAN_CORR_BLK_FLAG   0x04  /* BIT 2 */
286 #define ATUR_CHAN_CORR_BLK_FLAG_MAKECMV_INTL            makeCMV(H2D_CMV_READ, PLAM, 3, 0, 1, data)
287 #define ATUR_CHAN_CORR_BLK_FLAG_MAKECMV_FAST            makeCMV(H2D_CMV_READ, PLAM, 3, 1, 1, data)
288 #define ATUR_CHAN_UNCORR_BLK_FLAG 0x08          /* BIT 3 */
289 #define ATUR_CHAN_UNCORR_BLK_FLAG_MAKECMV_INTL          makeCMV(H2D_CMV_READ, PLAM, 2, 0, 1, data)
290 #define ATUR_CHAN_UNCORR_BLK_FLAG_MAKECMV_FAST          makeCMV(H2D_CMV_READ, PLAM, 2, 1, 1, data)
291 #define ATUR_CHAN_PERF_VALID_INTVL_FLAG   0x10  /* BIT 4 */
292 #define ATUR_CHAN_PERF_INVALID_INTVL_FLAG 0x20  /* BIT 5 */
293 #define ATUR_CHAN_PERF_CURR_15MIN_TIME_ELAPSED_FLAG 0x40 /* BIT 6 */
294 #define ATUR_CHAN_PERF_CURR_15MIN_RECV_BLK_FLAG    0x80   /* BIT 7 */
295 #define ATUR_CHAN_PERF_CURR_15MIN_TX_BLK_FLAG      0x100 /* BIT 8 */
296 #define ATUR_CHAN_PERF_CURR_15MIN_CORR_BLK_FLAG    0x200 /* BIT 9 */
297 #define ATUR_CHAN_PERF_CURR_15MIN_UNCORR_BLK_FLAG  0x400 /* BIT 10 */
298 #define ATUR_CHAN_PERF_CURR_1DAY_TIME_ELAPSED_FLAG 0x800 /* BIT 11 */
299 #define ATUR_CHAN_PERF_CURR_1DAY_RECV_BLK_FLAG     0x1000 /* BIT 12 */
300 #define ATUR_CHAN_PERF_CURR_1DAY_TX_BLK_FLAG       0x2000 /* BIT 13 */
301 #define ATUR_CHAN_PERF_CURR_1DAY_CORR_BLK_FLAG     0x4000 /* BIT 14 */
302 #define ATUR_CHAN_PERF_CURR_1DAY_UNCORR_BLK_FLAG   0x8000 /* BIT 15 */
303 #define ATUR_CHAN_PERF_PREV_1DAY_MONI_SEC_FLAG     0x10000 /* BIT 16 */
304 #define ATUR_CHAN_PERF_PREV_1DAY_RECV_BLK_FLAG     0x20000 /* BIT 17 */
305 #define ATUR_CHAN_PERF_PREV_1DAY_TRANS_BLK_FLAG    0x40000 /* BIT 18 */
306 #define ATUR_CHAN_PERF_PREV_1DAY_CORR_BLK_FLAG     0x80000 /* BIT 19 */
307 #define ATUR_CHAN_PERF_PREV_1DAY_UNCORR_BLK_FLAG   0x100000 /* BIT 20 */
308
309 /* adslAtucChanIntervalTable Flags */
310 #define ATUC_CHAN_INTVL_NUM_FLAG                0x1     /* BIT 0th position */
311 #define ATUC_CHAN_INTVL_RECV_BLK_FLAG           0x2     /* BIT 1 */
312 #define ATUC_CHAN_INTVL_TX_BLK_FLAG             0x4     /* BIT 2 */
313 #define ATUC_CHAN_INTVL_CORR_BLK_FLAG           0x8     /* BIT 3 */
314 #define ATUC_CHAN_INTVL_UNCORR_BLK_FLAG         0x10    /* BIT 4 */
315 #define ATUC_CHAN_INTVL_VALID_DATA_FLAG         0x20    /* BIT 5 */
316
317 /* adslAturChanIntervalTable Flags */
318 #define ATUR_CHAN_INTVL_NUM_FLAG                0x1     /* BIT 0th Position */
319 #define ATUR_CHAN_INTVL_RECV_BLK_FLAG           0x2     /* BIT 1 */
320 #define ATUR_CHAN_INTVL_TX_BLK_FLAG             0x4     /* BIT 2 */
321 #define ATUR_CHAN_INTVL_CORR_BLK_FLAG           0x8     /* BIT 3 */
322 #define ATUR_CHAN_INTVL_UNCORR_BLK_FLAG         0x10    /* BIT 4 */
323 #define ATUR_CHAN_INTVL_VALID_DATA_FLAG         0x20    /* BIT 5 */
324
325 /* adslLineAlarmConfProfileTable Flags */
326 #define ATUC_THRESH_15MIN_LOFS_FLAG             0x01   /* BIT 0th position */
327 #define ATUC_THRESH_15MIN_LOSS_FLAG             0x02   /* BIT 1 */
328 #define ATUC_THRESH_15MIN_ESS_FLAG              0x04   /* BIT 2 */
329 #define ATUC_THRESH_FAST_RATEUP_FLAG            0x08   /* BIT 3 */
330 #define ATUC_THRESH_INTERLEAVE_RATEUP_FLAG      0x10   /* BIT 4 */
331 #define ATUC_THRESH_FAST_RATEDOWN_FLAG          0x20     /* BIT 5 */
332 #define ATUC_THRESH_INTERLEAVE_RATEDOWN_FLAG    0x40    /* BIT 6 */
333 #define ATUC_INIT_FAILURE_TRAP_ENABLE_FLAG      0x80    /* BIT 7 */
334 #define ATUR_THRESH_15MIN_LOFS_FLAG             0x100   /* BIT 8 */
335 #define ATUR_THRESH_15MIN_LOSS_FLAG             0x200   /* BIT 9 */
336 #define ATUR_THRESH_15MIN_LPRS_FLAG             0x400   /* BIT 10 */
337 #define ATUR_THRESH_15MIN_ESS_FLAG              0x800           /* BIT 11 */
338 #define ATUR_THRESH_FAST_RATEUP_FLAG            0x1000          /* BIT 12 */
339 #define ATUR_THRESH_INTERLEAVE_RATEUP_FLAG      0x2000          /* BIT 13 */
340 #define ATUR_THRESH_FAST_RATEDOWN_FLAG          0x4000  /* BIT 14 */
341 #define ATUR_THRESH_INTERLEAVE_RATEDOWN_FLAG    0x8000          /* BIT 15 */
342 #define LINE_ALARM_CONF_PROFILE_ROWSTATUS_FLAG  0x10000         /* BIT 16 */
343
344
345 /* adslAturTraps Flags */
346 #define ATUC_PERF_LOFS_THRESH_FLAG              0x1     /* BIT 0th position */
347 #define ATUC_PERF_LOSS_THRESH_FLAG              0x2     /* BIT 1 */
348 #define ATUC_PERF_ESS_THRESH_FLAG               0x4     /* BIT 2 */
349 #define ATUC_RATE_CHANGE_FLAG                   0x8     /* BIT 3 */
350 #define ATUR_PERF_LOFS_THRESH_FLAG              0x10    /* BIT 4 */
351 #define ATUR_PERF_LOSS_THRESH_FLAG              0x20    /* BIT 5 */
352 #define ATUR_PERF_LPRS_THRESH_FLAG              0x40    /* BIT 6 */
353 #define ATUR_PERF_ESS_THRESH_FLAG               0x80    /* BIT 7 */
354 #define ATUR_RATE_CHANGE_FLAG                   0x100   /* BIT 8 */
355
356 //RFC- 3440 FLAG DEFINITIONS
357
358 #ifdef AMAZON_MEI_MIB_RFC3440
359 /* adslLineExtTable flags */
360 #define ATUC_LINE_TRANS_CAP_FLAG                0x1             /* BIT 0th position */
361 #define ATUC_LINE_TRANS_CAP_FLAG_MAKECMV        makeCMV(H2D_CMV_READ,INFO, 67, 0, 1, data)
362 #define ATUC_LINE_TRANS_CONFIG_FLAG             0x2             /* BIT 1 */
363 #define ATUC_LINE_TRANS_CONFIG_FLAG_MAKECMV     makeCMV(H2D_CMV_READ,INFO, 67, 0, 1, data)
364 #define ATUC_LINE_TRANS_CONFIG_FLAG_MAKECMV_WR  makeCMV(H2D_CMV_WRITE,INFO, 67, 0, 1, data)
365 #define ATUC_LINE_TRANS_ACTUAL_FLAG             0x4             /* BIT 2 */
366 #define ATUC_LINE_TRANS_ACTUAL_FLAG_MAKECMV     makeCMV(H2D_CMV_READ,STAT, 1, 0, 1, data)
367 #define LINE_GLITE_POWER_STATE_FLAG             0x8             /* BIT 3 */
368 #define LINE_GLITE_POWER_STATE_FLAG_MAKECMV     makeCMV(H2D_CMV_READ,STAT, 0, 0, 1, data) 
369
370 /* adslAtucPerfDataExtTable flags */
371 #define ATUC_PERF_STAT_FASTR_FLAG          0x1 /* BIT 0th position */
372 #define ATUC_PERF_STAT_FASTR_FLAG_MAKECMV       makeCMV(H2D_CMV_READ, STAT, 0, 0, 1, data)
373 #define ATUC_PERF_STAT_FAILED_FASTR_FLAG 0x2 /* BIT 1 */
374 #define ATUC_PERF_STAT_FAILED_FASTR_FLAG_MAKECMV        makeCMV(H2D_CMV_READ, STAT, 0, 0, 1, data)
375 #define ATUC_PERF_STAT_SESL_FLAG           0X4  /* BIT 2 */
376 #define ATUC_PERF_STAT_SESL_FLAG_MAKECMV        makeCMV(H2D_CMV_READ, PLAM, 8, 0, 1, data)
377 #define ATUC_PERF_STAT_UASL_FLAG                   0X8  /* BIT 3 */
378 #define ATUC_PERF_STAT_UASL_FLAG_MAKECMV        makeCMV(H2D_CMV_READ, PLAM, 10, 0, 1, data)
379 #define ATUC_PERF_CURR_15MIN_FASTR_FLAG    0X10 /* BIT 4 */
380 #define ATUC_PERF_CURR_15MIN_FAILED_FASTR_FLAG 0X20     /* BIT 5 */
381 #define ATUC_PERF_CURR_15MIN_SESL_FLAG           0X40   /* BIT 6 */
382 #define ATUC_PERF_CURR_15MIN_UASL_FLAG              0X80        /* BIT 7 */
383 #define ATUC_PERF_CURR_1DAY_FASTR_FLAG              0X100       /* BIT 8 */
384 #define ATUC_PERF_CURR_1DAY_FAILED_FASTR_FLAG   0X200   /* BIT 9 */
385 #define ATUC_PERF_CURR_1DAY_SESL_FLAG                   0X400   /* BIT 10 */
386 #define ATUC_PERF_CURR_1DAY_UASL_FLAG                   0X800   /* BIT 11 */
387 #define ATUC_PERF_PREV_1DAY_FASTR_FLAG               0X1000 /* BIT 12 */
388 #define ATUC_PERF_PREV_1DAY_FAILED_FASTR_FLAG   0X2000 /* BIT 13 */
389 #define ATUC_PERF_PREV_1DAY_SESL_FLAG                   0X4000 /* BIT 14 */
390 #define ATUC_PERF_PREV_1DAY_UASL_FLAG                   0X8000 /* BIT 15 */
391
392 /* adslAturPerfDataExtTable */
393 #define ATUR_PERF_STAT_SESL_FLAG                0X1 /* BIT 0th position */
394 #define ATUR_PERF_STAT_SESL_FLAG_MAKECMV        makeCMV(H2D_CMV_READ, PLAM, 34, 0, 1, data)     
395 #define ATUR_PERF_STAT_UASL_FLAG                0X2 /* BIT 1 */
396 #define ATUR_PERF_STAT_UASL_FLAG_MAKECMV        makeCMV(H2D_CMV_READ, PLAM, 36, 0, 1, data)
397 #define ATUR_PERF_CURR_15MIN_SESL_FLAG          0X4 /* BIT 2 */
398 #define ATUR_PERF_CURR_15MIN_UASL_FLAG          0X8 /* BIT 3 */
399 #define ATUR_PERF_CURR_1DAY_SESL_FLAG           0X10 /* BIT 4 */
400 #define ATUR_PERF_CURR_1DAY_UASL_FLAG           0X20 /* BIT 5 */
401 #define ATUR_PERF_PREV_1DAY_SESL_FLAG           0X40 /* BIT 6 */
402 #define ATUR_PERF_PREV_1DAY_UASL_FLAG           0X80 /* BIT 7 */
403
404 /* adslAutcIntervalExtTable flags */
405 #define ATUC_INTERVAL_FASTR_FLAG                0x1 /* Bit 0 */         
406 #define ATUC_INTERVAL_FAILED_FASTR_FLAG         0x2 /* Bit 1 */         
407 #define ATUC_INTERVAL_SESL_FLAG                 0x4 /* Bit 2 */         
408 #define ATUC_INTERVAL_UASL_FLAG                 0x8 /* Bit 3 */         
409
410 /* adslAturIntervalExtTable */
411 #define ATUR_INTERVAL_SESL_FLAG         0X1 /* BIT 0th position */
412 #define ATUR_INTERVAL_UASL_FLAG         0X2 /* BIT 1 */
413
414 /* adslAlarmConfProfileExtTable */
415 #define ATUC_THRESH_15MIN_FAILED_FASTR_FLAG 0X1/* BIT 0th position */
416 #define ATUC_THRESH_15MIN_SESL_FLAG              0X2 /* BIT 1 */
417 #define ATUC_THRESH_15MIN_UASL_FLAG              0X4 /* BIT 2 */
418 #define ATUR_THRESH_15MIN_SESL_FLAG              0X8 /* BIT 3 */
419 #define ATUR_THRESH_15MIN_UASL_FLAG              0X10 /* BIT 4 */
420
421 /* adslAturExtTraps */
422 #define ATUC_15MIN_FAILED_FASTR_TRAP_FLAG       0X1 /* BIT 0th position */
423 #define ATUC_15MIN_SESL_TRAP_FLAG                0X2 /* BIT 1 */
424 #define ATUC_15MIN_UASL_TRAP_FLAG                0X4 /* BIT 2 */
425 #define ATUR_15MIN_SESL_TRAP_FLAG                0X8 /* BIT 3 */
426 #define ATUR_15MIN_UASL_TRAP_FLAG                0X10 /* BIT 4 */
427
428 // 603221:tc.chen start         
429 /* adslLineStatus Flags */
430 #define LINE_STAT_MODEM_STATUS_FLAG      0x1 /* BIT 0th position */
431 #define LINE_STAT_MODEM_STATUS_FLAG_MAKECMV makeCMV(H2D_CMV_READ, STAT, 0, 0, 1, data)
432 #define LINE_STAT_MODE_SEL_FLAG          0x2 /* BIT 1 */
433 #define LINE_STAT_MODE_SEL_FLAG_MAKECMV makeCMV(H2D_CMV_READ, STAT, 1, 0, 1, data)
434 #define LINE_STAT_TRELLCOD_ENABLE_FLAG 0x4 /* BIT 2 */
435 #define LINE_STAT_TRELLCOD_ENABLE_FLAG_MAKECMV makeCMV(H2D_CMV_READ, OPTN, 2, 0, 1, data)
436 #define LINE_STAT_LATENCY_FLAG           0x8 /* BIT 3 */
437 #define LINE_STAT_LATENCY_FLAG_MAKECMV makeCMV(H2D_CMV_READ, STAT, 12, 0, 1, data)
438
439 /* adslLineRate Flags */
440 #define LINE_RATE_DATA_RATEDS_FLAG      0x1 /* BIT 0th position */
441 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL1_LP0_MAKECMV makeCMV(H2D_CMV_READ, RATE, 1, 0, 2, data)
442 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL1_LP1_MAKECMV makeCMV(H2D_CMV_READ, RATE, 1, 2, 2, data)
443
444
445 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_RP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 12, 0, 1, data)
446 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_MP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 13, 0, 1, data)
447 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_LP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 14, 0, 1, data)
448 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_TP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 15, 0, 1, data)
449 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_KP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 17, 0, 2, data)
450
451 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_RP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 12, 1, 1, data)
452 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_MP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 13, 1, 1, data)
453 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_LP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 14, 1, 1, data)
454 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_TP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 15, 1, 1, data)
455 #define LINE_RATE_DATA_RATEDS_FLAG_ADSL2_KP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 17, 2, 2, data)
456
457 #define LINE_RATE_DATA_RATEUS_FLAG      0x2 /* BIT 1 */
458 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL1_LP0_MAKECMV makeCMV(H2D_CMV_READ, RATE, 0, 0, 2, data)
459 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL1_LP1_MAKECMV makeCMV(H2D_CMV_READ, RATE, 0, 2, 2, data)
460
461
462 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_RP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 23, 0, 1, data)
463 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_MP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 24, 0, 1, data)
464 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_LP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 25, 0, 1, data)
465 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_TP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 26, 0, 1, data)
466 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_KP_LP0_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 28, 0, 2, data)
467
468 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_RP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 23, 1, 1, data)
469 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_MP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 24, 1, 1, data)
470 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_LP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 25, 1, 1, data)
471 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_TP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 26, 1, 1, data)
472 #define LINE_RATE_DATA_RATEUS_FLAG_ADSL2_KP_LP1_MAKECMV makeCMV(H2D_CMV_READ, CNFG, 28, 2, 2, data)
473
474 #define LINE_RATE_ATTNDRDS_FLAG         0x4 /* BIT 2 */
475 #define LINE_RATE_ATTNDRDS_FLAG_MAKECMV makeCMV(H2D_CMV_READ, INFO, 68, 4, 2, data)
476
477 #define LINE_RATE_ATTNDRUS_FLAG         0x8 /* BIT 3 */
478 #define LINE_RATE_ATTNDRUS_FLAG_MAKECMV makeCMV(H2D_CMV_READ, INFO, 69, 4, 2, data)
479
480 /* adslLineInformation Flags */
481 #define LINE_INFO_INTLV_DEPTHDS_FLAG    0x1 /* BIT 0th position */
482 #define LINE_INFO_INTLV_DEPTHDS_FLAG_LP0_MAKECMV        makeCMV(H2D_CMV_READ, CNFG, 27, 0, 1, data)
483 #define LINE_INFO_INTLV_DEPTHDS_FLAG_LP1_MAKECMV        makeCMV(H2D_CMV_READ, CNFG, 27, 1, 1, data)
484 #define LINE_INFO_INTLV_DEPTHUS_FLAG    0x2 /* BIT 1 */
485 #define LINE_INFO_INTLV_DEPTHUS_FLAG_LP0_MAKECMV        makeCMV(H2D_CMV_READ, CNFG, 16, 0, 1, data)
486 #define LINE_INFO_INTLV_DEPTHUS_FLAG_LP1_MAKECMV        makeCMV(H2D_CMV_READ, CNFG, 16, 1, 1, data)
487 #define LINE_INFO_LATNDS_FLAG           0x4 /* BIT 2 */
488 #define LINE_INFO_LATNDS_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, INFO, 68, 1, 1, data)
489 #define LINE_INFO_LATNUS_FLAG           0x8 /* BIT 3 */
490 #define LINE_INFO_LATNUS_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, INFO, 69, 1, 1, data)
491 #define LINE_INFO_SATNDS_FLAG                   0x10 /* BIT 4 */
492 #define LINE_INFO_SATNDS_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, INFO, 68, 2, 1, data)
493 #define LINE_INFO_SATNUS_FLAG           0x20 /* BIT 5 */
494 #define LINE_INFO_SATNUS_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, INFO, 69, 2, 1, data)
495 #define LINE_INFO_SNRMNDS_FLAG                  0x40 /* BIT 6 */
496 #define LINE_INFO_SNRMNDS_FLAG_ADSL1_MAKECMV    makeCMV(H2D_CMV_READ, INFO, 68, 3, 1, data)
497 #define LINE_INFO_SNRMNDS_FLAG_ADSL2_MAKECMV    makeCMV(H2D_CMV_READ, RATE, 3, 0, 1, data)
498 #define LINE_INFO_SNRMNDS_FLAG_ADSL2PLUS_MAKECMV        makeCMV(H2D_CMV_READ, PLAM, 46, 0, 1, data)
499 #define LINE_INFO_SNRMNUS_FLAG                  0x80 /* BIT 7 */
500 #define LINE_INFO_SNRMNUS_FLAG_MAKECMV  makeCMV(H2D_CMV_READ, INFO, 69, 3, 1, data)
501 #define LINE_INFO_ACATPDS_FLAG          0x100 /* BIT 8 */
502 #define LINE_INFO_ACATPDS_FLAG_MAKECMV  makeCMV(H2D_CMV_READ, INFO, 68, 6, 1, data)
503 #define LINE_INFO_ACATPUS_FLAG          0x200 /* BIT 9 */
504 #define LINE_INFO_ACATPUS_FLAG_MAKECMV  makeCMV(H2D_CMV_READ, INFO, 69, 6, 1, data)
505
506 /* adslNearEndPerformanceStats Flags */
507 #define NEAREND_PERF_SUPERFRAME_FLAG_LSW_MAKECMV        makeCMV(H2D_CMV_READ, PLAM, 20, 0, 1, data)
508 #define NEAREND_PERF_SUPERFRAME_FLAG_MSW_MAKECMV        makeCMV(H2D_CMV_READ, PLAM, 21, 0, 1, data)
509 #define NEAREND_PERF_SUPERFRAME_FLAG    0x1 /* BIT 0th position */
510 #define NEAREND_PERF_LOS_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, PLAM, 0, 0, 1, data)
511 #define NEAREND_PERF_LOS_FLAG           0x2 /* BIT 1 */
512 #define NEAREND_PERF_LOF_FLAG           0x4 /* BIT 2 */
513 #define NEAREND_PERF_LPR_FLAG           0x8 /* BIT 3 */
514 #define NEAREND_PERF_NCD_FLAG           0x10 /* BIT 4 */
515 #define NEAREND_PERF_LCD_FLAG           0x20 /* BIT 5 */
516 #define NEAREND_PERF_CRC_FLAG           0x40 /* BIT 6 */
517 #define NEAREND_PERF_CRC_FLAG_LP0_MAKECMV       makeCMV(H2D_CMV_READ, PLAM, 2, 0, 1, data)
518 #define NEAREND_PERF_CRC_FLAG_LP1_MAKECMV       makeCMV(H2D_CMV_READ, PLAM, 2, 1, 1, data)
519 #define NEAREND_PERF_RSCORR_FLAG_LP0_MAKECMV    makeCMV(H2D_CMV_READ, PLAM, 3, 0, 1, data)
520 #define NEAREND_PERF_RSCORR_FLAG_LP1_MAKECMV    makeCMV(H2D_CMV_READ, PLAM, 3, 1, 1, data)
521 #define NEAREND_PERF_RSCORR_FLAG        0x80 /* BIT 7 */
522 #define NEAREND_PERF_FECS_FLAG_MAKECMV  makeCMV(H2D_CMV_READ, PLAM, 6, 0, 1, data)
523 #define NEAREND_PERF_FECS_FLAG          0x100 /* BIT 8 */
524 #define NEAREND_PERF_ES_FLAG_MAKECMV    makeCMV(H2D_CMV_READ, PLAM, 7, 0, 1, data)
525 #define NEAREND_PERF_ES_FLAG            0x200 /* BIT 9 */
526 #define NEAREND_PERF_SES_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, PLAM, 8, 0, 1, data)
527 #define NEAREND_PERF_SES_FLAG           0x400 /* BIT 10 */
528 #define NEAREND_PERF_LOSS_FLAG_MAKECMV  makeCMV(H2D_CMV_READ, PLAM, 9, 0, 1, data)
529 #define NEAREND_PERF_LOSS_FLAG          0x800 /* BIT 11 */
530 #define NEAREND_PERF_UAS_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, PLAM, 10, 0, 1, data)
531 #define NEAREND_PERF_UAS_FLAG           0x1000 /* BIT 12 */
532 #define NEAREND_PERF_HECERR_FLAG_BC0_MAKECMV    makeCMV(H2D_CMV_READ, PLAM, 11, 0, 2, data)
533 #define NEAREND_PERF_HECERR_FLAG_BC1_MAKECMV    makeCMV(H2D_CMV_READ, PLAM, 11, 2, 2, data)
534 #define NEAREND_PERF_HECERR_FLAG                0x2000 /* BIT 13 */
535
536 /* adslFarEndPerformanceStats Flags */
537 #define FAREND_PERF_LOS_FLAG_MAKECMV    makeCMV(H2D_CMV_READ, PLAM, 1, 0, 1, data)
538 #define FAREND_PERF_LOS_FLAG    0x1 /* BIT 0th position */
539 #define FAREND_PERF_LOF_FLAG    0x2 /* BIT 1 */
540 #define FAREND_PERF_LPR_FLAG    0x4 /* BIT 2 */
541 #define FAREND_PERF_NCD_FLAG    0x8 /* BIT 3 */
542 #define FAREND_PERF_LCD_FLAG    0x10 /* BIT 4 */
543 #define FAREND_PERF_CRC_FLAG_LP0_MAKECMV        makeCMV(H2D_CMV_READ, PLAM, 24, 0, 1, data)
544 #define FAREND_PERF_CRC_FLAG_LP1_MAKECMV        makeCMV(H2D_CMV_READ, PLAM, 24, 1, 1, data)
545 #define FAREND_PERF_CRC_FLAG    0x20 /* BIT 5 */
546 #define FAREND_PERF_RSCORR_FLAG_LP0_MAKECMV     makeCMV(H2D_CMV_READ, PLAM, 28, 0, 1, data)
547 #define FAREND_PERF_RSCORR_FLAG_LP1_MAKECMV     makeCMV(H2D_CMV_READ, PLAM, 28, 1, 1, data)
548 #define FAREND_PERF_RSCORR_FLAG 0x40 /* BIT 6 */
549 #define FAREND_PERF_FECS_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, PLAM, 32, 0, 1, data)
550 #define FAREND_PERF_FECS_FLAG   0x80 /* BIT 7 */
551 #define FAREND_PERF_ES_FLAG_MAKECMV     makeCMV(H2D_CMV_READ, PLAM, 33, 0, 1, data)
552 #define FAREND_PERF_ES_FLAG     0x100 /* BIT 8 */
553 #define FAREND_PERF_SES_FLAG_MAKECMV    makeCMV(H2D_CMV_READ, PLAM, 34, 0, 1, data)
554 #define FAREND_PERF_SES_FLAG    0x200 /* BIT 9 */
555 #define FAREND_PERF_LOSS_FLAG_MAKECMV   makeCMV(H2D_CMV_READ, PLAM, 35, 0, 1, data)
556 #define FAREND_PERF_LOSS_FLAG   0x400 /* BIT 10 */
557 #define FAREND_PERF_UAS_FLAG_MAKECMV    makeCMV(H2D_CMV_READ, PLAM, 36, 0, 1, data)
558 #define FAREND_PERF_UAS_FLAG    0x800 /* BIT 11 */
559 #define FAREND_PERF_HECERR_FLAG_BC0_MAKECMV     makeCMV(H2D_CMV_READ, PLAM, 37, 0, 2, data)
560 #define FAREND_PERF_HECERR_FLAG_BC1_MAKECMV     makeCMV(H2D_CMV_READ, PLAM, 37, 2, 2, data)
561 #define FAREND_PERF_HECERR_FLAG 0x1000 /* BIT 12 */
562 // 603221:tc.chen end
563 /* TR-69 related additional parameters - defines */
564 /* Defines for  struct adslATURSubcarrierInfo */
565 #define NEAREND_HLINSC  0x1
566 #define NEAREND_HLINSC_MAKECMV(mode)            makeCMV(mode, INFO, 71, 2, 1, data)
567 #define NEAREND_HLINPS  0x2
568 #define NEAREND_HLINPS_MAKECMV(mode,idx,size)   makeCMV(mode, INFO, 73, idx, size, data)
569 #define NEAREND_HLOGMT  0x4
570 #define NEAREND_HLOGMT_MAKECMV(mode)            makeCMV(mode, INFO, 80, 0, 1, data)
571 #define NEAREND_HLOGPS  0x8
572 #define NEAREND_HLOGPS_MAKECMV(mode,idx,size)   makeCMV(mode, INFO, 75, idx, size, data)
573 #define NEAREND_QLNMT   0x10
574 #define NEAREND_QLNMT_MAKECMV(mode)             makeCMV(mode, INFO, 80, 1, 1, data)
575 #define NEAREND_QLNPS   0x20
576 #define NEAREND_QLNPS_MAKECMV(mode,idx,size)    makeCMV(mode, INFO, 77, idx, size, data)
577 #define NEAREND_SNRMT   0x40
578 #define NEAREND_SNRMT_MAKECMV(mode)             makeCMV(mode, INFO, 80, 2, 1, data)
579 #define NEAREND_SNRPS   0x80
580 #define NEAREND_SNRPS_MAKECMV(mode,idx,size)    makeCMV(mode, INFO, 78, idx, size, data)
581 #define NEAREND_BITPS   0x100
582 #define NEAREND_BITPS_MAKECMV(mode,idx,size)    makeCMV(mode, INFO, 22, idx, size, data)
583 #define NEAREND_GAINPS  0x200
584 #define NEAREND_GAINPS_MAKECMV(mode,idx,size)   makeCMV(mode, INFO, 24, idx, size, data)
585
586 /* Defines for  struct adslATUCSubcarrierInfo */
587 #define  FAREND_HLINSC  0x1
588 #define  FAREND_HLINSC_MAKECMV(mode)            makeCMV(mode, INFO, 70, 0, 1, data)
589 #define  FAREND_HLINPS  0x2
590 #define  FAREND_HLINPS_MAKECMV(mode,idx,size)   makeCMV(mode, INFO, 72, idx, size, data)
591 #define  FAREND_HLOGMT  0x4
592 #define  FAREND_HLOGMT_MAKECMV(mode)            makeCMV(mode, INFO, 79, 0, 1, data)
593 #define  FAREND_HLOGPS  0x8
594 #define  FAREND_HLOGPS_MAKECMV(mode,idx,size)   makeCMV(mode, INFO, 74, idx, size, data)
595 #define  FAREND_QLNMT   0x10
596 #define  FAREND_QLNMT_MAKECMV(mode)             makeCMV(mode, INFO, 79, 1, 1, data)
597 #define  FAREND_QLNPS   0x20
598 #define  FAREND_QLNPS_MAKECMV(mode,idx,size)    makeCMV(mode, INFO, 76, idx, size, data)
599 #define  FAREND_SNRMT   0x40
600 #define  FAREND_SNRMT_MAKECMV(mode)             makeCMV(mode, INFO, 79, 2, 1, data)
601 #define  FAREND_SNRPS   0x80
602 #define  FAREND_SNRPS_MAKECMV(mode,idx,size)    makeCMV(mode, INFO, 10, idx, size, data)
603 #define  FAREND_BITPS   0x100
604 #define  FAREND_BITPS_MAKECMV(mode,idx,size)    makeCMV(mode, INFO, 23, idx, size, data)
605 #define  FAREND_GAINPS  0x200
606 #define  FAREND_GAINPS_MAKECMV(mode,idx,size)   makeCMV(mode, INFO, 25, idx, size, data)
607
608
609 // GET_ADSL_POWER_SPECTRAL_DENSITY
610 #define NOMPSD_US_MAKECMV       makeCMV(H2D_CMV_READ, INFO, 102, 0, 1, data)
611 #define NOMPSD_DS_MAKECMV       makeCMV(H2D_CMV_READ, INFO, 102, 1, 1, data)
612 #define PCB_US_MAKECMV          makeCMV(H2D_CMV_READ, INFO, 102, 6, 1, data)
613 #define PCB_DS_MAKECMV          makeCMV(H2D_CMV_READ, INFO, 102, 7, 1, data)
614 #define RMSGI_US_MAKECMV        makeCMV(H2D_CMV_READ, INFO, 102, 10, 1, data)
615 #define RMSGI_DS_MAKECMV        makeCMV(H2D_CMV_READ, INFO, 102, 11, 1, data)
616
617
618 #endif
619 /////////////////////////////////////////////////Macro Definitions ? FLAG Setting & Testing
620
621 #define SET_FLAG(flags, flag_val)   ((*flags) = ((*flags) | flag_val))
622 //      -- This macro sets the flags with the flag_val. Here flags is passed as a pointer
623
624 #define IS_FLAG_SET(flags, test_flag)   (((*flags) & (test_flag)) == (test_flag)? test_flag:0)
625 //      -- This macro verifies whether test_flag has been set in flags. Here flags is passed as a pointer
626
627
628 #define CLR_FLAG(flags, flag_bit)       ((*flags) = (*flags) & (~flag_bit))
629 //      -- This macro resets the specified flag_bit in the flags. Here flags is passed as a pointer
630
631
632 ////////////////////////////////////////////////DATA STRUCTURES ORGANIZATION
633         
634 //Here are the data structures used for accessing mib parameters. The ioctl call includes the third parameter as a void pointer. This parameter has to be type-casted in the driver code to the corresponding structure depending upon the command type. For Ex: consider the ioctl used to get the adslLineCode type, ioctl(fd,GET_ADSL_LINE_CODE,void *struct_adslLineTableEntry). In the driver code we check on the type of the command, i.e GET_ADSL_LINE_CODE and type-cast the void pointer to struct adslLineTableEntry type.
635         //
636 #define u32 unsigned int
637 #define u16 unsigned short
638 #define s16 short
639 #define u8 unsigned char
640
641
642 typedef u32 AdslPerfTimeElapsed;
643 typedef u32 AdslPerfPrevDayCount;
644 typedef u32 PerfCurrentCount;
645 typedef u32 PerfIntervalCount;
646 typedef u32 AdslPerfCurrDayCount;
647
648
649 //ioctl(int fd, GET_ADSL_LINE_CODE, void *struct_adslLineTableEntry)
650
651 typedef struct adslLineTableEntry {
652         int ifIndex;
653         int adslLineCode;
654         u8 flags;
655 } adslLineTableEntry;
656
657 #ifdef AMAZON_MEI_MIB_RFC3440
658 typedef struct adslLineExtTableEntry {
659         int ifIndex;
660         u16 adslLineTransAtucCap;
661         u16 adslLineTransAtucConfig;
662         u16 adslLineTransAtucActual;
663         int adslLineGlitePowerState;
664         u32 flags;
665 }adslLineExtTableEntry;
666 #endif
667 //ioctl(int fd, GET_ADSL_ATUC_PHY, void  *struct_adslAtucPhysEntry)
668
669 typedef struct adslVendorId {
670         u16     country_code;
671         u_char  provider_id[4];  /* Ascii characters */
672         u_char  revision_info[2];
673 }adslVendorId;
674
675
676 typedef struct adslAtucPhysEntry {
677         int ifIndex;
678         char serial_no[32];
679         union {
680                 char vendor_id[16];
681                 adslVendorId vendor_info;
682         } vendor_id;
683
684         char version_no[16];
685         u32 status;
686         int outputPwr;
687         u32 attainableRate;
688         u8 flags;
689 } adslAtucPhysEntry;
690
691
692 //ioctl(int fd, GET_ADSL_ATUR_PHY, void  *struct_adslAturPhysEntry)
693
694 typedef struct adslAturPhysEntry {
695         int ifIndex;
696         char serial_no[32];
697         union {
698         char vendor_id[16];
699                 adslVendorId vendor_info;
700         } vendor_id;
701         char version_no[16];
702         int SnrMgn;
703         u32 Attn;
704         u32 status;
705         int outputPwr;
706         u32 attainableRate;
707         u8 flags;
708 } adslAturPhysEntry;
709
710
711 //ioctl(int fd, GET_ADSL_ATUC_CHAN_INFO, void *struct_adslAtucChanInfo)
712
713 typedef struct adslAtucChanInfo {
714         int ifIndex;
715         u32 interleaveDelay;
716         u32 currTxRate;
717         u32 prevTxRate;
718         u8 flags;
719 } adslAtucChanInfo;
720
721
722 //ioctl(int fd, GET_ADSL_ATUR_CHAN_INFO, void *struct_adslAturChanInfo)
723
724 typedef struct adslAturChanInfo {
725         int ifIndex;
726         u32 interleaveDelay;
727         u32 currTxRate;
728         u32 prevTxRate;
729         u32 crcBlkLen;
730         u8 flags;
731 } adslAturChanInfo;
732
733
734 //ioctl(int fd, GET_ADSL_ATUC_PERF_DATA,  void *struct_atucPerfDataEntry)
735
736 typedef struct atucPerfDataEntry
737 {
738    int                  ifIndex;
739    u32                  adslAtucPerfLofs;             
740    u32                  adslAtucPerfLoss;             
741    u32                  adslAtucPerfESs;                 
742    u32                  adslAtucPerfInits;
743    int                  adslAtucPerfValidIntervals;
744    int                  adslAtucPerfInvalidIntervals;
745    AdslPerfTimeElapsed  adslAtucPerfCurr15MinTimeElapsed;
746    PerfCurrentCount     adslAtucPerfCurr15MinLofs;
747    PerfCurrentCount     adslAtucPerfCurr15MinLoss;
748    PerfCurrentCount     adslAtucPerfCurr15MinESs;
749    PerfCurrentCount     adslAtucPerfCurr15MinInits;
750    AdslPerfTimeElapsed  adslAtucPerfCurr1DayTimeElapsed;
751    AdslPerfCurrDayCount adslAtucPerfCurr1DayLofs;
752    AdslPerfCurrDayCount adslAtucPerfCurr1DayLoss;
753    AdslPerfCurrDayCount adslAtucPerfCurr1DayESs;
754    AdslPerfCurrDayCount adslAtucPerfCurr1DayInits;
755    int                  adslAtucPerfPrev1DayMoniSecs;
756    AdslPerfPrevDayCount adslAtucPerfPrev1DayLofs;
757    AdslPerfPrevDayCount adslAtucPerfPrev1DayLoss;
758    AdslPerfPrevDayCount adslAtucPerfPrev1DayESs;
759    AdslPerfPrevDayCount adslAtucPerfPrev1DayInits;
760    u32                  flags;
761 } atucPerfDataEntry;
762
763 #ifdef AMAZON_MEI_MIB_RFC3440
764 typedef struct atucPerfDataExtEntry
765  {
766   int ifIndex;
767   u32 adslAtucPerfStatFastR;
768   u32 adslAtucPerfStatFailedFastR;
769   u32 adslAtucPerfStatSesL;
770   u32 adslAtucPerfStatUasL;
771   u32 adslAtucPerfCurr15MinFastR;
772   u32 adslAtucPerfCurr15MinFailedFastR;
773   u32 adslAtucPerfCurr15MinSesL;
774   u32 adslAtucPerfCurr15MinUasL;
775   u32 adslAtucPerfCurr1DayFastR;
776   u32 adslAtucPerfCurr1DayFailedFastR;
777   u32 adslAtucPerfCurr1DaySesL;
778   u32 adslAtucPerfCurr1DayUasL;
779   u32 adslAtucPerfPrev1DayFastR;
780   u32 adslAtucPerfPrev1DayFailedFastR;
781   u32 adslAtucPerfPrev1DaySesL;
782   u32 adslAtucPerfPrev1DayUasL;
783   u32   flags;
784 } atucPerfDataExtEntry; 
785
786 #endif
787 //ioctl(int fd, GET_ADSL_ATUR_PERF_DATA, void *struct_aturPerfDataEntry)
788
789 typedef struct aturPerfDataEntry
790 {
791    int                  ifIndex;
792    u32                  adslAturPerfLofs;             
793    u32                  adslAturPerfLoss;             
794    u32                  adslAturPerfLprs;                 
795    u32                  adslAturPerfESs;
796    int                  adslAturPerfValidIntervals;
797    int                  adslAturPerfInvalidIntervals;
798    AdslPerfTimeElapsed  adslAturPerfCurr15MinTimeElapsed;
799    PerfCurrentCount     adslAturPerfCurr15MinLofs;
800    PerfCurrentCount     adslAturPerfCurr15MinLoss;
801    PerfCurrentCount     adslAturPerfCurr15MinLprs;
802    PerfCurrentCount     adslAturPerfCurr15MinESs;
803    AdslPerfTimeElapsed  adslAturPerfCurr1DayTimeElapsed;
804    AdslPerfCurrDayCount adslAturPerfCurr1DayLofs;
805    AdslPerfCurrDayCount adslAturPerfCurr1DayLoss;
806    AdslPerfCurrDayCount adslAturPerfCurr1DayLprs;
807    AdslPerfCurrDayCount adslAturPerfCurr1DayESs;
808    int                  adslAturPerfPrev1DayMoniSecs;
809    AdslPerfPrevDayCount adslAturPerfPrev1DayLofs;
810    AdslPerfPrevDayCount adslAturPerfPrev1DayLoss;
811    AdslPerfPrevDayCount adslAturPerfPrev1DayLprs;
812    AdslPerfPrevDayCount adslAturPerfPrev1DayESs;
813    u32                  flags;
814 } aturPerfDataEntry;
815
816 #ifdef AMAZON_MEI_MIB_RFC3440
817 typedef struct aturPerfDataExtEntry
818  {
819   int ifIndex;
820   u32 adslAturPerfStatSesL;
821   u32 adslAturPerfStatUasL;
822   u32 adslAturPerfCurr15MinSesL;
823   u32 adslAturPerfCurr15MinUasL;
824   u32 adslAturPerfCurr1DaySesL;
825   u32 adslAturPerfCurr1DayUasL;
826   u32 adslAturPerfPrev1DaySesL;
827   u32 adslAturPerfPrev1DayUasL;
828   u32   flags;
829 } aturPerfDataExtEntry;
830 #endif
831 //ioctl(int fd, GET_ADSL_ATUC_INTVL_INFO, void *struct_adslAtucInvtInfo)
832
833 typedef struct adslAtucIntvlInfo {
834         int ifIndex;
835         int IntervalNumber;
836         PerfIntervalCount intervalLOF;
837         PerfIntervalCount intervalLOS;
838         PerfIntervalCount intervalES;
839         PerfIntervalCount intervalInits; 
840         int intervalValidData;
841         u8 flags;
842 } adslAtucIntvlInfo;
843
844 #ifdef AMAZON_MEI_MIB_RFC3440
845 typedef struct adslAtucInvtlExtInfo
846  {
847   int ifIndex;
848   int IntervalNumber;
849   u32 adslAtucIntervalFastR;
850   u32 adslAtucIntervalFailedFastR;
851   u32 adslAtucIntervalSesL;
852   u32 adslAtucIntervalUasL;
853   u32   flags;
854 } adslAtucInvtlExtInfo;
855 #endif
856 //ioctl(int fd, GET_ADSL_ATUR_INTVL_INFO, void *struct_adslAturInvtlInfo)
857
858 typedef struct adslAturIntvlInfo {
859         int ifIndex;
860         int IntervalNumber;
861         PerfIntervalCount intervalLOF;
862         PerfIntervalCount intervalLOS;
863         PerfIntervalCount intervalLPR;
864         PerfIntervalCount intervalES;
865         int intervalValidData;
866         u8 flags;
867 } adslAturIntvlInfo;
868
869 #ifdef AMAZON_MEI_MIB_RFC3440
870 typedef struct adslAturInvtlExtInfo
871  {
872   int ifIndex;
873   int IntervalNumber;
874   u32 adslAturIntervalSesL;
875   u32 adslAturIntervalUasL;
876   u32   flags;
877 } adslAturInvtlExtInfo;
878 #endif
879 //ioctl(int fd, GET_ADSL_ATUC_CHAN_PERF_DATA,  void *struct_atucChannelPerfDataEntry)
880
881 typedef struct atucChannelPerfDataEntry
882 {
883    int                  ifIndex;
884    u32                  adslAtucChanReceivedBlks;             
885    u32                  adslAtucChanTransmittedBlks;             
886    u32                  adslAtucChanCorrectedBlks;                 
887    u32                  adslAtucChanUncorrectBlks;
888    int                  adslAtucChanPerfValidIntervals;
889    int                  adslAtucChanPerfInvalidIntervals;
890    AdslPerfTimeElapsed  adslAtucChanPerfCurr15MinTimeElapsed;
891    PerfCurrentCount     adslAtucChanPerfCurr15MinReceivedBlks;
892    PerfCurrentCount     adslAtucChanPerfCurr15MinTransmittedBlks;
893    PerfCurrentCount     adslAtucChanPerfCurr15MinCorrectedBlks;
894    PerfCurrentCount     adslAtucChanPerfCurr15MinUncorrectBlks;
895    AdslPerfTimeElapsed  adslAtucChanPerfCurr1DayTimeElapsed;
896    AdslPerfCurrDayCount adslAtucChanPerfCurr1DayReceivedBlks;
897    AdslPerfCurrDayCount adslAtucChanPerfCurr1DayTransmittedBlks;
898    AdslPerfCurrDayCount adslAtucChanPerfCurr1DayCorrectedBlks;
899    AdslPerfCurrDayCount adslAtucChanPerfCurr1DayUncorrectBlks;
900    int                  adslAtucChanPerfPrev1DayMoniSecs;
901    AdslPerfPrevDayCount adslAtucChanPerfPrev1DayReceivedBlks;
902    AdslPerfPrevDayCount adslAtucChanPerfPrev1DayTransmittedBlks;
903    AdslPerfPrevDayCount adslAtucChanPerfPrev1DayCorrectedBlks;
904    AdslPerfPrevDayCount adslAtucChanPerfPrev1DayUncorrectBlks;
905    u32                  flags;
906 }atucChannelPerfDataEntry;
907
908
909 //ioctl(int fd, GET_ADSL_ATUR_CHAN_PERF_DATA,  void *struct_aturChannelPerfDataEntry)
910
911 typedef struct aturChannelPerfDataEntry
912 {
913    int                  ifIndex;
914    u32                  adslAturChanReceivedBlks;             
915    u32                  adslAturChanTransmittedBlks;             
916    u32                  adslAturChanCorrectedBlks;                 
917    u32                  adslAturChanUncorrectBlks;
918    int                  adslAturChanPerfValidIntervals;
919    int                  adslAturChanPerfInvalidIntervals;
920    AdslPerfTimeElapsed  adslAturChanPerfCurr15MinTimeElapsed;
921    PerfCurrentCount     adslAturChanPerfCurr15MinReceivedBlks;
922    PerfCurrentCount     adslAturChanPerfCurr15MinTransmittedBlks;
923    PerfCurrentCount     adslAturChanPerfCurr15MinCorrectedBlks;
924    PerfCurrentCount     adslAturChanPerfCurr15MinUncorrectBlks;
925    AdslPerfTimeElapsed  adslAturChanPerfCurr1DayTimeElapsed;
926    AdslPerfCurrDayCount adslAturChanPerfCurr1DayReceivedBlks;
927    AdslPerfCurrDayCount adslAturChanPerfCurr1DayTransmittedBlks;
928    AdslPerfCurrDayCount adslAturChanPerfCurr1DayCorrectedBlks;
929    AdslPerfCurrDayCount adslAturChanPerfCurr1DayUncorrectBlks;
930    int                  adslAturChanPerfPrev1DayMoniSecs;
931    AdslPerfPrevDayCount adslAturChanPerfPrev1DayReceivedBlks;
932    AdslPerfPrevDayCount adslAturChanPerfPrev1DayTransmittedBlks;
933    AdslPerfPrevDayCount adslAturChanPerfPrev1DayCorrectedBlks;
934    AdslPerfPrevDayCount adslAturChanPerfPrev1DayUncorrectBlks;
935    u32                  flags;
936 } aturChannelPerfDataEntry;
937
938
939 //ioctl(int fd, GET_ADSL_ATUC_CHAN_INTVL_INFO, void *struct_adslAtucChanIntvlInfo)
940
941 typedef struct adslAtucChanIntvlInfo {
942         int ifIndex;
943         int IntervalNumber;
944         PerfIntervalCount chanIntervalRecvdBlks;
945         PerfIntervalCount chanIntervalXmitBlks;
946         PerfIntervalCount chanIntervalCorrectedBlks;
947         PerfIntervalCount chanIntervalUncorrectBlks;
948         int intervalValidData;
949         u8 flags;
950 } adslAtucChanIntvlInfo;
951
952
953 //ioctl(int fd, GET_ADSL_ATUR_CHAN_INTVL_INFO, void *struct_adslAturChanIntvlInfo)
954
955 typedef struct adslAturChanIntvlInfo {
956         int ifIndex;
957         int IntervalNumber;
958         PerfIntervalCount chanIntervalRecvdBlks;
959         PerfIntervalCount chanIntervalXmitBlks;
960         PerfIntervalCount chanIntervalCorrectedBlks;
961         PerfIntervalCount chanIntervalUncorrectBlks;
962         int intervalValidData;
963         u8 flags;
964 } adslAturChanIntvlInfo;
965
966
967 //ioctl(int fd, GET_ADSL_ALRM_CONF_PROF,  void *struct_adslLineAlarmConfProfileEntry)
968 //ioctl(int fd, SET_ADSL_ALRM_CONF_PROF,  void *struct_adslLineAlarmConfProfileEntry)
969
970 typedef struct  adslLineAlarmConfProfileEntry
971  {
972   unsigned char adslLineAlarmConfProfileName[32];
973     int         adslAtucThresh15MinLofs;
974     int         adslAtucThresh15MinLoss;
975     int         adslAtucThresh15MinESs;
976     u32         adslAtucThreshFastRateUp;
977     u32         adslAtucThreshInterleaveRateUp;
978     u32         adslAtucThreshFastRateDown;
979     u32         adslAtucThreshInterleaveRateDown;
980     int         adslAtucInitFailureTrapEnable;
981     int         adslAturThresh15MinLofs;
982     int         adslAturThresh15MinLoss;
983     int         adslAturThresh15MinLprs;
984     int         adslAturThresh15MinESs;
985     u32         adslAturThreshFastRateUp;
986     u32         adslAturThreshInterleaveRateUp;
987     u32         adslAturThreshFastRateDown;
988     u32         adslAturThreshInterleaveRateDown;
989     int         adslLineAlarmConfProfileRowStatus;
990     u32 flags;
991 } adslLineAlarmConfProfileEntry;
992
993 #ifdef AMAZON_MEI_MIB_RFC3440
994 typedef struct adslLineAlarmConfProfileExtEntry
995  {
996   u8  adslLineAlarmConfProfileExtName[32];
997   u32 adslAtucThreshold15MinFailedFastR;
998   u32 adslAtucThreshold15MinSesL;
999   u32 adslAtucThreshold15MinUasL;
1000   u32 adslAturThreshold15MinSesL;
1001   u32 adslAturThreshold15MinUasL;
1002   u32   flags;
1003 } adslLineAlarmConfProfileExtEntry;
1004 #endif
1005 //TRAPS
1006
1007 // 603221:tc.chen start
1008 /* The following Data Sturctures are added to support the WEB related parameters for ADSL Statistics */
1009 typedef struct  adslLineStatus
1010  {
1011     int         adslModemStatus;
1012     u32         adslModeSelected;
1013     int         adslAtucThresh15MinESs;
1014     int         adslTrellisCodeEnable;
1015     int         adslLatency;
1016     u8 flags;
1017  } adslLineStatusInfo;
1018
1019 typedef struct  adslLineRate
1020  {
1021     u32         adslDataRateds;
1022     u32         adslDataRateus;
1023     u32         adslATTNDRds;   
1024     u32         adslATTNDRus;   
1025     u8          flags;
1026  } adslLineRateInfo;
1027
1028 typedef struct  adslLineInfo
1029  {
1030     u32         adslInterleaveDepthds;
1031     u32         adslInterleaveDepthus;
1032     u32         adslLATNds;
1033     u32         adslLATNus;
1034     u32         adslSATNds;
1035     u32         adslSATNus;
1036     int         adslSNRMds;
1037     int         adslSNRMus;
1038     int         adslACATPds;
1039     int         adslACATPus;
1040     u32 flags;
1041  } adslLineInfo;
1042
1043 typedef struct  adslNearEndPerfStats
1044  {
1045     u32         adslSuperFrames; 
1046     u32         adslneLOS;
1047     u32         adslneLOF;
1048     u32         adslneLPR;
1049     u32         adslneNCD;
1050     u32         adslneLCD;
1051     u32         adslneCRC;
1052     u32         adslneRSCorr;
1053     u32         adslneFECS;
1054     u32         adslneES;
1055     u32         adslneSES;
1056     u32         adslneLOSS;
1057     u32         adslneUAS;
1058     u32         adslneHECErrors;
1059     u32         flags;
1060  } adslNearEndPerfStats;
1061
1062 typedef struct  adslFarEndPerfStats
1063  {
1064     u32         adslfeLOS;
1065     u32         adslfeLOF;
1066     u32         adslfeLPR;
1067     u32         adslfeNCD;
1068     u32         adslfeLCD;
1069     u32         adslfeCRC;
1070     u32         adslfeRSCorr;
1071     u32         adslfeFECS;
1072     u32         adslfeES;
1073     u32         adslfeSES;
1074     u32         adslfeLOSS;
1075     u32         adslfeUAS;
1076     u32         adslfeHECErrors;
1077     u32         flags;
1078  } adslFarEndPerfStats;
1079 // 603221:tc.chen end
1080
1081 /* The number of tones (and hence indexes) is dependent on the ADSL mode - G.992.1, G.992.2, G.992.3, * G.992.4 and G.992.5 */
1082 typedef struct adslATURSubcarrierInfo {
1083         int     ifindex;
1084         u16     HLINSCds;
1085         u16     HLINpsds[1024];/* Even index = real part; Odd Index
1086                                     = imaginary part for each tone */
1087         u16     HLOGMTds;
1088         u16     HLOGpsds[512];
1089         u16     QLNMTds;
1090         u16     QLNpsds[512];
1091         u16     SNRMTds;
1092         u16     SNRpsds[512];  
1093         u16     BITpsds[512];
1094         u16     GAINpsds[512];
1095         u16     flags;
1096 }adslATURSubcarrierInfo;
1097
1098 typedef struct adslATUCSubcarrierInfo {
1099         int     ifindex;
1100         u16     HLINSCus;
1101         u16     HLINpsus[128];/* Even index = real part; Odd Index
1102                                     = imaginary part for each tone */
1103         u16     HLOGMTus;
1104         u16     HLOGpsus[64];
1105         u16     QLNMTus;
1106         u16     QLNpsus[64]; 
1107         u16     SNRMTus;
1108         u16     SNRpsus[64];  
1109         u16     BITpsus[64];
1110         u16     GAINpsus[64];
1111         u16     flags;
1112 }adslATUCSubcarrierInfo;
1113
1114 #ifndef u_int16
1115 #define u_int16 u16
1116 #endif
1117
1118 typedef struct adslInitStats {
1119         u_int16 FullInitializationCount;
1120         u_int16 FailedFullInitializationCount;
1121         u_int16 LINIT_Errors;
1122         u_int16 Init_Timeouts;
1123 }adslInitStats;
1124
1125 typedef struct adslPowerSpectralDensity {
1126         int     ACTPSDds;
1127         int     ACTPSDus;
1128 }adslPowerSpectralDensity;
1129
1130
1131 //ioctl(int fd, ADSL_ATUR_TRAPS, void  *uint16_flags)
1132 typedef union structpts {
1133         adslLineTableEntry * adslLineTableEntry_pt;
1134         adslAtucPhysEntry * adslAtucPhysEntry_pt;
1135         adslAturPhysEntry * adslAturPhysEntry_pt;
1136         adslAtucChanInfo * adslAtucChanInfo_pt;
1137         adslAturChanInfo * adslAturChanInfo_pt;
1138         atucPerfDataEntry * atucPerfDataEntry_pt;
1139         aturPerfDataEntry * aturPerfDataEntry_pt;
1140         adslAtucIntvlInfo * adslAtucIntvlInfo_pt;
1141         adslAturIntvlInfo * adslAturIntvlInfo_pt;
1142         atucChannelPerfDataEntry * atucChannelPerfDataEntry_pt;
1143         aturChannelPerfDataEntry * aturChannelPerfDataEntry_pt;
1144         adslAtucChanIntvlInfo * adslAtucChanIntvlInfo_pt;
1145         adslAturChanIntvlInfo * adslAturChanIntvlInfo_pt;
1146         adslLineAlarmConfProfileEntry * adslLineAlarmConfProfileEntry_pt;
1147         // RFC 3440
1148         
1149     #ifdef AMAZON_MEI_MIB_RFC3440
1150         adslLineExtTableEntry * adslLineExtTableEntry_pt;
1151         atucPerfDataExtEntry * atucPerfDataExtEntry_pt;
1152         adslAtucInvtlExtInfo * adslAtucInvtlExtInfo_pt;
1153         aturPerfDataExtEntry * aturPerfDataExtEntry_pt;
1154         adslAturInvtlExtInfo * adslAturInvtlExtInfo_pt;
1155         adslLineAlarmConfProfileExtEntry * adslLineAlarmConfProfileExtEntry_pt;
1156     #endif 
1157 // 603221:tc.chen start
1158         adslLineStatusInfo      * adslLineStatusInfo_pt;
1159         adslLineRateInfo        * adslLineRateInfo_pt;
1160         adslLineInfo            * adslLineInfo_pt;
1161         adslNearEndPerfStats    * adslNearEndPerfStats_pt;
1162         adslFarEndPerfStats     * adslFarEndPerfStats_pt;
1163 // 603221:tc.chen end
1164         adslATUCSubcarrierInfo  * adslATUCSubcarrierInfo_pt;
1165         adslATURSubcarrierInfo  * adslATURSubcarrierInfo_pt;
1166         adslPowerSpectralDensity * adslPowerSpectralDensity_pt;
1167 }structpts;
1168
1169 #endif /* ] __AMAZON_MEI_APP_IOCTL_H */