4 Copyright (c) 2002 Broadcom Corporation
6 No portions of this material may be reproduced in any form without the
10 Irvine, California 92619
11 All information contained in this document is Broadcom Corporation
12 company private, proprietary, and trade secret.
16 /****************************************************************************
21 * Authors: Ben Bradshaw
23 *****************************************************************************/
25 #ifndef VdslInfoDefHeader
26 #define VdslInfoDefHeader
28 #include "AdslMibDef.h"
30 #if defined(__cplusplus)
36 ** VDSL configuration parameters
41 /* Bandplan parameters */
43 #define kVdslCfgBandplanMask 0x00000003
44 #define kVdslCfg3Band 0x00000000
45 #define kVdslCfg4Band 0x00000001
46 #define kVdslCfg5Band 0x00000002
47 #define kVdslCfgUS0 0x00000003
49 /* Single/dual latency parameters */
51 #define kVdslCfgLatencyMask 0x00000030
52 #define kVdslCfgSingleLatency 0x00000010
53 #define kVdslCfgDualLatency 0x00000020
55 typedef struct _vdslCfgProfile {
61 ** VDSL PHY configuration
65 typedef struct _vdslPhyCfg {
72 ** VDSL version info parameters
76 #define kVdslVersionStringSize 64
78 #define kVdslTypeUnknown 0
79 #define kAdslTypeVDSL 1
81 typedef struct _vdslVersionInfo {
82 unsigned short phyType;
83 unsigned short phyMjVerNum;
84 unsigned short phyMnVerNum;
85 char phyVerStr[kVdslVersionStringSize];
86 unsigned short drvMjVerNum;
87 unsigned short drvMnVerNum;
88 char drvVerStr[kVdslVersionStringSize];
92 /* For PTM mode vp/vc configuration */
102 ** VDSL self-test parameters
106 #define kVdslSelfTestInProgress 0x40000000
107 #define kVdslSelfTestCompleted 0x80000000
109 /* MIB OID's for VDSL objects */
111 #define kOidMaxObjLen 80
114 #define kOidVdslInterleave 124
115 #define kOidVdslFast 125
117 #define kOidVdslPrivate 255
118 #define kOidVdslPrivatePartial 254
120 #define kOidVdslPrivSNR 1
121 #define kOidVdslPrivBitAlloc 2
122 #define kOidVdslPrivGain 3
123 #define kOidVdslPrivShowtimeMargin 4
124 #define kOidVdslPrivChanCharLin 5
125 #define kOidVdslPrivChanCharLog 6
126 #define kOidVdslPrivQuietLineNoise 7
127 #define kOidVdslPrivExtraInfo 255
129 #define kOidVdslLine 1
130 #define kOidVdslMibObjects 1
132 #define kOidVdslLineTable 1
133 #define kOidVdslLineEntry 1
134 #define kOidVdslLineCoding 1
135 #define kOidVdslLineType 2
136 #define kOidVdslLineSpecific 3
137 #define kOidVdslLineConfProfile 4
138 #define kOidVdslLineAlarmConfProfile 5
140 #define kOidVdslAtucPhysTable 2
141 #define kOidVdslAturPhysTable 3
142 #define kOidVdslPhysEntry 1
143 #define kOidVdslPhysInvSerialNumber 1
144 #define kOidVdslPhysInvVendorID 2
145 #define kOidVdslPhysInvVersionNumber 3
146 #define kOidVdslPhysCurrSnrMgn 4
147 #define kOidVdslPhysCurrAtn 5
148 #define kOidVdslPhysCurrStatus 6
149 #define kOidVdslPhysCurrOutputPwr 7
150 #define kOidVdslPhysCurrAttainableRate 8
152 #define kOidVdslAtucChanTable 4
153 #define kOidVdslAturChanTable 5
154 #define kOidVdslChanEntry 1
155 #define kOidVdslChanInterleaveDelay 1
156 #define kOidVdslChanCurrTxRate 2
157 #define kOidVdslChanPrevTxRate 3
158 #define kOidVdslChanCrcBlockLength 4
160 #define kOidVdslAtucPerfDataTable 6
161 #define kOidVdslAturPerfDataTable 7
162 #define kOidVdslPerfDataEntry 1
163 #define kOidVdslPerfLofs 1
164 #define kOidVdslPerfLoss 2
165 #define kOidVdslPerfLprs 3
166 #define kOidVdslPerfESs 4
167 #define kOidVdslPerfValidIntervals 5
168 #define kOidVdslPerfInvalidIntervals 6
169 #define kOidVdslPerfCurr15MinTimeElapsed 7
170 #define kOidVdslPerfCurr15MinLofs 8
171 #define kOidVdslPerfCurr15MinLoss 9
172 #define kOidVdslPerfCurr15MinLprs 10
173 #define kOidVdslPerfCurr15MinESs 11
174 #define kOidVdslPerfCurr1DayTimeElapsed 12
175 #define kOidVdslPerfCurr1DayLofs 13
176 #define kOidVdslPerfCurr1DayLoss 14
177 #define kOidVdslPerfCurr1DayLprs 15
178 #define kOidVdslPerfCurr1DayESs 16
179 #define kOidVdslPerfPrev1DayMoniSecs 17
180 #define kOidVdslPerfPrev1DayLofs 18
181 #define kOidVdslPerfPrev1DayLoss 19
182 #define kOidVdslPerfPrev1DayLprs 20
183 #define kOidVdslPerfPrev1DayESs 21
185 #define kOidVdslAtucPerfIntervalTable 8
186 #define kOidVdslAturPerfIntervalTable 9
187 #define kOidVdslPerfIntervalEntry 1
188 #define kOidVdslIntervalNumber 1
189 #define kOidVdslIntervalLofs 2
190 #define kOidVdslIntervalLoss 3
191 #define kOidVdslIntervalLprs 4
192 #define kOidVdslIntervalESs 5
193 #define kOidVdslIntervalValidData 6
195 #define kOidVdslAtucChanPerfTable 10
196 #define kOidVdslAturChanPerfTable 11
197 #define kOidVdslChanPerfEntry 1
198 #define kOidVdslChanReceivedBlks 1
199 #define kOidVdslChanTransmittedBlks 2
200 #define kOidVdslChanCorrectedBlks 3
201 #define kOidVdslChanUncorrectBlks 4
202 #define kOidVdslChanPerfValidIntervals 5
203 #define kOidVdslChanPerfInvalidIntervals 6
204 #define kOidVdslChanPerfCurr15MinTimeElapsed 7
205 #define kOidVdslChanPerfCurr15MinReceivedBlks 8
206 #define kOidVdslChanPerfCurr15MinTransmittedBlks 9
207 #define kOidVdslChanPerfCurr15MinCorrectedBlks 10
208 #define kOidVdslChanPerfCurr15MinUncorrectBlks 11
209 #define kOidVdslChanPerfCurr1DayTimeElapsed 12
210 #define kOidVdslChanPerfCurr1DayReceivedBlks 13
211 #define kOidVdslChanPerfCurr1DayTransmittedBlks 14
212 #define kOidVdslChanPerfCurr1DayCorrectedBlks 15
213 #define kOidVdslChanPerfCurr1DayUncorrectBlks 16
214 #define kOidVdslChanPerfPrev1DayMoniSecs 17
215 #define kOidVdslChanPerfPrev1DayReceivedBlks 18
216 #define kOidVdslChanPerfPrev1DayTransmittedBlks 19
217 #define kOidVdslChanPerfPrev1DayCorrectedBlks 20
218 #define kOidVdslChanPerfPrev1DayUncorrectBlks 21
220 #define kOidVdslAtucChanIntervalTable 12
221 #define kOidVdslAturChanIntervalTable 13
222 #define kOidVdslChanIntervalEntry 1
223 #define kOidVdslChanIntervalNumber 1
224 #define kOidVdslChanIntervalReceivedBlks 2
225 #define kOidVdslChanIntervalTransmittedBlks 3
226 #define kOidVdslChanIntervalCorrectedBlks 4
227 #define kOidVdslChanIntervalUncorrectBlks 5
228 #define kOidVdslChanIntervalValidData 6
230 #define kOidAtmMibObjects 1
231 #define kOidAtmTcTable 4
232 #define kOidAtmTcEntry 1
233 #define kOidAtmOcdEvents 1
234 #define kOidAtmAlarmState 2
236 /* Vdsl Channel coding */
238 #define kVdslRcvDir 0
239 #define kVdslXmtDir 1
241 #define kVdslRcvActive (1 << kVdslRcvDir)
242 #define kVdslXmtActive (1 << kVdslXmtDir)
244 #define kVdslIntlChannel 0
245 #define kVdslFastChannel 1
247 #define kVdslTrellisOff 0
248 #define kVdslTrellisOn 1
250 /* AnnexC modulation and bitmap types for the field (vdslConnection.modType) */
252 #define kVdslModMask 0x7
254 #define kVdslModGdmt 0
256 /* VdslLineCodingType definitions */
258 #define kVdslLineCodingOther 1
259 #define kVdslLineCodingDMT 2
260 #define kVdslLineCodingCAP 3
261 #define kVdslLineCodingQAM 4
263 /* VdslLineType definitions */
265 #define kVdslLineTypeNoChannel 1
266 #define kVdslLineTypeFastOnly 2
267 #define kVdslLineTypeIntlOnly 3
268 #define kVdslLineTypeFastOrIntl 4
269 #define kVdslLineTypeFastAndIntl 5
271 typedef struct _vdslLineEntry {
272 unsigned char vdslLineCoding;
273 unsigned char vdslLineType;
277 /* VdslPhys status definitions */
279 #define kVdslPhysStatusNoDefect (1 << 0)
280 #define kVdslPhysStatusLOF (1 << 1) /* lossOfFraming (not receiving valid frame) */
281 #define kVdslPhysStatusLOS (1 << 2) /* lossOfSignal (not receiving signal) */
282 #define kVdslPhysStatusLPR (1 << 3) /* lossOfPower */
283 #define kVdslPhysStatusLOSQ (1 << 4) /* lossOfSignalQuality */
284 #define kVdslPhysStatusLOM (1 << 5) /* lossOfMargin */
286 typedef struct _vdslPhysEntry {
290 long vdslCurrOutputPwr;
291 long vdslCurrAttainableRate;
294 #define kVdslPhysVendorIdLen 8
295 #define kVdslPhysSerialNumLen 32
296 #define kVdslPhysVersionNumLen 32
298 typedef struct _vdslFullPhysEntry {
299 char vdslSerialNumber[kVdslPhysSerialNumLen];
300 char vdslVendorID[kVdslPhysVendorIdLen];
301 char vdslVersionNumber[kVdslPhysVersionNumLen];
305 long vdslCurrOutputPwr;
306 long vdslCurrAttainableRate;
309 /* Vdsl channel entry definitions */
311 typedef struct _vdslChanEntry {
312 unsigned long vdslChanIntlDelay;
313 unsigned long vdslChanCurrTxRate;
314 unsigned long vdslChanPrevTxRate;
315 unsigned long vdslChanCrcBlockLength;
318 /* Vdsl performance data definitions */
319 typedef struct _vdslAnomCounters {
320 unsigned long vdsl_NE_CV; /* Near end superframe CRC-8 anomaly count */
321 unsigned long vdsl_NE_FEC; /* Near end Codeword correction count */
322 unsigned long vdsl_NE_uncorrectableCodeword; /* Uncorrectable codeword count */
323 unsigned long vdsl_FE_CV; /* FEBE count. Far end superframe CRC-8 anomaly count */
324 unsigned long vdsl_FE_FEC; /* Number of super-frames during which at least one codeword correction
326 } vdslAnomalyCounters;
328 typedef struct _vdslDerivedCounters {
329 unsigned long vdslLofs;
330 unsigned long vdslLoss;
331 unsigned long vdslLols; /* Loss of Link failures (ATUC only) */
332 unsigned long vdslLprs;
333 unsigned long vdslESs; /* Count of Errored Seconds */
334 unsigned long vdslInits; /* Count of Line initialization attempts (ATUC only) */
335 unsigned long vdslUAS; /* Count of Unavailable Seconds */
336 unsigned long vdslSES; /* Count of Severely Errored Seconds */
337 unsigned long vdslLOSS; /* Count of LOS seconds */
338 unsigned long vdslFECs; /* Count of FEC seconds */
339 } vdslDerivedCounters;
341 # define NE 0 /* Near end */
342 # define FE 1 /* Far end */
344 # define B0 0 /* Bearer 0 */
345 # define B1 1 /* Bearer 1 */
347 typedef struct _ptmConnectionStat {
348 unsigned long cntCVprio0;
349 unsigned long cntCVprio1;
350 unsigned long cntRxCellDrop;
351 unsigned long cntTxCellDrop;
354 typedef struct _vdslPerfCounters {
355 vdslDerivedCounters vdslDerivCounters[2]; /* NE and FE counts */
356 vdslAnomalyCounters vdslAnomCounters[2]; /* B0 and B1 counts */
357 atmConnectionStat atmStat[2]; /* B0 and B1 */ /* Used */
358 ptmConnectionStat ptmStat[2]; /* B0 and B1 */ /* Used */
361 typedef struct _vdslPerfDataEntry {
362 vdslPerfCounters perfTotal;
363 unsigned long vdslPerfValidIntervals;
364 unsigned long vdslPerfInvalidIntervals;
365 vdslPerfCounters perfCurr15Min;
366 unsigned long vdslPerfCurr15MinTimeElapsed;
367 vdslPerfCounters perfCurr1Day;
368 unsigned long vdslPerfCurr1DayTimeElapsed;
369 vdslPerfCounters perfPrev15Min;
370 unsigned long vdslPerfPrev15MinTimeElapsed;
371 vdslPerfCounters perfPrev1Day;
372 unsigned long vdslAturPerfPrev1DayMoniSecs;
375 #define kVdslMibPerfIntervals 4
377 /* Vdsl channel performance data definitions */
379 typedef struct _vdslChanCounters {
380 unsigned long vdslChanReceivedBlks;
381 unsigned long vdslChanTransmittedBlks;
382 unsigned long vdslChanCorrectedBlks;
383 unsigned long vdslChanUncorrectBlks;
386 typedef struct _vdslChanPerfDataEntry {
387 vdslChanCounters perfTotal;
388 unsigned long vdslChanPerfValidIntervals;
389 unsigned long vdslChanPerfInvalidIntervals;
390 vdslChanCounters perfCurr15Min;
391 unsigned long vdslPerfCurr15MinTimeElapsed;
392 vdslChanCounters perfCurr1Day;
393 unsigned long vdslPerfCurr1DayTimeElapsed;
394 vdslChanCounters perfPrev1Day;
395 unsigned long vdslAturPerfPrev1DayMoniSecs;
396 } vdslChanPerfDataEntry;
398 #define kVdslMibChanPerfIntervals 4
400 /* Vdsl trap threshold definitions */
402 #define kVdslEventLinkChange 0x001
403 #define kVdslEventRateChange 0x002
404 #define kVdslEventLofThresh 0x004
405 #define kVdslEventLosThresh 0x008
406 #define kVdslEventLprThresh 0x010
407 #define kVdslEventESThresh 0x020
408 #define kVdslEventFastUpThresh 0x040
409 #define kVdslEventIntlUpThresh 0x080
410 #define kVdslEventFastDownThresh 0x100
411 #define kVdslEventIntlDwonThresh 0x200
413 typedef struct _vdslThreshCounters {
414 unsigned long vdslThreshLofs;
415 unsigned long vdslThreshLoss;
416 unsigned long vdslThreshLols; /* Loss of Link failures (ATUC only) */
417 unsigned long vdslThreshLprs;
418 unsigned long vdslThreshESs;
419 unsigned long vdslThreshFastRateUp;
420 unsigned long vdslThreshIntlRateUp;
421 unsigned long vdslThreshFastRateDown;
422 unsigned long vdslThreshIntlRateDown;
423 } vdslThreshCounters;
426 /* Atm PHY performance data definitions */
428 #define kAtmPhyStateNoAlarm 1
429 #define kAtmPhyStateLcdFailure 2
431 typedef struct _atmPhyDataEntrty {
432 unsigned long atmInterfaceOCDEvents;
433 unsigned long atmInterfaceTCAlarmState;
437 typedef struct _vdslBertResults {
438 unsigned long bertTotalBits;
439 unsigned long bertErrBits;
449 typedef struct _vdslBertStatusEx {
450 unsigned long bertSecTotal;
451 unsigned long bertSecElapsed;
452 unsigned long bertSecCur;
457 typedef struct _vdslDataConnectionInfo {
459 unsigned char S, R, D;
460 } vdslDataConnectionInfo;
462 typedef struct _vdslConnectionInfo {
463 unsigned char chType; /* fast or interleaved */
464 unsigned char modType; /* modulation type: G.DMT or T1.413 */
465 unsigned char trellisCoding; /* off(0) or on(1) */
466 vdslDataConnectionInfo rcvInfo;
467 vdslDataConnectionInfo xmtInfo;
468 } vdslConnectionInfo;
470 typedef struct _vdslConnectionDataStat {
472 unsigned long cntRSCor;
473 unsigned long cntRSUncor;
475 unsigned long cntSFErr;
476 } vdslConnectionDataStat;
478 typedef struct _vdslConnectionStat {
479 vdslConnectionDataStat rcvStat;
480 vdslConnectionDataStat xmtStat;
481 } vdslConnectionStat;
483 #define kVdslFramingModeMask 0x0F
484 #define kAtmFramingModeMask 0xF0
485 #define kAtmHeaderCompression 0x80
487 /* VdslMibGetObjectValue return codes */
489 #define kVdslMibStatusSuccess 0
490 #define kVdslMibStatusFailure -1
491 #define kVdslMibStatusNoObject -2
492 #define kVdslMibStatusObjectInvalid -3
493 #define kVdslMibStatusBufferTooSmall -4
494 #define kVdslMibStatusLastError -4
496 /* Vdsl training codes */
498 #define kVdslTrainingIdle 0
499 #define kVdslTrainingG994 1
500 #define kVdslTrainingG992Started 2
501 #define kVdslTrainingG992ChanAnalysis 3
502 #define kVdslTrainingG992Exchange 4
503 #define kVdslTrainingConnected 5
505 /* Global info structure */
507 typedef struct _vdslInfo {
508 vdslLineEntry vdslLine;
509 vdslPhysEntry vdslPhys;
510 vdslChanEntry vdslChanIntl;
511 vdslChanEntry vdslChanFast;
512 vdslPerfDataEntry vdslPerfData; /* Used */
513 vdslPerfCounters vdslPerfIntervals[kVdslMibPerfIntervals];
514 vdslChanPerfDataEntry vdslChanIntlPerfData;
515 vdslChanPerfDataEntry vdslChanFastPerfData;
516 vdslChanCounters vdslChanIntlPerfIntervals[kVdslMibChanPerfIntervals];
517 vdslChanCounters vdslChanFastPerfIntervals[kVdslMibChanPerfIntervals];
519 vdslThreshCounters vdslAlarm;
521 atmPhyDataEntrty vdslChanIntlAtmPhyData;
522 atmPhyDataEntrty vdslChanFastAtmPhyData;
524 vdslBertResults vdslBertRes;
526 vdslConnectionInfo vdslConnection;
527 vdslConnectionStat vdslStat;
528 unsigned char vdslTrainingState;
530 vdslFullPhysEntry vdslAtucPhys;
531 unsigned char vdslRxNonStdFramingAdjustK;
532 unsigned char vdslFramingMode;
533 vdslBertStatusEx vdslBertStatus;
536 vdslPerfCounters vdslTxPerfTotal;
539 #if defined(__cplusplus)
543 #endif /* VdslInfoDefHeader */