e6048f0beab86fef9919f267350fe69216770d22
[bcm963xx.git] / bcmdrivers / broadcom / include / bcm963xx / AdslMibDef.h
1 /*
2 <:copyright-broadcom 
3  
4  Copyright (c) 2002 Broadcom Corporation 
5  All Rights Reserved 
6  No portions of this material may be reproduced in any form without the 
7  written permission of: 
8           Broadcom Corporation 
9           16215 Alton Parkway 
10           Irvine, California 92619 
11  All information contained in this document is Broadcom Corporation 
12  company private, proprietary, and trade secret. 
13  
14 :>
15 */
16 /****************************************************************************
17  *
18  * AdslMibOid.h 
19  *
20  * Description:
21  *      SNMP object identifiers for ADSL MIB and other related MIBs
22  *
23  * Copyright (c) 1993-1998 AltoCom, Inc. All rights reserved.
24  * Authors: Ilya Stomakhin
25  *
26  * $Revision: 1.19 $
27  *
28  * $Id: AdslMibDef.h,v 1.19 2005/08/11 15:08:38 ilyas Exp $
29  *
30  * $Log: AdslMibDef.h,v $
31  * Revision 1.19  2005/08/11 15:08:38  ilyas
32  * Added string scrambling checking and AnnexL/M submodes display
33  *
34  * Revision 1.18  2005/04/01 21:57:42  ilyas
35  * Added definition for PwmClock (ADSL driver)
36  *
37  * Revision 1.17  2004/07/27 19:24:40  ilyas
38  * Added AnnexM configuration option
39  *
40  * Revision 1.16  2004/06/04 18:56:01  ilyas
41  * Added counter for ADSL2 framing and performance
42  *
43  * Revision 1.15  2004/05/25 16:15:04  ilyas
44  * Added ADSL2 framing status
45  *
46  * Revision 1.14  2004/03/31 19:09:48  ilyas
47  * Added ADSL2+ modulation control
48  *
49  * Revision 1.13  2004/03/03 20:14:05  ilyas
50  * Merged changes for ADSL2+ from ADSL driver
51  *
52  * Revision 1.12  2003/10/17 21:02:12  ilyas
53  * Added more data for ADSL2
54  *
55  * Revision 1.11  2003/10/14 00:55:27  ilyas
56  * Added UAS, LOSS, SES error seconds counters.
57  * Support for 512 tones (AnnexI)
58  *
59  * Revision 1.10  2003/09/29 18:39:51  ilyas
60  * Added new definitions for AnnexI
61  *
62  * Revision 1.9  2003/07/18 19:14:34  ilyas
63  * Merged with ADSL driver
64  *
65  * Revision 1.8  2003/07/08 18:34:16  ilyas
66  * Added fields to adsl configuration structure
67  *
68  * Revision 1.7  2003/03/25 00:07:00  ilyas
69  * Added "long" BERT supprt
70  *
71  * Revision 1.6  2003/02/27 07:10:52  ilyas
72  * Added more configuration and status parameters (for EFNT)
73  *
74  * Revision 1.5  2003/01/23 20:29:37  ilyas
75  * Added structure for ADSL PHY configuration command
76  *
77  * Revision 1.4  2002/11/13 21:32:49  ilyas
78  * Added adjustK support for Centillium non-standard framing mode
79  *
80  * Revision 1.3  2002/10/31 01:35:50  ilyas
81  * Fixed size of K for S=1/2
82  *
83  * Revision 1.2  2002/10/05 03:28:31  ilyas
84  * Added extra definitions for Linux and VxWorks drivers.
85  * Added definitions for SelfTest support
86  *
87  * Revision 1.1  2002/07/20 00:51:41  ilyas
88  * Merged witchanges made for VxWorks/Linux driver.
89  *
90  * Revision 1.1  2001/12/21 22:39:30  ilyas
91  * Added support for ADSL MIB data objects (RFC2662)
92  *
93  *
94  *****************************************************************************/
95
96 #ifndef AdslMibDefHeader
97 #define AdslMibDefHeader
98
99 #if defined(__cplusplus)
100 extern "C" {
101 #endif
102
103 /* 
104 **
105 **              ADSL configuration parameters 
106 **
107 */
108
109 #define kAdslCfgModMask                                         (0x00000007 | 0x0000F000)
110 #define kAdslCfgModAny                                          0x00000000
111
112 #define kAdslCfgModGdmtOnly                                     0x00000001
113 #define kAdslCfgModGliteOnly                            0x00000002
114 #define kAdslCfgModT1413Only                            0x00000004
115 #define kAdslCfgModAnnexIOnly                           0x00000004
116 #define kAdslCfgModAdsl2Only                            0x00001000
117 #define kAdslCfgModAdsl2pOnly                           0x00002000
118
119 #define kAdslCfgBitmapMask                                      0x00000018
120 #define kAdslCfgDBM                                                     0x00000000
121 #define kAdslCfgFBM                                                     0x00000008
122 #define kAdslCfgFBMSoL                                          0x00000010
123
124 #define kAdslCfgLinePairMask                            0x00000020
125 #define kAdslCfgLineInnerPair                           0x00000000
126 #define kAdslCfgLineOuterPair                           0x00000020
127
128 #define kAdslCfgCentilliumCRCWorkAroundMask                     0x00000040
129 #define kAdslCfgCentilliumCRCWorkAroundDisabled         0x00000000
130 #define kAdslCfgCentilliumCRCWorkAroundEnabled          0x00000040
131
132 #define kAdslCfgExtraData                                       0x00000080
133 #define kAdslCfgTrellisMask                                     (0x00000100 | kAdslCfgExtraData)
134 #define kAdslCfgTrellisOn                                       (0x00000100 | kAdslCfgExtraData)
135 #define kAdslCfgTrellisOff                                      (0 | kAdslCfgExtraData)
136 #define kAdslCfgExtraMask                                       0xFFFFFF80
137
138 #define kAdslCfgLOSMonitoringMask                       0x00000200
139 #define kAdslCfgLOSMonitoringOff                        0x00000200
140 #define kAdslCfgLOSMonitoringOn                         0x00000000
141
142 #define kAdslCfgMarginMonitoringMask            0x00000400
143 #define kAdslCfgMarginMonitoringOn                      0x00000400
144 #define kAdslCfgMarginMonitoringOff                     0x00000000
145
146 #define kAdslCfgDemodCapMask                            0x00000800
147 #define kAdslCfgDemodCapOn                                      0x00000800
148 #define kAdslCfgDemodCapOff                                     0x00000000
149
150 /* Flags 0x00001000 - 0x00008000 are reserved for modulation (see above) */
151
152 /* Upstream mode flags 0x00010000 - 0x00030000 */
153
154 #define kAdslCfgUpstreamModeMask                        0x00030000
155 #define kAdslCfgUpstreamMax                                     0x00000000
156 #define kAdslCfgUpstreamSingle                          0x00010000
157 #define kAdslCfgUpstreamDouble                          0x00020000
158 #define kAdslCfgUpstreamTriple                          0x00030000
159
160 #define kAdslCfgNoSpectrumOverlap                       0x00040000
161
162 /* Pwm sync clock configuration */
163
164 #define kAdslCfgPwmSyncClockMask                        0x00080000
165 #define kAdslCfgPwmSyncClockOn                          0x00080000
166 #define kAdslCfgPwmSyncClockOff                         0x00000000
167
168 #define kAdslCfgDefaultTrainingMargin           -1
169 #define kAdslCfgDefaultShowtimeMargin           -1
170 #define kAdslCfgDefaultLOMTimeThld                      -1
171
172 /* ADSL2 parameters */
173
174 #define kAdsl2CfgReachExOn                                      0x00000001
175 #define kAdsl2CfgAnnexMEnabled                          0x00000002
176
177 #define kAdsl2CfgAnnexMPsdShift                         2
178 #define kAdsl2CfgAnnexMPsdBits                          12
179 #define kAdsl2CfgAnnexMPsdMask                          (0xFFF << kAdsl2CfgAnnexMPsdShift)
180
181 #if (((1 << kAdsl2CfgAnnexMPsdBits) - 1) != (kAdsl2CfgAnnexMPsdMask >> kAdsl2CfgAnnexMPsdShift))
182 #error Inconsistent kAdsl2CfgAnnexM definitions
183 #endif
184
185 #define kAdsl2CfgAnnexMUp32                 (0x00000001 << kAdsl2CfgAnnexMPsdShift)
186 #define kAdsl2CfgAnnexMUp36                 (0x00000002 << kAdsl2CfgAnnexMPsdShift) 
187 #define kAdsl2CfgAnnexMUp40                 (0x00000004 << kAdsl2CfgAnnexMPsdShift) 
188 #define kAdsl2CfgAnnexMUp44                 (0x00000008 << kAdsl2CfgAnnexMPsdShift)
189 #define kAdsl2CfgAnnexMUp48                 (0x00000010 << kAdsl2CfgAnnexMPsdShift)
190 #define kAdsl2CfgAnnexMUp52                 (0x00000020 << kAdsl2CfgAnnexMPsdShift)
191 #define kAdsl2CfgAnnexMUp56                 (0x00000040 << kAdsl2CfgAnnexMPsdShift)
192 #define kAdsl2CfgAnnexMUp60                 (0x00000080 << kAdsl2CfgAnnexMPsdShift)
193 #define kAdsl2CfgAnnexMUp64                 (0x00000100 << kAdsl2CfgAnnexMPsdShift)
194 #define kAdsl2CfgAnnexMCustomPsd            (0x00000200 << kAdsl2CfgAnnexMPsdShift)
195
196 #define kAdsl2CfgAnnexLShift                            (2 + kAdsl2CfgAnnexMPsdBits)
197 #define kAdsl2CfgAnnexLMask                                     (0x7 << kAdsl2CfgAnnexLShift)
198
199 #define kAdsl2CfgAnnexLUpWide               (0x00000001 << kAdsl2CfgAnnexLShift)
200 #define kAdsl2CfgAnnexLUpNarrow             (0x00000002 << kAdsl2CfgAnnexLShift)
201 #define kAdsl2CfgAnnexLDnOvlap                          (0x00000004 << kAdsl2CfgAnnexLShift)
202
203 typedef struct _adslCfgProfile {
204         long            adslAnnexCParam;
205         long            adslAnnexAParam;
206         long            adslTrainingMarginQ4;
207         long            adslShowtimeMarginQ4;
208         long            adslLOMTimeThldSec;
209         long            adslDemodCapMask;
210         long            adslDemodCapValue;
211         long            adsl2Param;
212         long            adslPwmSyncClockFreq;
213         long            adslHsModeSwitchTime;
214 } adslCfgProfile;
215
216 /* 
217 **
218 **              ADSL PHY configuration
219 **
220 */
221
222 typedef struct _adslPhyCfg {
223         long            demodCapMask;
224         long            demodCap;
225 } adslPhyCfg;
226
227 /* 
228 **
229 **              ADSL version info parameters 
230 **
231 */
232
233 #define kAdslVersionStringSize                          32
234
235 #define kAdslTypeUnknown                                        0
236 #define kAdslTypeAnnexA                                         1
237 #define kAdslTypeAnnexB                                         2
238 #define kAdslTypeAnnexC                                         3
239 #define kAdslTypeSADSL                                          4
240
241 typedef struct _adslVersionInfo {
242         unsigned short  phyType;
243         unsigned short  phyMjVerNum;
244         unsigned short  phyMnVerNum;
245         char                    phyVerStr[kAdslVersionStringSize];
246         unsigned short  drvMjVerNum;
247         unsigned short  drvMnVerNum;
248         char                    drvVerStr[kAdslVersionStringSize];
249 } adslVersionInfo;
250
251 /* 
252 **
253 **              ADSL self-test parameters 
254 **
255 */
256
257 #define kAdslSelfTestLMEM                                       0x00000001
258 #define kAdslSelfTestSDRAM                                      0x00000002
259 #define kAdslSelfTestAFE                                        0x00000004
260 #define kAdslSelfTestQproc                                      0x00000008
261 #define kAdslSelfTestRS                                         0x00000010
262 #define kAdslSelfTestHostDma                            0x00000020
263
264 #define kAdslSelfTestAll                                        ((kAdslSelfTestHostDma - 1) | kAdslSelfTestHostDma)
265
266 #define kAdslSelfTestInProgress                         0x40000000
267 #define kAdslSelfTestCompleted                          0x80000000
268
269 /* MIB OID's for ADSL objects */
270
271 #define kOidMaxObjLen                                           80
272
273 #define kOidAdsl                                                        94
274 #define kOidAdslInterleave                                      124
275 #define kOidAdslFast                                            125
276 #define kOidAtm                                                         37
277 #define kOidAdslPrivate                                         255
278 #define kOidAdslPrivatePartial                          254
279
280 #define kAdslMibAnnexAToneNum                           256
281 #define kAdslMibToneNum                                         kAdslMibAnnexAToneNum
282 #define kAdslMibMaxToneNum                                      kAdslMibAnnexAToneNum*2*2
283
284 #define kOidAdslPrivSNR                                         1
285 #define kOidAdslPrivBitAlloc                            2
286 #define kOidAdslPrivGain                                        3
287 #define kOidAdslPrivShowtimeMargin                      4
288 #define kOidAdslPrivChanCharLin                         5
289 #define kOidAdslPrivChanCharLog                         6
290 #define kOidAdslPrivQuietLineNoise                      7
291 #define kOidAdslPrivExtraInfo                           255
292
293 #define kOidAdslLine                                            1
294 #define kOidAdslMibObjects                                      1
295
296 #define kOidAdslLineTable                                       1
297 #define kOidAdslLineEntry                                       1
298 #define kOidAdslLineCoding                                      1
299 #define kOidAdslLineType                                        2
300 #define kOidAdslLineSpecific                        3
301 #define kOidAdslLineConfProfile                         4
302 #define kOidAdslLineAlarmConfProfile            5
303
304 #define kOidAdslAtucPhysTable                           2
305 #define kOidAdslAturPhysTable                           3
306 #define kOidAdslPhysEntry                                       1
307 #define kOidAdslPhysInvSerialNumber             1
308 #define kOidAdslPhysInvVendorID             2
309 #define kOidAdslPhysInvVersionNumber            3
310 #define kOidAdslPhysCurrSnrMgn                  4
311 #define kOidAdslPhysCurrAtn                     5
312 #define kOidAdslPhysCurrStatus                  6
313 #define kOidAdslPhysCurrOutputPwr               7
314 #define kOidAdslPhysCurrAttainableRate          8
315
316 #define kOidAdslAtucChanTable                           4
317 #define kOidAdslAturChanTable                           5
318 #define kOidAdslChanEntry                                       1
319 #define kOidAdslChanInterleaveDelay                     1
320 #define kOidAdslChanCurrTxRate                          2
321 #define kOidAdslChanPrevTxRate                  3
322 #define kOidAdslChanCrcBlockLength              4
323
324 #define kOidAdslAtucPerfDataTable                       6
325 #define kOidAdslAturPerfDataTable                       7
326 #define kOidAdslPerfDataEntry                           1
327 #define kOidAdslPerfLofs                        1
328 #define kOidAdslPerfLoss                        2
329 #define kOidAdslPerfLprs                        3
330 #define kOidAdslPerfESs                         4
331 #define kOidAdslPerfValidIntervals          5
332 #define kOidAdslPerfInvalidIntervals            6
333 #define kOidAdslPerfCurr15MinTimeElapsed        7
334 #define kOidAdslPerfCurr15MinLofs               8
335 #define kOidAdslPerfCurr15MinLoss               9
336 #define kOidAdslPerfCurr15MinLprs               10
337 #define kOidAdslPerfCurr15MinESs                11
338 #define kOidAdslPerfCurr1DayTimeElapsed     12
339 #define kOidAdslPerfCurr1DayLofs                13
340 #define kOidAdslPerfCurr1DayLoss                14
341 #define kOidAdslPerfCurr1DayLprs                15
342 #define kOidAdslPerfCurr1DayESs                 16
343 #define kOidAdslPerfPrev1DayMoniSecs            17
344 #define kOidAdslPerfPrev1DayLofs                18
345 #define kOidAdslPerfPrev1DayLoss            19
346 #define kOidAdslPerfPrev1DayLprs                20
347 #define kOidAdslPerfPrev1DayESs                 21
348
349 #define kOidAdslAtucPerfIntervalTable           8
350 #define kOidAdslAturPerfIntervalTable           9
351 #define kOidAdslPerfIntervalEntry                       1
352 #define kOidAdslIntervalNumber                          1
353 #define kOidAdslIntervalLofs                            2
354 #define kOidAdslIntervalLoss                            3
355 #define kOidAdslIntervalLprs                            4
356 #define kOidAdslIntervalESs                                     5
357 #define kOidAdslIntervalValidData                       6
358
359 #define kOidAdslAtucChanPerfTable                                       10
360 #define kOidAdslAturChanPerfTable                                       11
361 #define kOidAdslChanPerfEntry                                           1
362 #define kOidAdslChanReceivedBlks                        1
363 #define kOidAdslChanTransmittedBlks                     2
364 #define kOidAdslChanCorrectedBlks                       3
365 #define kOidAdslChanUncorrectBlks                       4
366 #define kOidAdslChanPerfValidIntervals                  5
367 #define kOidAdslChanPerfInvalidIntervals                6
368 #define kOidAdslChanPerfCurr15MinTimeElapsed            7
369 #define kOidAdslChanPerfCurr15MinReceivedBlks           8
370 #define kOidAdslChanPerfCurr15MinTransmittedBlks        9
371 #define kOidAdslChanPerfCurr15MinCorrectedBlks          10
372 #define kOidAdslChanPerfCurr15MinUncorrectBlks          11
373 #define kOidAdslChanPerfCurr1DayTimeElapsed             12
374 #define kOidAdslChanPerfCurr1DayReceivedBlks            13
375 #define kOidAdslChanPerfCurr1DayTransmittedBlks         14
376 #define kOidAdslChanPerfCurr1DayCorrectedBlks           15
377 #define kOidAdslChanPerfCurr1DayUncorrectBlks           16
378 #define kOidAdslChanPerfPrev1DayMoniSecs                17
379 #define kOidAdslChanPerfPrev1DayReceivedBlks            18
380 #define kOidAdslChanPerfPrev1DayTransmittedBlks         19
381 #define kOidAdslChanPerfPrev1DayCorrectedBlks           20
382 #define kOidAdslChanPerfPrev1DayUncorrectBlks           21
383
384 #define kOidAdslAtucChanIntervalTable                           12
385 #define kOidAdslAturChanIntervalTable                           13
386 #define kOidAdslChanIntervalEntry                                       1
387 #define kOidAdslChanIntervalNumber                                      1
388 #define kOidAdslChanIntervalReceivedBlks                2
389 #define kOidAdslChanIntervalTransmittedBlks             3
390 #define kOidAdslChanIntervalCorrectedBlks               4
391 #define kOidAdslChanIntervalUncorrectBlks               5
392 #define kOidAdslChanIntervalValidData                   6
393
394 #define kOidAtmMibObjects               1
395 #define kOidAtmTcTable                  4
396 #define kOidAtmTcEntry                  1
397 #define kOidAtmOcdEvents                1
398 #define kOidAtmAlarmState               2
399
400 /* Adsl Channel coding */
401
402 #define kAdslRcvDir                     0
403 #define kAdslXmtDir                     1
404
405 #define kAdslRcvActive          (1 << kAdslRcvDir)
406 #define kAdslXmtActive          (1 << kAdslXmtDir)
407
408 #define kAdslIntlChannel        0
409 #define kAdslFastChannel        1
410
411 #define kAdslTrellisOff         0
412 #define kAdslTrellisOn          1
413
414 /* AnnexC modulation and bitmap types for the field (adslConnection.modType) */
415
416 #define kAdslModMask            0x7
417
418 #define kAdslModGdmt            0
419 #define kAdslModT1413           1
420 #define kAdslModGlite           2
421 #define kAdslModAnnexI          3
422 #define kAdslModAdsl2           4
423 #define kAdslModAdsl2p          5
424 #define kAdslModReAdsl2         6
425
426 #define kAdslBitmapShift        3
427 #define kAdslBitmapMask         kAdslCfgBitmapMask
428 #define kAdslDBM                    (0 << kAdslBitmapShift)
429 #define kAdslFBM                    (1 << kAdslBitmapShift)
430 #define kAdslFBMSoL                     (2 << kAdslBitmapShift)
431
432 #define kAdslUpstreamModeShift          5
433 #define kAdslUpstreamModeMask           (3 << kAdslUpstreamModeShift)
434 #define kAdslUpstreamModeSingle         (0 << kAdslUpstreamModeShift)
435 #define kAdslUpstreamModeDouble         (1 << kAdslUpstreamModeShift)
436 #define kAdslUpstreamModeTriple         (2 << kAdslUpstreamModeShift)
437
438 /* AdslLineCodingType definitions */
439
440 #define kAdslLineCodingOther            1
441 #define kAdslLineCodingDMT                      2
442 #define kAdslLineCodingCAP                      3
443 #define kAdslLineCodingQAM                      4
444
445 /* AdslLineType definitions */
446
447 #define kAdslLineTypeNoChannel          1
448 #define kAdslLineTypeFastOnly           2
449 #define kAdslLineTypeIntlOnly           3
450 #define kAdslLineTypeFastOrIntl         4
451 #define kAdslLineTypeFastAndIntl        5
452
453 typedef struct _adslLineEntry {
454         unsigned char   adslLineCoding;
455         unsigned char   adslLineType;
456 } adslLineEntry;
457
458
459 /* AdslPhys status definitions */
460
461 #define kAdslPhysStatusNoDefect         (1 << 0)
462 #define kAdslPhysStatusLOF                      (1 << 1)        /* lossOfFraming (not receiving valid frame) */
463 #define kAdslPhysStatusLOS                      (1 << 2)        /* lossOfSignal (not receiving signal) */
464 #define kAdslPhysStatusLPR                      (1 << 3)        /* lossOfPower */
465 #define kAdslPhysStatusLOSQ                     (1 << 4)        /* lossOfSignalQuality */
466 #define kAdslPhysStatusLOM                      (1 << 5)        /* lossOfMargin */
467
468 typedef struct _adslPhysEntry {
469         long            adslCurrSnrMgn;
470         long            adslCurrAtn;
471         long            adslCurrStatus;
472         long            adslCurrOutputPwr;
473         long            adslCurrAttainableRate;
474         long            adslSignalAttn;
475         long            adslHlinScaleFactor;
476 } adslPhysEntry;
477
478 #define kAdslPhysVendorIdLen            8
479 #define kAdslPhysSerialNumLen           32
480 #define kAdslPhysVersionNumLen          32
481
482 typedef struct _adslFullPhysEntry {
483         char            adslSerialNumber[kAdslPhysSerialNumLen];
484         char            adslVendorID[kAdslPhysVendorIdLen];
485         char            adslVersionNumber[kAdslPhysVersionNumLen];
486         long            adslCurrSnrMgn;
487         long            adslCurrAtn;
488         long            adslCurrStatus;
489         long            adslCurrOutputPwr;
490         long            adslCurrAttainableRate;
491         long            adslSignalAttn;
492         long            adslHlinScaleFactor;
493 } adslFullPhysEntry;
494
495 /* Adsl channel entry definitions */
496
497 typedef struct _adslChanEntry {
498     unsigned long               adslChanIntlDelay;
499         unsigned long           adslChanCurrTxRate;
500         unsigned long           adslChanPrevTxRate;
501         unsigned long           adslChanCrcBlockLength;
502 } adslChanEntry;
503
504 /* Adsl performance data definitions */
505
506 typedef struct _adslPerfCounters {
507         unsigned long           adslLofs;
508         unsigned long           adslLoss;
509         unsigned long           adslLols;       /* Loss of Link failures (ATUC only) */
510         unsigned long           adslLprs;
511         unsigned long           adslESs;        /* Count of Errored Seconds */
512         unsigned long           adslInits;      /* Count of Line initialization attempts (ATUC only) */
513         unsigned long           adslUAS;        /* Count of Unavailable Seconds */
514         unsigned long           adslSES;        /* Count of Severely Errored Seconds */
515         unsigned long           adslLOSS;       /* Count of LOS seconds */
516         unsigned long           adslFECs;       /* Count of FEC seconds  */
517         unsigned long           adslLCDS;       /* Count of LCD Errored Seconds */
518 } adslPerfCounters;
519
520 typedef struct _adslFailureCounters {
521         unsigned long           adslRetr;               /* Count of total retrains */
522         unsigned long           adslRetrLof;    /* Count of retrains due to LOF */
523         unsigned long           adslRetrLos;    /* Count of retrains due to LOS */
524         unsigned long           adslRetrLpr;    /* Count of retrains due to LPR */
525         unsigned long           adslRetrLom;    /* Count of retrains due to LOM */
526         unsigned long           adslInitErr;    /* Count of training failures */
527         unsigned long           adslInitTo;             /* Count of training timeouts */
528         unsigned long           adslLineSearch; /* Count of line search inits */
529 } adslFailureCounters;
530
531 typedef struct _adslPerfDataEntry {
532         adslPerfCounters        perfTotal;
533         unsigned long                           adslPerfValidIntervals;
534         unsigned long                           adslPerfInvalidIntervals;
535         adslPerfCounters        perfCurr15Min;
536         unsigned long                           adslPerfCurr15MinTimeElapsed;
537         adslPerfCounters        perfCurr1Day;
538         unsigned long                           adslPerfCurr1DayTimeElapsed;
539         adslPerfCounters        perfPrev1Day;
540         unsigned long                           adslAturPerfPrev1DayMoniSecs;
541         adslFailureCounters failTotal;
542 } adslPerfDataEntry;
543
544 #define kAdslMibPerfIntervals           4
545
546 /* Adsl channel performance data definitions */
547
548 typedef struct _adslChanCounters {
549         unsigned long           adslChanReceivedBlks;
550         unsigned long           adslChanTransmittedBlks;
551         unsigned long           adslChanCorrectedBlks;
552         unsigned long           adslChanUncorrectBlks;
553 } adslChanCounters;
554
555 typedef struct _adslChanPerfDataEntry {
556         adslChanCounters        perfTotal;
557         unsigned long                           adslChanPerfValidIntervals;
558         unsigned long                           adslChanPerfInvalidIntervals;
559         adslChanCounters        perfCurr15Min;
560         unsigned long                           adslPerfCurr15MinTimeElapsed;
561         adslChanCounters        perfCurr1Day;
562         unsigned long                           adslPerfCurr1DayTimeElapsed;
563         adslChanCounters        perfPrev1Day;
564         unsigned long                           adslAturPerfPrev1DayMoniSecs;
565 } adslChanPerfDataEntry;
566
567 #define kAdslMibChanPerfIntervals       4
568
569 /* Adsl trap threshold definitions */
570
571 #define kAdslEventLinkChange            0x001
572 #define kAdslEventRateChange            0x002
573 #define kAdslEventLofThresh                     0x004
574 #define kAdslEventLosThresh                     0x008
575 #define kAdslEventLprThresh                     0x010
576 #define kAdslEventESThresh                      0x020
577 #define kAdslEventFastUpThresh          0x040
578 #define kAdslEventIntlUpThresh          0x080
579 #define kAdslEventFastDownThresh        0x100
580 #define kAdslEventIntlDwonThresh        0x200
581
582 typedef struct _adslThreshCounters {
583         unsigned long           adslThreshLofs;
584         unsigned long           adslThreshLoss;
585         unsigned long           adslThreshLols; /* Loss of Link failures (ATUC only) */
586         unsigned long           adslThreshLprs;
587         unsigned long           adslThreshESs;
588         unsigned long           adslThreshFastRateUp;
589         unsigned long           adslThreshIntlRateUp;
590         unsigned long           adslThreshFastRateDown;
591         unsigned long           adslThreshIntlRateDown;
592 } adslThreshCounters;
593
594
595 /* Atm PHY performance data definitions */
596
597 #define kAtmPhyStateNoAlarm                     1
598 #define kAtmPhyStateLcdFailure          2
599
600 typedef struct _atmPhyDataEntrty {
601         unsigned long           atmInterfaceOCDEvents;
602         unsigned long           atmInterfaceTCAlarmState;
603 } atmPhyDataEntrty;
604
605 typedef struct _adslBertResults {
606         unsigned long           bertTotalBits;
607         unsigned long           bertErrBits;
608 } adslBertResults;
609
610 typedef struct {
611         unsigned long           cntHi;
612         unsigned long           cntLo;
613 } cnt64;
614
615 typedef struct _adslBertStatusEx {
616         unsigned long           bertSecTotal;
617         unsigned long           bertSecElapsed;
618         unsigned long           bertSecCur;
619         cnt64                           bertTotalBits;
620         cnt64                           bertErrBits;
621 } adslBertStatusEx;
622
623 typedef struct _adslDataConnectionInfo {
624         unsigned short          K;
625         unsigned char           S, R, D;
626 } adslDataConnectionInfo;
627
628 typedef struct _adslConnectionInfo {
629         unsigned char                   chType;                         /* fast or interleaved */
630         unsigned char                   modType;                        /* modulation type: G.DMT or T1.413 */
631         unsigned char                   trellisCoding;          /* off(0) or on(1) */
632         adslDataConnectionInfo  rcvInfo;
633         adslDataConnectionInfo  xmtInfo;
634 } adslConnectionInfo;
635
636 typedef struct _adsl2DataConnectionInfo {
637         unsigned char           Nlp;
638         unsigned char           Nbc;
639         unsigned char           MSGlp;
640         unsigned short          MSGc;
641
642         unsigned long           L;
643         unsigned short          M;
644         unsigned short          T;
645         unsigned short          D;
646         unsigned short          R;
647         unsigned short          B;
648 } adsl2DataConnectionInfo;
649
650 /* ADSL2 connection parameters */
651
652 #define kAdsl2ModeAnnexMask                                     0xF
653
654 #define kAdsl2ModeAnnexMUp32                            1
655 #define kAdsl2ModeAnnexMUp36                            2 
656 #define kAdsl2ModeAnnexMUp40                            3 
657 #define kAdsl2ModeAnnexMUp44                4
658 #define kAdsl2ModeAnnexMUp48                5
659 #define kAdsl2ModeAnnexMUp52                            6
660 #define kAdsl2ModeAnnexMUp56                7
661 #define kAdsl2ModeAnnexMUp60                8
662 #define kAdsl2ModeAnnexMUp64                9
663
664 #define kAdsl2ModeAnnexLShift                           4
665 #define kAdsl2ModeAnnexLMask                            (0x3 << kAdsl2ModeAnnexLShift)
666
667 #define kAdsl2ModeAnnexLUpMask                          (0x00000001 << kAdsl2ModeAnnexLShift)
668 #define kAdsl2ModeAnnexLUpWide              (0x00000000 << kAdsl2ModeAnnexLShift)
669 #define kAdsl2ModeAnnexLUpNarrow            (0x00000001 << kAdsl2ModeAnnexLShift)
670
671 #define kAdsl2ModeAnnexLDnMask                          (0x00000002 << kAdsl2ModeAnnexLShift)
672 #define kAdsl2ModeAnnexLDnNonOvlap                      (0x00000000 << kAdsl2ModeAnnexLShift)
673 #define kAdsl2ModeAnnexLDnOvlap                         (0x00000002 << kAdsl2ModeAnnexLShift)
674
675 typedef struct _adsl2ConnectionInfo {
676         long                                    adsl2Mode;
677         long                                    rcvRate;
678         long                                    xmtRate;
679         unsigned char                   pwrState;                       /* Lx state: x = 0..3 */
680         adsl2DataConnectionInfo rcv2Info;
681         adsl2DataConnectionInfo xmt2Info;
682 } adsl2ConnectionInfo;
683
684 typedef struct _adslConnectionDataStat {
685         unsigned long                   cntRS;  
686         unsigned long                   cntRSCor;       
687         unsigned long                   cntRSUncor;     
688         unsigned long                   cntSF;  
689         unsigned long                   cntSFErr;       
690 } adslConnectionDataStat;
691
692 typedef struct _adslConnectionStat {
693         adslConnectionDataStat  rcvStat;
694         adslConnectionDataStat  xmtStat;
695 } adslConnectionStat;
696
697 typedef struct _atmConnectionDataStat {
698         unsigned long                   cntHEC;
699         unsigned long                   cntOCD;
700         unsigned long                   cntLCD;
701         unsigned long                   cntES;
702         unsigned long                   cntCellTotal;
703         unsigned long                   cntCellData;
704         unsigned long                   cntCellDrop;
705         unsigned long                   cntBitErrs;
706 } atmConnectionDataStat;
707
708 typedef struct _atmConnectionStat {
709         atmConnectionDataStat   rcvStat;
710         atmConnectionDataStat   xmtStat;
711 } atmConnectionStat;
712
713 #define kAdslFramingModeMask                    0x0F
714 #define kAtmFramingModeMask                             0xF0
715 #define kAtmHeaderCompression                   0x80
716
717 /* ADSL2 data */
718
719 typedef struct _adslDiagModeData {
720         long                                    loopAttn;
721         long                                    signalAttn;
722         long                                    snrMargin;
723         long                                    attnDataRate;
724         long                                    actXmtPower;
725         long                                    hlinScaleFactor;
726 } adslDiagModeData;
727
728 /* AdslMibGetObjectValue return codes */
729
730 #define kAdslMibStatusSuccess                   0
731 #define kAdslMibStatusFailure                   -1
732 #define kAdslMibStatusNoObject                  -2
733 #define kAdslMibStatusObjectInvalid             -3
734 #define kAdslMibStatusBufferTooSmall    -4
735 #define kAdslMibStatusLastError                 -4
736
737 /* Adsl training codes */
738
739 #define kAdslTrainingIdle                               0
740 #define kAdslTrainingG994                               1
741 #define kAdslTrainingG992Started                2
742 #define kAdslTrainingG992ChanAnalysis   3
743 #define kAdslTrainingG992Exchange               4
744 #define kAdslTrainingConnected                  5
745
746 /* Global info structure */
747
748 typedef struct _adslMibInfo {
749         adslLineEntry                   adslLine;
750         adslPhysEntry                   adslPhys;
751         adslChanEntry                   adslChanIntl;
752         adslChanEntry                   adslChanFast;
753         adslPerfDataEntry               adslPerfData;
754         adslPerfCounters                adslPerfIntervals[kAdslMibPerfIntervals];
755         adslChanPerfDataEntry   adslChanIntlPerfData;
756         adslChanPerfDataEntry   adslChanFastPerfData;
757         adslChanCounters                adslChanIntlPerfIntervals[kAdslMibChanPerfIntervals];
758         adslChanCounters                adslChanFastPerfIntervals[kAdslMibChanPerfIntervals];
759
760         adslThreshCounters              adslAlarm;
761
762         atmPhyDataEntrty                adslChanIntlAtmPhyData;
763         atmPhyDataEntrty                adslChanFastAtmPhyData;
764
765         adslBertResults                 adslBertRes;
766
767         adslConnectionInfo              adslConnection;
768         adslConnectionStat              adslStat;
769         unsigned char                   adslTrainingState;
770         atmConnectionStat               atmStat;
771
772         adslFullPhysEntry               adslAtucPhys;
773         unsigned char                   adslRxNonStdFramingAdjustK;
774         unsigned char                   adslFramingMode;
775         adslBertStatusEx                adslBertStatus;
776         long                                    afeRxPgaGainQ1;
777
778         adslDiagModeData                adslDiag;
779         adsl2ConnectionInfo             adsl2Info;
780         adslPerfCounters                adslTxPerfTotal;
781         adslPerfCounters                adslTxPerfLast15Min;
782         adslPerfCounters                adslTxPerfLast1Day;
783 } adslMibInfo;
784
785 #if defined(__cplusplus)
786 }
787 #endif
788
789 #endif  /* AdslMibDefHeader */