|
From: | Julien Chavanton |
Subject: | [Bayonne-devel] Dialogic/drivers.cpp Improvement in alarm logging. |
Date: | Thu, 18 Nov 2004 15:18:56 -0500 |
For those who use ISDN I suggest implementing the current
modification to improve alarm logging // Dialogic/drivers.cpp Improvement in alarm logging. // Now we can tell in the log witch T1/E1 as experienced an alarm
like bad clocking //This error indicate a problem in the Dialogic layer
it should a least be reported case
DTEV_ERREVT:
slog(Slog::levelError) << "EVENT DTEV_ERREVT: DEVICE:" <<
sr_getevtdev() << endl; break; case DTEV_T1ERRC: // this needs fixing, we should find the
right span involved // This is the fixed version if(isdn_count) { int span; for(span = 1; span <=
getSpanCount(); span++) { isdn =
getSpan(span);
iface = isdn->getInterface(); if(isdn->isdev ==
sr_getevtdev()) break; } } else iface =
trunk->interface; alarmp = (unsigned char *)sr_getevtdatap(); switch(iface) { case NT_T1:
switch(*alarmp) { case DTT1_RLOS: slog(Slog::levelError)
<< "dialogic: remote loss of sync alarm
T1-"<<isdn->isspan << endl; break; case DTT1_LOS: slog(Slog::levelError)
<< "dialogic: local loss of sync alarm
T1-"<<isdn->isspan << endl; break; case DTT1_DPM: slog(Slog::levelError)
<< "dialogic: performance monitor alarm
T1-"<<isdn->isspan << endl; break; case DTT1_RED: slog(Slog::levelError)
<< "dialogic: T1 red alarm T1-"<< isdn->isspan
<< endl; break; case DTT1_BPVS: slog(Slog::levelError)
<< "dialogic: bipolar violation alarm T1-"
<<isdn->isspan << endl; break; case DTT1_ECS: slog(Slog::levelError)
<< "dialogic: error count saturation alarm
T1-"<<isdn->isspan << endl; break; case DTT1_RYEL: slog(Slog::levelError)
<< "dialogic: T1 yellow alarm T1-"<<isdn->isspan
<< endl; break; case DTT1_RCL: slog(Slog::levelError)
<< "dialogic: carrier lost alarm T1-"<<isdn->isspan
<< endl; break; case DTT1_FERR: slog(Slog::levelError)
<< "dialogic: frame bit error alarm T1-"<<isdn->isspan
<< endl; break; case DTT1_B8ZSD: slog(Slog::levelError)
<< "dialogic: bipolar eight zero substitution alarm
T1-"<< isdn->isspan << endl; break; case DTT1_RBL: slog(Slog::levelError)
<< "dialogic: T1 blue alarm T1-"<<isdn->isspan
<< endl; break; case DTT1_OOF: slog(Slog::levelError)
<< "dialogic: out of frame error alarm
T1-"<<isdn->isspan << endl; break; case DTT1_B8ZSDOK: // sample alarm handling code from Intel
suggests we should // disable this alarm once we receive it
once... param
= DTSP_B8ZS; dt_setparm(evdev,
DTG_CODESUPR, (void
*)¶m); dt_setevtmsk(evdev,
DTG_T1ERREVT, DTEC_B8ZSD, DTA_SUBMSK); case DTT1_RLOSOK: case DTT1_LOSOK: case DTT1_REDOK: case DTT1_BPVSOK: case DTT1_ECSOK: case DTT1_RYELOK: case DTT1_RCLOK: case DTT1_FERROK: case DTT1_RBLOK: case DTT1_OOFOK: slog(Slog::levelError)
<< "dialogic: alarm recovery T1-"<<isdn->isspan
<< endl; break; } break; case NT_E1: switch(*alarmp) { case DTE1_LOS: slog(Slog::levelError)
<< "dialogic: local loss of sync alarm
E1-"<<isdn->isspan << endl; break; case DTE1_DPM: slog(Slog::levelError)
<< "dialogic: performance monitor alarm
E1-"<<isdn->isspan << endl; break; case DTE1_BPVS: slog(Slog::levelError)
<< "dialogic: bipolar violation alarm
E1-"<<isdn->isspan << endl; break; case DTE1_ECS: slog(Slog::levelError)
<< "dialogic: error count saturation alarm
E1-"<<isdn->isspan << endl; break; case DTE1_RRA: slog(Slog::levelError)
<< "dialogic: received remote alarm E1-"<<isdn->isspan
<< endl; break; case DTE1_FSERR: slog(Slog::levelError)
<< "dialogic: frame sync alarm E1-"<<isdn->isspan
<< endl; break; case DTE1_RUA1: slog(Slog::levelError)
<< "dialogic: unframed all 1's alarm
E1-"<<isdn->isspan << endl; break; case DTE1_RLOS: slog(Slog::levelError)
<< "dialogic: remote loss of sync alarm
E1-"<<isdn->isspan << endl; break; case DTE1_MFSERR: slog(Slog::levelError)
<< "dialogic: multiframe sync alarm E1-"<<isdn->isspan
<< endl; break; case DTE1_RSA1: slog(Slog::levelError)
<< "dialogic: signalling all 1's alarm
E1-"<<isdn->isspan << endl; break; case DTE1_RDMA: slog(Slog::levelError)
<< "dialogic: distant multiframe alarm
E1-"<<isdn->isspan << endl; break; case DTE1_CECS: slog(Slog::levelError)
<< "dialogic: CRC4 error count alarm
E1-"<<isdn->isspan << endl; break; case DTE1_LOSOK: case DTE1_DPMOK: case DTE1_BPVSOK: case DTE1_ECSOK: case DTE1_RRAOK: case DTE1_FSERROK: case DTE1_RUA1OK: case DTE1_RLOSOK: case DTE1_MFSERROK: case DTE1_RSA1OK: case DTE1_RDMAOK: case DTE1_CECSOK: slog(Slog::levelError)
<< "dialogic: alarm recovery E1-"<<isdn->isspan
<< endl; break; } } break; |
[Prev in Thread] | Current Thread | [Next in Thread] |