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