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