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