RFC 3896
Definitions of Managed Objects for the DS3/E3 Interface Type
RFC 3896 ๐ก๐ Definitions of Managed Objects for the DS3/E3 Interface Type
Network Working Group ๐ธ Author: O. Nicklass, Ed., RAD Data Communications, Ltd. Category: Standards Track โจ Date: September 2004 ๐ Obsoletes: RFC 2496 ๐ (this one replaces it, bestie!) Request for Comments: 3896
Status of this Memo ๐
okay so this document is an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements ๐ซถ If you want the current standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). And distribution of this memo is unlimited, so share away ๐
Copyright Notice ๐ฆ
Copyright (C) The Internet Society (2004). Mine? Nope, theirs ๐
Abstract ๐ง
this memo defines a chunk of the Management Information Base (MIB) for use with network management protocols in the Internet community. specifically, it's all about the objects used for managing DS3 and E3 interfaces ๐ฅ It's also a companion to the documents that define Managed Objects for the DS0, DS1/E1/DS2/E2, and Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) Interface Types. And the big news: this document obsoletes RFC 2496 ๐ญโจ
Table of Contents ๐
1. The Internet Standard Management Framework. . . . . . . . . . 2
1.1. Changes from RFC 2496 . . . . . . . . . . . . . . . . . 2
1.2. Changes from RFC 1407 . . . . . . . . . . . . . . . . . 3
1.3. Companion Documents . . . . . . . . . . . . . . . . . . 4
2. Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Use of ifTable for DS3 Layer . . . . . . . . . . . . . 4
2.2. Usage Guidelines. . . . . . . . . . . . . . . . . . . . 5
2.2.1. Usage of ifStackTable . . . . . . . . . . . . . 5
2.2.2. Usage of Channelization for DS3, DS1, DS0 . . . 7
2.2.3. Usage of Channelization for DS3, DS2, DS1 . . . 8
2.2.4. Usage of Loopbacks . . . . . . . . . . . . . . 9
2.3. Objectives of this MIB Module . . . . . . . . . . . . . 10
2.4. DS3/E3 Terminology . . . . . . . . . . . . . . . . . . 10
2.4.1. Error Events. . . . . . . . . . . . . . . . . . 10
2.4.2. Performance Parameters. . . . . . . . . . . . . 11
2.4.3. Performance Defects . . . . . . . . . . . . . . 14
2.4.4. Other Terms . . . . . . . . . . . . . . . . . . 16
3. Object Definitions . . . . . . . . . . . . . . . . . . . . . . 16
4. Appendix A - Use of the dsx3IfIndex and dsx3LineIndex. . . . . 54
5. Appendix B - The delay approach to Unavailable Seconds . . . . 56
6. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . 58
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.1. Normative References . . . . . . . . . . . . . . . . . . 58
7.2. Informative References . . . . . . . . . . . . . . . . . 59
8. Security Considerations. . . . . . . . . . . . . . . . . . . . 60
9. Author's Address . . . . . . . . . . . . . . . . . . . . . . . 62
10. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 63
1. The Internet Standard Management Framework ๐
for the full tea on the documents that describe the current Internet-Standard Management Framework, go check section 7 of RFC 3410 [RFC3410] ๐
so managed objects get accessed through a virtual information store called the Management Information Base, or MIB ๐ง MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). objects in the MIB are defined using the mechanisms in the Structure of Management Information (SMI). this memo specifies a MIB module that's compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580]. the SMIv2 era is giving structure ๐
1.1. Changes from RFC 2496 ๐
these are the changes from [RFC2496], and they're so good:
(1) The dsx3FracIfIndex SYNTAX matches the description range.
(2) Reference was added to Circuit Identifier object.
(3) Usage of ifStackTable section was updated.
(4) Align the DESCRIPTION clauses of few statistic objects with the near end definition, the far end definition and with [RFC3593].
(5) Add new value, dsx3M13, to dsx3LineType.
1.2. Changes from RFC 1407 ๐
okay this list is LONG and it's giving glow-up ๐ Here are the changes from RFC 1407:
(1) The Fractional Table has been deprecated.
(2) This document uses SMIv2.
(3) Values are given for ifTable and ifXTable.
(4) Example usage of ifStackTable is included.
(5) dsx3IfIndex has been deprecated.
(6) The definition of valid intervals has been clarified for the case where the agent proxied for other devices. In particular, the treatment of missing intervals has been clarified.
(7) An inward loopback has been added.
(8) Additional lineStatus bits have been added for Near End in Unavailable Signal State, Carrier Equipment Out of Service.
(9) A read-write line Length object has been added.
(10) Added a lineStatus last change, trap and enabler.
(11) Textual Conventions for statistics objects have been used.
(12) A new object, dsx3LoopbackStatus, has been introduced to reflect the loopbacks established on a DS3/E3 interface and the source to the requests. dsx3LoopbackConfig continues to be the desired loopback state while dsx3LoopbackStatus reflects the actual state.
(13) A dual loopback has been added to allow the setting of an inward loopback and a line loopback at the same time.
(14) An object has been added to indicated whether or not this is a channelized DS3/E3.
(15) A new object has been added to indicate which DS1 is to set for remote loopback.
1.3. Companion Documents ๐ซง
this document is a companion to the documents that define Managed Objects for the DS0 [RFC2494], DS1/E1/DS2/E2 [RFC3895], and Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) [RFC3592] Interface Types. the whole squad, bestie ๐ฏโโ๏ธ
2. Overview ๐ฅ
these objects get used when the media realizing an interface is a DS3/E3 interface. right now, that applies to this value of the ifType variable in the Internet-standard MIB:
ds3 (30)
the DS3 definitions in here are based on the DS3 specifications in ANSI T1.102-1987 [ANSI-T1.102], ANSI T1.107-1988 [ANSI-T1.107], ANSI T1.107a-1990 [ANSI-T1.107a], and ANSI T1.404-1989 [ANSI-T1.404]. and the E3 definitions are based on the E3 specifications in CCITT G.751 [CCITT-G.751] and ETSI T/NA(91)18 [ETSI-T/NA(91)18]. the sources are legit, iykyk ๐ง
2.1. Use of ifTable for DS3 Layer ๐ฆ
only the ifGeneralInformationGroup needs to be supported. here's how each ifTable object gets used for the DS3 layer:
ifTable Object Use for DS3 Layer
===================================================================
ifIndex Interface index.
ifDescr See interfaces MIB [RFC2863]
ifType ds3(30)
ifSpeed Speed of line rate
DS3 - 44736000
E3 - 34368000
ifPhysAddress The value of the Circuit Identifier.
If no Circuit Identifier has been assigned
this object should have an octet string
with zero length.
ifAdminStatus See interfaces MIB [RFC2863]
ifOperStatus See interfaces MIB [RFC2863]
ifLastChange See interfaces MIB [RFC2863]
ifName See interfaces MIB [RFC2863]
ifLinkUpDownTrapEnable Set to enabled(1).
ifHighSpeed Speed of line in Mega-bits per second
(either 45 or 34)
ifConnectorPresent Set to true(1) normally, except for
cases such as DS3/E3 over AAL1/ATM where
false(2) is appropriate
2.2. Usage Guidelines ๐
2.2.1. Usage of ifStackTable โจ
Okay bestie, the dsx3IfIndex object is deprecated ๐
โโ๏ธ. It used to allow a very special proxy situation for Routers and CSUs, but this section explains how to use ifStackTable to show that same relationship. The old dsx3IfIndex and dsx3LineIndex paragraphs got saved in Appendix A ๐ for info only.
The ifStackTable handles the proxy case by showing which pairs of interfaces are connected, like "this DS3 is attached to that DS3." It's the same way ifStackTable already shows how the sub-layers of one interface stack on each other ๐ฅ. In both cases, whole PDUs get passed between the interface pairs. For a DS3, that means entire DS3 frames. For PPP and HDLC, it means entire HDLC frames. Just so we're clear, this is not a green light to use ifStackTable for Time Division Multiplexing (TDM) connections in general ๐
โโ๏ธ.
External&Internal interface scenario: the SNMP Agent lives on a host outside the device that has the DS3/E3 interfaces (like a router). That Agent represents both the host and the DS3/E3 device ๐ง.
Here's an example, because examples are everything ๐. Picture a shelf full of CSUs hooked up to a Router. An SNMP Agent on the router proxies for itself and for the CSU. The router also has an Ethernet interface:
+-----+
| | |
| | | +---------------------+
|E | | 44.736 MBPS | ds3 M13 Line#A | ds3 C-bit Parity
|t | R |---------------+ - - - - - - - - - +------>
|h | | | |
|e | O | 44.736 MBPS | ds3 M13 Line#B | ds3 C-bit Parity
|r | |---------------+ - - - - - - - - - - +------>
|n | U | | |
|e | | 44.736 MBPS | ds3 M13 Line#C | ds3 C-bit Parity
|t | T |---------------+ - - - -- -- - - - - +------>
| | | | |
|-----| E | 44.736 MBPS | ds3 M13 Line#D | ds3 C-bit Parity
| | |---------------+ - - - - -- - - - - +------>
| | R | |_____________________|
| | |
| +-----+
You can assign the index values like this. This is just one example ๐ :
ifIndex Description
1 Ethernet
2 Line#A Router
3 Line#B Router
4 Line#C Router
5 Line#D Router
6 Line#A CSU Router
7 Line#B CSU Router
8 Line#C CSU Router
9 Line#D CSU Router
10 Line#A CSU Network
11 Line#B CSU Network
12 Line#C CSU Network
13 Line#D CSU Network
Then ifStackTable is used to show how the different DS3 interfaces are related ๐:
ifStackTable Entries
HigherLayer LowerLayer
2 6
3 7
4 8
5 9
6 10
7 11
8 12
9 13
If a local SNMP Agent manages the CSU shelf by itself, the setup is basically identical. The difference is that the Ethernet and the 4 router interfaces get deleted, and the interfaces are numbered from 1 to 8 ๐ธ.
ifIndex Description
1 Line#A CSU Router
2 Line#B CSU Router
3 Line#C CSU Router
4 Line#D CSU Router
5 Line#A CSU Network
6 Line#B CSU Network
7 Line#C CSU Network
8 Line#D CSU Network
ifStackTable Entries
HigherLayer LowerLayer
1 5
2 6
3 7
4 8
2.2.2. Usage of Channelization for DS3, DS1, DS0 ๐
This example explains the channelization objects in the DS3, DS1, and DS0 MIBs so the implementor can use them correctly ๐ง . E3 and E1 work in a similar way. The only difference is the number of DS0s, which depends on the framing of the E1.
Let's say a DS3 (with ifIndex 1) is channelized into DS1s, with no DS2s in between. The object dsx3Channelization is set to enabledDs1. When this object is set to enabledDS1, the agent creates 28 ifEntries of type DS1. If dsx3Channelization is set to disabled, those DS1s get destroyed ๐.
Say the DS1 entries in the ifTable are created in channel order, with ifIndex values 2 through 29. The DS1 MIB will then have an entry in the dsx1ChanMappingTable for each ds1, like this:
dsx1ChanMappingTable Entries
ifIndex dsx1Ds1ChannelNumber dsx1ChanMappedIfIndex
1 1 2
1 2 3
......
1 28 29
The DS1s also get channelized into DS0s. The object dsx1Channelization is set to enabledDS0 for each DS1, and each DS1 ends up with 24 DS0s in the ifTable. Say those entries are created in channel order, and the DS0s in the first DS1 have ifIndex values 30 through 53. In the DS0 MIB [RFC2494], the dsx0ChanMappingTable gets an entry for each DS0 ๐:
dsx0ChanMappingTable Entries
ifIndex dsx0Ds0ChannelNumber dsx0ChanMappedIfIndex
2 1 30
2 2 31
......
2 24 53
2.2.3. Usage of Channelization for DS3, DS2, DS1 ๐
This example explains the channelization objects in the DS3 and DS1 MIBs so the implementor can use them correctly ๐ .
Say a DS3 (with ifIndex 1) is channelized into DS2s. The object dsx3Channelization is set to enabledDs2. That gives you 7 DS2s (ifType of DS1) in the ifTable. Suppose the DS2 entries in the ifTable are created in channel order, with ifIndex values 2 through 8. The DS1 MIB [RFC3895] then gets an entry in the dsx1ChanMappingTable for each DS2, like so:
dsx1ChanMappingTable Entries
ifIndex dsx1Ds1ChannelNumber dsx1ChanMappedIfIndex
1 1 2
1 2 3
......
1 7 8
The DS2s also get channelized into DS1s. The object dsx1Channelization is set to enabledDS1 for each DS2, and each DS2 ends up with 4 DS1s in the ifTable. Suppose those are created in channel order, with the DS1s in the first DS2 getting ifIndex values 9 through 12, the second DS2 getting 13 through 16, and so on. In the DS1 MIB, the dsx1ChanMappingTable gets an entry for each DS1 ๐ฆ:
dsx1ChanMappingTable Entries
ifIndex dsx1Ds1ChannelNumber dsx1ChanMappedIfIndex
2 1 9
2 2 10
2 3 11
2 4 12
3 1 13
3 2 14
...
8 4 36
2.2.4. Usage of Loopbacks ๐
This section covers how the loopback-related objects behave ๐งฉ.
The object dsx3LoopbackConfig holds the desired state of loopbacks on this interface. Through this object, a Manager can request any of these:
LineLoopbackPayloadLoopback (if ESF framing)InwardLoopbackDualLoopback (Line + Inward)NoLoopback
The remote end can also request loopbacks, either over the FDL channel (if ESF) or inband (if D4). The only loopbacks it can request this way are:
LineLoopbackPayloadLoopback (if ESF framing)NoLoopback
To show the current state of loopbacks on a DS3 interface, use the object dsx3LoopbackStatus. It's a bitmap that shows which loopbacks are active on the interface, plus where each one came from ๐ต๏ธโโ๏ธ.
Here are the rules for loopbacks, so nobody gets confused ๐ซถ:
The far end cannot undo loopbacks set by a manager.
A manager can undo loopbacks set by the far end.
A line loopback and an inward loopback can be active at the same time. These are the only two loopbacks that can coexist, and either one can be set by the manager or the far end. A LineLoopback request from the far end adds to an Inward loopback that a manager already set up. If the far end then sends a NoLoopback, the InwardLoopback stays put ๐.
2.3. Objectives of this MIB Module ๐ฏ
There are lots of things a MIB for DS3/E3 signals could cover, like managing multiplexors, CSUs, DSUs, and similar gear ๐คฏ. The goal here is to make it easier to manage all devices that have DS3/E3 interfaces in a common way. That's why the MIB was designed up front to closely match the objects that can generally be read from DS3/E3 devices already out in the wild ๐.
2.4. DS3/E3 Terminology ๐
The terms in this document for error conditions on a DS3 interface, as seen by a DS3 device, are based on the late but not final draft of what became the ANSI T1.231 standard [ANSI-T1.231]. If a definition here doesn't match the one in the ANSI T1.231 document, the implementer should go with the definition in this document ๐.
2.4.1. Error Events ๐จ
Bipolar Violation (BPV) Error Event A bipolar violation error event, for B3ZS(HDB3)-coded signals, is when a pulse shows up with the same polarity as the previous pulse without being part of the zero substitution code, B3ZS(HDB3). For B3ZS(HDB3)-coded signals, a bipolar violation error event can also include other error patterns, such as: three(four) or more consecutive zeros and incorrect polarity (See T1.231 section 7.1.1.1.1).
Excessive Zeros (EXZ) Error Event An EXZ is when any zero string has a length equal to or greater than 3 for B3ZS, or greater than 4 for HDB3 (See T1.231 section 7.1.1.1.2).
Line Coding Violation (LCV) Error Event This parameter is a count of both BPVs and EXZs that occur over the accumulation period. An EXZ increases the LCV by one, no matter how long the zero string is. (Also known as CV-L. See T1.231 section 7.4.1.1.) ๐งฎ
P-bit Coding Violation (PCV) Error Event For all DS3 applications, a coding violation error event is a P-bit Parity Error event. A P-bit Parity Error event is when a received P-bit code on the DS3 M-frame isn't identical to the matching locally-calculated code (See T1.231 section 7.1.1.2.1).
C-bit Coding Violation (CCV) Error Event For C-bit Parity and SYNTRAN DS3 applications, this is the count of coding violations reported through the C-bits. For C-bit Parity, it counts CP-bit parity errors that occur in the accumulation interval. For SYNTRAN, it counts CRC-9 errors that occur in the accumulation interval (See T1.231 section 7.1.1.2.2) ๐ซง.
2.4.2. Performance Parameters โจ
Okay bestie, so every performance parameter gets accumulated in fifteen minute intervals, and an agent keeps up to 96 of them, which is 24 hours' worth ๐. If the agent has been restarted within the last 24 hours, there will be fewer than 96 intervals of data, obviously. On top of that, every performance parameter also has a rolling 24-hour total ๐ .
There's no requirement for an agent to lock the start of a fifteen minute interval to any wall clock ๐ฐ๏ธ. Some agents may line them up with quarter hours though ๐ธ.
Performance parameters are of types PerfCurrentCount, PerfIntervalCount and PerfTotalCount. These textual conventions are all Gauge32, and they're used because these objects can actually decrease ๐. Objects may decrease when Unavailable Seconds happens across a fifteen minute interval boundary. More on that in the Unavailable Seconds discussion later in this section.
Line Errored Seconds (LES) A Line Errored Second is a second in which one or more CV occurred OR one or more LOS defects. (Also known as ES-L. See T1.231 section 7.4.1.2.)
P-bit Errored Seconds (PES) An PES is a second with one or more PCVs OR one or more Out of Frame defects OR a detected incoming AIS. This gauge is not incremented when UASs are counted. (Also known as ESP-P. See T1.231 section 7.4.2.2.)
P-bit Severely Errored Seconds (PSES) A PSES is a second with 44 or more PCVs OR one or more Out of Frame defects OR a detected incoming AIS. This gauge is not incremented when UASs are counted. (Also known as SESP-P. See T1.231 section 7.4.2.5.)
C-bit Errored Seconds (CES) An CES is a second with one or more CCVs OR one or more Out of Frame defects OR a detected incoming AIS. This count is only for the SYNTRAN and C-bit Parity DS3 applications. This gauge is not incremented when UASs are counted. (Also known as ESCP-P. See T1.231 section 7.4.2.2.)
C-bit Severely Errored Seconds (CSES) A CSES is a second with 44 or more CCVs OR one or more Out of Frame defects OR a detected incoming AIS. This count is only for the SYNTRAN and C-bit Parity DS3 applications. This gauge is not incremented when UASs are counted. (Also known as SESCP-P. See T1.231 section 7.4.2.5.)
Severely Errored Framing Seconds (SEFS) A SEFS is a second with one or more Out of Frame defects OR a detected incoming AIS. This item is not incremented during unavailable seconds. (Also known as SAS-P. See T1.231 section 7.4.2.6.)
Unavailable Seconds (UAS) UAS are calculated by counting the number of seconds that the interface is unavailable. The DS3 interface is said to be unavailable from the onset of 10 contiguous PSESs, or the onset of the condition leading to a failure (see Failure States). If the condition leading to the failure was immediately preceded by one or more contiguous PSESs, then the DS3 interface unavailability starts from the onset of these PSESs. Once unavailable, and if no failure is present, the DS3 interface becomes available at the onset of 10 contiguous seconds with no PSESs. Once unavailable, and if a failure is present, the DS3 interface becomes available at the onset of 10 contiguous seconds with no PSESs, if the failure clearing time is less than or equal to 10 seconds. If the failure clearing time is more than 10 seconds, the DS3 interface becomes available at the onset of 10 contiguous seconds with no PSESs, or the onset period leading to the successful clearing condition, whichever occurs later. With respect to the DS3 error counts, all counters are incremented while the DS3 interface is deemed available. While the interface is deemed unavailable, the only count that is incremented is UASs.
Note that this definition implies that the agent cannot determine until after a ten second interval has passed whether a given one-second interval belongs to available or unavailable time. If the agent chooses to update the various performance statistics in real time, then it must be prepared to retroactively reduce the PES, PSES, CES, and CSES counts by 10 and increase the UAS count by 10 when it determines that available time has been entered. It must also be prepared to adjust the PCV, CCV, and SEFS count as necessary, since these parameters are not accumulated during unavailable time. Similarly, it must be prepared to retroactively decrease the UAS count by 10 and increase the PES, CES, PCV, and CCV counts as necessary upon entering available time. A special case exists when the 10 second period leading to available or unavailable time crosses a 900 second statistics window boundary, as the foregoing description implies that the PCV, CCV, PES, CES, PSES, CSEC, SEFS, and UAS counts for the PREVIOUS interval must be adjusted. In this case, successive GETs of the affected dsx3IntervalPSESs and dsx3IntervalUASs objects will return differing values if the first GET occurs during the first few seconds of the window.
The agent may instead choose to delay updates to the various statistics by 10 seconds in order to avoid retroactive adjustments to the counters. A way to do this is sketched in Appendix B.
In any case, a linkDown trap shall be sent only after the agent has determined for certain that the unavailable state has been entered, but the time on the trap will be that of the first UAS (i.e., 10 seconds earlier). A linkUp trap shall be handled similarly.
According to [ANSI-T1.231], unavailable time begins at the onset of 10 contiguous severely errored seconds. That is, unavailable time starts with the first of the 10 contiguous SESs. Also, while an interface is deemed unavailable, all counters for that interface are frozen except for the UAS count. It follows that an implementation which strictly complies with this standard must not increment any counters other than the UAS count, even temporarily, as a result of anything that happens during those 10 seconds. Since changes in the signal state lag the data to which they apply by 10 seconds, an ANSI-compliant implementation must pass the one-second statistics through a 10-second delay line prior to updating any counters. That can be done by performing the following steps at the end of each one second interval.
i) Read near/far end CV counter and alarm status flags from the hardware.
ii) Accumulate the CV counts for the preceding second and compare them to the ES and SES threshold for the layer in question. Update the signal state and shift the one-second CV counts and ES/SES flags into the 10-element delay line. Note that far-end one-second statistics are to be flagged as "absent" during any second in which there is an incoming defect at the layer in question or at any lower layer.
iii) Update the current interval statistics using the signal state from the previous update cycle and the one-second CV counts and ES/SES flags shifted out of the 10-element delay line.
This approach is further described in Appendix B.
2.4.3. Performance Defects ๐ฅ
Failure States: The Remote Alarm Indication (RAI) failure, in SYNTRAN applications, is declared after detecting the Yellow Alarm Signal on the alarm channel. See ANSI T1.107a-1990 [ANSI-T1.107a]. The Remote Alarm Indication failure, in C-bit Parity DS3 applications, is declared as soon as the presence of either one or two alarm signals is detected on the Far End Alarm Channel. See [ANSI-T1.107]. The Remote Alarm Indication failure may also be declared after detecting the far-end SEF/AIS defect (aka yellow). The Remote Alarm Indication failure is cleared as soon as the presence of any of the above alarms is removed.
Also, the incoming failure state is declared when a defect persists for at least 2-10 seconds. The defects are the following: Loss of Signal (LOS), an Out of Frame (OOF) or an incoming Alarm Indication Signal (AIS). The Failure State is cleared when the defect is absent for less than or equal to 20 seconds.
Far End SEF/AIS defect (aka yellow) A Far End SEF/AIS defect is the occurrence of the two X-bits in a M-frame set to zero. The Far End SEF/AIS defect is terminated when the two X-bits in a M-frame are set to one. (Also known as SASCP-PFE. See T1.231 section 7.4.4.2.6)
Out of Frame (OOF) defect A DS3 OOF defect is detected when any three or more errors in sixteen or fewer consecutive F-bits occur within a DS3 M-frame. An OOF defect may also be called a Severely Errored Frame (SEF) defect. An OOF defect is cleared when reframe occurs. A DS3 Loss of Frame (LOF) failure is declared when the DS3 OOF defect is consistent for 2 to 10 seconds. The DS3 OOF defect ends when reframe occurs. The DS3 LOF failure is cleared when the DS3 OOF defect is absent for 10 to 20 seconds. (See T1.231 section 7.1.2.2.1)
An E3 OOF defect is detected when four consecutive frame alignment signals have been incorrectly received in there predicted positions in an E3 signal. E3 frame alignment occurs when the presence of three consecutive frame alignment signals has been detected.
Loss of Signal (LOS) defect The DS3 LOS defect is declared upon observing 175 +/- 75 contiguous pulse positions with no pulses of either positive or negative polarity. The DS3 LOS defect is terminated upon observing an average pulse density of at least 33% over a period of 175 +/- 75 contiguous pulse positions, starting with the receipt of a pulse. (See T1.231 section 7.1.2.1.1)
Alarm Indication Signal (AIS) defect The DS3 AIS is framed with "stuck stuffing." This implies that it has valid M-subframe alignment bits, M-frame alignment bits, and P bits. The information bits are set to a 1010... sequence, starting with a one (1) after each M-subframe alignment bit, M-frame alignment bit, X bit, P bit, and C bit. The C bits are all set to zero, giving what is called "stuck stuffing." The X bits are set to one. The DS3 AIS defect is declared after DS3 AIS is present in contiguous M-frames for a time equal to or greater than T, where 0.2 ms <= T <= 100 ms. The DS3 AIS defect is terminated after AIS is absent in contiguous M-frames for a time equal to or greater than T. (See T1.231 section 7.1.2.2.3)
The E3 binary content of the AIS is nominally a continuous stream of ones. AIS detection and the application of consequent actions should be completed within a time limit of 1 ms.
2.4.4. Other Terms ๐
okay so two more terms and then we're on to the actual MIB, bestie ๐
Circuit Identifier ๐ง This is a character string that the circuit vendor gives you, and it's seriously useful when you're chatting with the vendor during troubleshooting. (Check out M.1400 [ITU-T-M.1400] if you want the deets ๐)
Proxy ๐ซถ In this doc, "proxy" means an application that receives SNMP messages and answers them on behalf of the devices that actually have the DS3/E3 interfaces. The proxy might already have collected info about those interfaces into its own local database, so it doesn't always have to forward the requests to the real interface. Here's the tea: there will be stretches of time where the proxy isn't talking to the DS3/E3 interfaces at all ๐ญ During those windows, the proxy won't necessarily have up-to-date configuration info, and it will most likely have missed collecting some statistics data. And missed stats collection means invalid data in the interval table ๐
3. Object Definitions ๐
Now the fun part, the MIB module itself โจ
DS3-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE,
NOTIFICATION-TYPE, transmission
FROM SNMPv2-SMI -- [RFC2578]
DisplayString, TimeStamp, TruthValue
FROM SNMPv2-TC -- [RFC2579]
MODULE-COMPLIANCE, OBJECT-GROUP,
NOTIFICATION-GROUP
FROM SNMPv2-CONF -- [RFC2580]
InterfaceIndex
FROM IF-MIB -- [RFC2863]
PerfCurrentCount, PerfIntervalCount,
PerfTotalCount
FROM PerfHist-TC-MIB; -- [RFC3593]
ds3 MODULE-IDENTITY
LAST-UPDATED "200409080000Z" -- September 08, 2004
ORGANIZATION "IETF AToM MIB Working Group"
CONTACT-INFO
"WG charter:
http://www.ietf.org/html.charters/atommib-charter.html
Mailing Lists:
General Discussion: atommib@research.telcordia.com
To Subscribe: atommib-request@research.telcordia.com
Editor: Orly Nicklass
Postal: RAD Data Communications, Ltd.
Ziv Tower, 24 Roul Walenberg
Tel Aviv, Israel, 69719
Tel: +9723 765 9969
E-mail: orly_n@rad.com"
DESCRIPTION
"The is the MIB module that describes
DS3 and E3 interfaces objects.
Copyright (c) The Internet Society (2004). This
version of this MIB module is part of RFC 3896;
see the RFC itself for full legal notices."
REVISION "200409080000Z" -- September 08, 2004
DESCRIPTION
"The RFC 3896 version of this MIB module.
The key changes made to this MIB module
since its publication in RFC 2496 are as follows:
(1) The dsx3FracIfIndex SYNTAX matches the description range.
(2) Reference was added to Circuit Identifier object.
(3) Usage of ifStackTable section was updated.
(4) Align the DESCRIPTION clauses of few statistic objects with
thenear end definition, the far end definition and with
RFC 3593.
(5) Add new value, dsx3M13, to dsx3LineType."
REVISION "199808012130Z"
DESCRIPTION
"The RFC 2496 version of this MIB module.
The key changes made to this MIB module
since its publication in RFC 1407 are as follows:
(1) The Fractional Table has been deprecated.
(2) This document uses SMIv2.
(3) Values are given for ifTable and ifXTable.
(4) Example usage of ifStackTable is included.
(5) dsx3IfIndex has been deprecated.
(6) The definition of valid intervals has been clarified
for the case where the agent proxied for other devices.
In particular, the treatment of missing intervals has
been clarified.
(7) An inward loopback has been added.
(8) Additional lineStatus bits have been added for Near End
in Unavailable Signal State, Carrier Equipment Out of
Service.
(9) A read-write line Length object has been added.
(10) Added a lineStatus last change, trap and enabler.
(11) Textual Conventions for statistics objects have
been used.
(12) A new object, dsx3LoopbackStatus, has been introduced to
reflect the loopbacks established on a DS3/E3 interface
and the source to the requests. dsx3LoopbackConfig
continues to be the desired loopback state while
dsx3LoopbackStatus reflects the actual state.
(13) A dual loopback has been added to allow the setting of
an inward loopback and a line loopback at the same time.
(14) An object has been added to indicated whether or not
this is a channelized DS3/E3.
(15) A new object has been added to indicate which DS1 is to
set for remote loopback."
REVISION "199301252028Z"
DESCRIPTION
"Initial version, published as RFC 1407."
::= { transmission 30 }
-- The DS3/E3 Near End Group
-- The DS3/E3 Near End Group consists of four tables:
-- DS3/E3 Configuration
-- DS3/E3 Current
-- DS3/E3 Interval
-- DS3/E3 Total
-- the DS3/E3 Configuration Table
dsx3ConfigTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx3ConfigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS3/E3 Configuration table."
::= { ds3 5 }
dsx3ConfigEntry OBJECT-TYPE
SYNTAX Dsx3ConfigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS3/E3 Configuration table."
INDEX { dsx3LineIndex }
::= { dsx3ConfigTable 1 }
Dsx3ConfigEntry ::=
SEQUENCE {
dsx3LineIndex InterfaceIndex,
dsx3IfIndex InterfaceIndex,
dsx3TimeElapsed INTEGER,
dsx3ValidIntervals INTEGER,
dsx3LineType INTEGER,
dsx3LineCoding INTEGER,
dsx3SendCode INTEGER,
dsx3CircuitIdentifier DisplayString,
dsx3LoopbackConfig INTEGER,
dsx3LineStatus INTEGER,
dsx3TransmitClockSource INTEGER,
dsx3InvalidIntervals INTEGER,
dsx3LineLength INTEGER,
dsx3LineStatusLastChange TimeStamp,
dsx3LineStatusChangeTrapEnable INTEGER,
dsx3LoopbackStatus INTEGER,
dsx3Channelization INTEGER,
dsx3Ds1ForRemoteLoop INTEGER
}
dsx3LineIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"This object should be made equal to ifIndex. The
next paragraph describes its previous usage.
Making the object equal to ifIndex allows proper
use of ifStackTable.
Previously, this object was the identifier of a
DS3/E3 Interface on a managed device. If there is
an ifEntry that is directly associated with this
and only this DS3/E3 interface, it should have the
same value as ifIndex. Otherwise, number the
dsx3LineIndices with an unique identifier
following the rules of choosing a number that is
greater than ifNumber and numbering the inside
interfaces (e.g., equipment side) with even
numbers and outside interfaces (e.g., network side)
with odd numbers."
::= { dsx3ConfigEntry 1 }
dsx3IfIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"This value for this object is equal to the value
of ifIndex from the Interfaces table of MIB II
(RFC 1213)."
::= { dsx3ConfigEntry 2 }
dsx3TimeElapsed OBJECT-TYPE
SYNTAX INTEGER (0..899)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of seconds that have elapsed since the
beginning of the near end current error-
measurement period. If, for some reason, such as
an adjustment in the system's time-of-day clock,
the current interval exceeds the maximum value,
the agent will return the maximum value."
::= { dsx3ConfigEntry 3 }
dsx3ValidIntervals OBJECT-TYPE
SYNTAX INTEGER (0..96)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of previous near end intervals for
which data was collected. The value will be 96
unless the interface was brought online within the
last 24 hours, in which case the value will be the
number of complete 15 minute near end intervals
since the interface has been online. In the case
where the agent is a proxy, it is possible that
some intervals are unavailable. In this case,
this interval is the maximum interval number for
which data is available."
::= { dsx3ConfigEntry 4 }
dsx3LineType OBJECT-TYPE
SYNTAX INTEGER {
dsx3other(1),
dsx3M23(2),
dsx3SYNTRAN(3),
dsx3CbitParity(4),
dsx3ClearChannel(5),
e3other(6),
e3Framed(7),
e3Plcp(8),
dsx3M13(9)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable indicates the variety of DS3 C-bit
or E3 application implementing this interface. The
type of interface affects the interpretation of
the usage and error statistics. The rate of DS3
is 44.736 Mbps and E3 is 34.368 Mbps. The
dsx3ClearChannel value means that the C-bits are
not used except for sending/receiving AIS. The
values, in sequence, describe:
TITLE: SPECIFICATION:
dsx3M23 ANSI T1.107-1988
dsx3SYNTRAN ANSI T1.107-1988
dsx3CbitParity ANSI T1.107a-1990
dsx3ClearChannel ANSI T1.102-1987
e3Framed CCITT G.751
e3Plcp ETSI T/NA(91)18
dsx3M13 ANSI T1.107a-1990."
okay the references are giving history ๐ and then the object definitions start getting very specific, so I'm keeping every character exact ๐ซถ
REFERENCE
"American National Standard for telecommunications
- digital hierarchy -
formats specification, ANSI T1.107- 1988.
ANSI T1.107a-1990.
American National Standard for telecommunications
- digital hierarchy -
electrical interfaces, ANSI T1.102- 1987.
CCITT - Digital Multiplex Equipment Operating at
the Third Order Bit Rate of 34 368 Kbit/s and
the Forth Order Bit Rate of 139 264 Kbit/s
and Using Positive Justification, G.751
European Telecommunications Standards Institute
-- ETS '34M' --
Metropolitan Area Network Physical
Convergence Layer Procedure for
34.368 Megabits per Second, T/NA(91)18,
May 1991."
::= { dsx3ConfigEntry 5 }
dsx3LineCoding OBJECT-TYPE
SYNTAX INTEGER {
dsx3Other(1),
dsx3B3ZS(2),
e3HDB3(3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable describes the variety of Zero Code
Suppression used on this interface, which in turn
affects a number of its characteristics.
dsx3B3ZS and e3HDB3 refer to the use of specified
patterns of normal bits and bipolar violations
which are used to replace sequences of zero bits
of a specified length."
::= { dsx3ConfigEntry 6 }
dsx3LineCoding is the one that picks your Zero Code Suppression flavour, and that choice quietly changes a bunch of other stuff about the interface. so basically it's the main character of line coding ๐
dsx3SendCode OBJECT-TYPE
SYNTAX INTEGER {
dsx3SendNoCode(1),
dsx3SendLineCode(2),
dsx3SendPayloadCode(3),
dsx3SendResetCode(4),
dsx3SendDS1LoopCode(5),
dsx3SendTestPattern(6)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable indicates what type of code is
being sent across the DS3/E3 interface by the
device. (These are optional for E3 interfaces.)
Setting this variable causes the interface to
begin sending the code requested.
The values mean:
dsx3SendNoCode
sending looped or normal data
dsx3SendLineCode
sending a request for a line loopback
dsx3SendPayloadCode
sending a request for a payload loopback
(i.e., all DS1/E1s in a DS3/E3 frame)
dsx3SendResetCode
sending a loopback deactivation request
dsx3SendDS1LoopCode
requesting to loopback a particular DS1/E1
within a DS3/E3 frame. The DS1/E1 is
indicated in dsx3Ds1ForRemoteLoop.
dsx3SendTestPattern
sending a test pattern."
::= { dsx3ConfigEntry 7 }
dsx3SendCode is the sending side of the loopback drama ๐ it's what the device transmits to ask for loops and tests. and yes, the parenthetical says it's optional for E3, so E3 folks, you're off the hook ๐ธ
dsx3CircuitIdentifier OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable contains the transmission vendor's
circuit identifier, for the purpose of
facilitating troubleshooting."
REFERENCE "ITU-T M.1400"
::= { dsx3ConfigEntry 8 }
dsx3LoopbackConfig OBJECT-TYPE
SYNTAX INTEGER {
dsx3NoLoop(1),
dsx3PayloadLoop(2),
dsx3LineLoop(3),
dsx3OtherLoop(4),
dsx3InwardLoop(5),
dsx3DualLoop(6)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable represents the desired loopback
configuration of the DS3/E3 interface.
The values mean:
dsx3NoLoop
Not in the loopback state. A device that is
not capable of performing a loopback on
the interface shall always return this as
its value.
dsx3PayloadLoop
The received signal at this interface is looped
through the device. Typically the received signal
is looped back for retransmission after it has
passed through the device's framing function.
dsx3LineLoop
The received signal at this interface does not
go through the device (minimum penetration) but
is looped back out.
dsx3OtherLoop
Loopbacks that are not defined here.
dsx3InwardLoop
The sent signal at this interface is looped back
through the device.
dsx3DualLoop
Both dsx1LineLoop and dsx1InwardLoop will be
active simultaneously."
::= { dsx3ConfigEntry 9 }
dsx3CircuitIdentifier is the vendor's circuit ID, basically a name tag so troubleshooting doesn't become a guessing game ๐ฆ
dsx3LoopbackConfig is the desired loopback setup, and it's giving "choose your fighter" with six options ๐
dsx3LineStatus OBJECT-TYPE
SYNTAX INTEGER (1..4095)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the Line Status of the
interface. It contains loopback state information
and failure state information. The dsx3LineStatus
is a bit map represented as a sum, therefore, it
can represent multiple failures and a loopback
(see dsx3LoopbackConfig object for the type of
loopback) simultaneously. The dsx3NoAlarm must be
set if and only if no other flag is set.
If the dsx3loopbackState bit is set, the loopback
in effect can be determined from the
dsx3loopbackConfig object.
The various bit positions are:
1 dsx3NoAlarm No alarm present
2 dsx3RcvRAIFailure Receiving Yellow/Remote
Alarm Indication
4 dsx3XmitRAIAlarm Transmitting Yellow/Remote
Alarm Indication
8 dsx3RcvAIS Receiving AIS failure state
16 dsx3XmitAIS Transmitting AIS
32 dsx3LOF Receiving LOF failure state
64 dsx3LOS Receiving LOS failure state
128 dsx3LoopbackState Looping the received signal
256 dsx3RcvTestCode Receiving a Test Pattern
512 dsx3OtherFailure any line status not defined
here
1024 dsx3UnavailSigState Near End in Unavailable
Signal State
2048 dsx3NetEquipOOS Carrier Equipment Out of
Service"
::= { dsx3ConfigEntry 10 }
okay dsx3LineStatus is a bit map, so it's a whole sum of flags that can stack up at once โจ failures and loopback state can show together. it's like a status card with a bunch of stickers on it ๐ง
the bit for dsx3NoAlarm is supposed to be set if and only if no other flag is set. so it's either the "all good" sticker or the problem stickers, never both ๐
dsx3TransmitClockSource OBJECT-TYPE
SYNTAX INTEGER {
loopTiming(1),
localTiming(2),
throughTiming(3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The source of Transmit Clock.
loopTiming indicates that the recovered receive
clock is used as the transmit clock.
localTiming indicates that a local clock source is
used or that an external clock is attached to the
box containing the interface.
throughTiming indicates that transmit clock is
derived from the recovered receive clock of
another DS3 interface."
::= { dsx3ConfigEntry 11 }
dsx3InvalidIntervals OBJECT-TYPE
SYNTAX INTEGER (0..96)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
" The number of intervals in the range from 0 to
dsx3ValidIntervals for which no data is available.
This object will typically be zero except in cases
where the data for some intervals are not
available (e.g., in proxy situations)."
::= { dsx3ConfigEntry 12 }
dsx3LineLength OBJECT-TYPE
SYNTAX INTEGER (0..64000)
UNITS "meters"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The length of the ds3 line in meters. This
object provides information for line build out
circuitry if it exists and can use this object to
adjust the line build out."
::= { dsx3ConfigEntry 13 }
dsx3LineStatusLastChange OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of MIB II's sysUpTime object at the
time this DS3/E3 entered its current line status
state. If the current state was entered prior to
the last re-initialization of the proxy-agent,
then this object contains a zero value."
::= { dsx3ConfigEntry 14 }
dsx3LineStatusChangeTrapEnable OBJECT-TYPE
SYNTAX INTEGER {
enabled(1),
disabled(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether dsx3LineStatusChange traps
should be generated for this interface."
DEFVAL { disabled }
::= { dsx3ConfigEntry 15 }
dsx3LoopbackStatus OBJECT-TYPE
SYNTAX INTEGER (1..127)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable represents the current state of the
loopback on the DS3 interface. It contains
information about loopbacks established by a
manager and remotely from the far end.
The dsx3LoopbackStatus is a bit map represented as
a sum, therefore is can represent multiple
loopbacks simultaneously.
The various bit positions are:
1 dsx3NoLoopback
2 dsx3NearEndPayloadLoopback
4 dsx3NearEndLineLoopback
8 dsx3NearEndOtherLoopback
16 dsx3NearEndInwardLoopback
32 dsx3FarEndPayloadLoopback
64 dsx3FarEndLineLoopback"
::= { dsx3ConfigEntry 16 }
dsx3TransmitClockSource decides where the transmit clock comes from: the recovered receive clock, a local or external clock, or the recovered clock of another DS3 ๐ฐ๏ธ a clock-picking situation, bestie ๐
dsx3InvalidIntervals counts the intervals with no data (usually zero, unless something like a proxy is involved) ๐
dsx3LineLength is the length of the line in meters, which helps the line build out circuitry if it's there ๐
dsx3LineStatusLastChange is a timestamp of when the current line status started, measured off sysUpTime. if the agent restarted in the meantime, it just shows zero ๐ฅบ
dsx3LineStatusChangeTrapEnable is the on/off switch for line status change traps, and it defaults to disabled, so you have to opt in ๐
dsx3LoopbackStatus is the current loopback state, and it tracks loops from your manager and loops from the far end too ๐ฅ it's another bit map, so several loopbacks can be active at once ๐
dsx3Channelization OBJECT-TYPE
SYNTAX INTEGER {
disabled(1),
enabledDs1(2),
enabledDs2(3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether this ds3/e3 is channelized or
unchannelized. The value of enabledDs1 indicates
that this is a DS3 channelized into DS1s. The
value of enabledDs3 indicated that this is a DS3
channelized into DS2s. Setting this object will
cause the creation or deletion of DS2 or DS1
entries in the ifTable. "
::= { dsx3ConfigEntry 17 }
dsx3Ds1ForRemoteLoop OBJECT-TYPE
SYNTAX INTEGER (0..29)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates which DS1/E1 on this DS3/E3 will be
indicated in the remote ds1 loopback request. A
value of 0 means no DS1 will be looped. A value
of 29 means all DS1s/E1s will be looped."
::= { dsx3ConfigEntry 18 }
-- the DS3/E3 Current Table
dsx3Channelization is the switch between unchannelized and channelized, and flipping it actually creates or deletes DS2 or DS1 entries in the ifTable โจ so it's a big deal, be careful with it ๐
dsx3Ds1ForRemoteLoop picks which DS1/E1 gets looped in a remote DS1 loopback request. 0 means none, 29 means all of them ๐งโโ๏ธ
Okay bestie, the Current table is up next ๐ It's basically the live scoreboard for the 15-minute window we're in right now ๐
dsx3CurrentTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx3CurrentEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS3/E3 current table contains various
statistics being collected for the current 15
minute interval."
::= { ds3 6 }
dsx3CurrentEntry OBJECT-TYPE
SYNTAX Dsx3CurrentEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS3/E3 Current table."
INDEX { dsx3CurrentIndex }
::= { dsx3CurrentTable 1 }
Dsx3CurrentEntry ::=
SEQUENCE {
dsx3CurrentIndex InterfaceIndex,
dsx3CurrentPESs PerfCurrentCount,
dsx3CurrentPSESs PerfCurrentCount,
dsx3CurrentSEFSs PerfCurrentCount,
dsx3CurrentUASs PerfCurrentCount,
dsx3CurrentLCVs PerfCurrentCount,
dsx3CurrentPCVs PerfCurrentCount,
dsx3CurrentLESs PerfCurrentCount,
dsx3CurrentCCVs PerfCurrentCount,
dsx3CurrentCESs PerfCurrentCount,
dsx3CurrentCSESs PerfCurrentCount
}
dsx3CurrentIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value which uniquely identifies the
DS3/E3 interface to which this entry is
applicable. The interface identified by a
particular value of this index is the same
interface as identified by the same value an
dsx3LineIndex object instance."
::= { dsx3CurrentEntry 1 }
dsx3CurrentPESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of P-bit
Errored Seconds."
::= { dsx3CurrentEntry 2 }
dsx3CurrentPSESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of P-bit
Severely Errored Seconds."
::= { dsx3CurrentEntry 3 }
dsx3CurrentSEFSs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of
Severely Errored Framing Seconds."
::= { dsx3CurrentEntry 4 }
dsx3CurrentUASs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of
Unavailable Seconds."
::= { dsx3CurrentEntry 5 }
dsx3CurrentLCVs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Line
Coding Violations."
::= { dsx3CurrentEntry 6 }
dsx3CurrentPCVs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of P-bit
Coding Violations."
::= { dsx3CurrentEntry 7 }
dsx3CurrentLESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Line Errored Seconds."
::= { dsx3CurrentEntry 8 }
dsx3CurrentCCVs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of C-bit Coding Violations."
::= { dsx3CurrentEntry 9 }
dsx3CurrentCESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of C-bit Errored Seconds."
::= { dsx3CurrentEntry 10 }
dsx3CurrentCSESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of C-bit Severely Errored Seconds."
::= { dsx3CurrentEntry 11 }
Next up is the Interval table, which is the history wall ๐ง It keeps the last 24 hours in 96 chunks, one per 15 minutes โจ
-- the DS3/E3 Interval Table
dsx3IntervalTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx3IntervalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS3/E3 Interval Table contains various
statistics collected by each DS3/E3 Interface over
the previous 24 hours of operation. The past 24
hours are broken into 96 completed 15 minute
intervals. Each row in this table represents one
such interval (identified by dsx3IntervalNumber)
and for one specific interface (identified by
dsx3IntervalIndex)."
::= { ds3 7 }
dsx3IntervalEntry OBJECT-TYPE
SYNTAX Dsx3IntervalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS3/E3 Interval table."
INDEX { dsx3IntervalIndex, dsx3IntervalNumber }
::= { dsx3IntervalTable 1 }
Dsx3IntervalEntry ::=
SEQUENCE {
dsx3IntervalIndex InterfaceIndex,
dsx3IntervalNumber INTEGER,
dsx3IntervalPESs PerfIntervalCount,
dsx3IntervalPSESs PerfIntervalCount,
dsx3IntervalSEFSs PerfIntervalCount,
dsx3IntervalUASs PerfIntervalCount,
dsx3IntervalLCVs PerfIntervalCount,
dsx3IntervalPCVs PerfIntervalCount,
dsx3IntervalLESs PerfIntervalCount,
dsx3IntervalCCVs PerfIntervalCount,
dsx3IntervalCESs PerfIntervalCount,
dsx3IntervalCSESs PerfIntervalCount,
dsx3IntervalValidData TruthValue
}
dsx3IntervalIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value which uniquely identifies the
DS3/E3 interface to which this entry is
applicable. The interface identified by a
particular value of this index is the same
interface as identified by the same value an
dsx3LineIndex object instance."
::= { dsx3IntervalEntry 1 }
dsx3IntervalNumber OBJECT-TYPE
SYNTAX INTEGER (1..96)
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"A number between 1 and 96, where 1 is the most
recently completed 15 minute interval and 96 is
the 15 minutes interval completed 23 hours and 45
minutes prior to interval 1."
::= { dsx3IntervalEntry 2 }
dsx3IntervalPESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of P-bit
Errored Seconds."
::= { dsx3IntervalEntry 3 }
dsx3IntervalPSESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of P-bit
Severely Errored Seconds."
::= { dsx3IntervalEntry 4 }
dsx3IntervalSEFSs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of
Severely Errored Framing Seconds."
::= { dsx3IntervalEntry 5 }
dsx3IntervalUASs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of
Unavailable Seconds. This object may decrease if
the occurrence of unavailable seconds occurs across
an interval boundary."
::= { dsx3IntervalEntry 6 }
dsx3IntervalLCVs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Line
Coding Violations."
::= { dsx3IntervalEntry 7 }
dsx3IntervalPCVs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of P-bit
Coding Violations."
::= { dsx3IntervalEntry 8 }
dsx3IntervalLESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Line Errored Seconds (BPVs or
illegal zero sequences)."
::= { dsx3IntervalEntry 9 }
dsx3IntervalCCVs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of C-bit Coding Violations."
::= { dsx3IntervalEntry 10 }
dsx3IntervalCESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of C-bit Errored Seconds."
::= { dsx3IntervalEntry 11 }
dsx3IntervalCSESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of C-bit Severely Errored Seconds."
::= { dsx3IntervalEntry 12 }
dsx3IntervalValidData OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
" This variable indicates if the data for this
interval is valid."
::= { dsx3IntervalEntry 13 }
And last but not least, the Total table ๐ This one is the running sum for the 24 hours before the current interval, so it's giving big-picture energy ๐
-- the DS3/E3 Total
dsx3TotalTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx3TotalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS3/E3 Total Table contains the cumulative
sum of the various statistics for the 24 hour
period preceding the current interval."
::= { ds3 8 }
dsx3TotalEntry OBJECT-TYPE
SYNTAX Dsx3TotalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS3/E3 Total table."
INDEX { dsx3TotalIndex }
::= { dsx3TotalTable 1 }
Dsx3TotalEntry ::=
SEQUENCE {
dsx3TotalIndex InterfaceIndex,
dsx3TotalPESs PerfTotalCount,
dsx3TotalPSESs PerfTotalCount,
dsx3TotalSEFSs PerfTotalCount,
dsx3TotalUASs PerfTotalCount,
dsx3TotalLCVs PerfTotalCount,
dsx3TotalPCVs PerfTotalCount,
dsx3TotalLESs PerfTotalCount,
dsx3TotalCCVs PerfTotalCount,
dsx3TotalCESs PerfTotalCount,
dsx3TotalCSESs PerfTotalCount
}
okay so bestie, the whole 24 hour totals situation is literally giving spreadsheet ๐ง Every one of these objects is a read-only counter (MAX-ACCESS read-only) that adds up what the DS3/E3 interface got up to in the previous 24 hour interval. And the rule for the broken-up 15 minute chunks is iconic: any invalid one just counts as 0. ๐
dsx3TotalIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value which uniquely identifies the
DS3/E3 interface to which this entry is
applicable. The interface identified by a
particular value of this index is the same
interface as identified by the same value an
dsx3LineIndex object instance."
::= { dsx3TotalEntry 1 }
dsx3TotalPESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of P-bit
Errored Seconds, encountered by a DS3 interface in
the previous 24 hour interval. Invalid 15 minute
intervals count as 0."
::= { dsx3TotalEntry 2 }
dsx3TotalPSESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of P-bit
Severely Errored Seconds, encountered by a DS3
interface in the previous 24 hour interval.
Invalid 15 minute intervals count as 0."
::= { dsx3TotalEntry 3 }
dsx3TotalSEFSs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of
Severely Errored Framing Seconds, encountered by a
DS3/E3 interface in the previous 24 hour interval.
Invalid 15 minute intervals count as 0."
::= { dsx3TotalEntry 4 }
dsx3TotalUASs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of
Unavailable Seconds, encountered by a DS3
interface in the previous 24 hour interval.
Invalid 15 minute intervals count as 0."
::= { dsx3TotalEntry 5 }
dsx3TotalLCVs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Line
Coding Violations encountered by a DS3/E3
interface in the previous 24 hour interval.
Invalid 15 minute intervals count as 0."
::= { dsx3TotalEntry 6 }
dsx3TotalPCVs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of P-bit
Coding Violations, encountered by a DS3 interface
in the previous 24 hour interval. Invalid 15
minute intervals count as 0."
::= { dsx3TotalEntry 7 }
dsx3TotalLESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Line Errored Seconds (BPVs or
illegal zero sequences) encountered by a DS3/E3
interface in the previous 24 hour interval.
Invalid 15 minute intervals count as 0."
::= { dsx3TotalEntry 8 }
dsx3TotalCCVs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of C-bit Coding Violations encountered
by a DS3 interface in the previous 24 hour
interval. Invalid 15 minute intervals count as 0."
::= { dsx3TotalEntry 9 }
dsx3TotalCESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of C-bit Errored Seconds encountered
by a DS3 interface in the previous 24 hour
interval. Invalid 15 minute intervals count as 0."
::= { dsx3TotalEntry 10 }
dsx3TotalCSESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of C-bit Severely Errored Seconds
encountered by a DS3 interface in the previous 24
hour interval. Invalid 15 minute intervals count
as 0."
::= { dsx3TotalEntry 11 }
Next up is the DS3 Far End group ๐ฆ It's the bit that tells you what the other end of the line is saying through the C-bits. The group has four tables (Configuration, Current, Interval and Total), and the Configuration table is the one that holds the far end's identity info, like equipment, location, frame, unit and facility codes. Those all get sent inside the Path Identification Message, so yes, they're literally little ID cards. ๐
-- The DS3 Far End Group
-- The DS3 Far End Group consists of four tables :
-- DS3 Far End Configuration
-- DS3 Far End Current
-- DS3 Far End Interval
-- DS3 Far End Total
-- The DS3 Far End Configuration Table
dsx3FarEndConfigTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx3FarEndConfigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS3 Far End Configuration Table contains
configuration information reported in the C-bits
from the remote end."
::= { ds3 9 }
dsx3FarEndConfigEntry OBJECT-TYPE
SYNTAX Dsx3FarEndConfigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS3 Far End Configuration table."
INDEX { dsx3FarEndLineIndex }
::= { dsx3FarEndConfigTable 1 }
Dsx3FarEndConfigEntry ::=
SEQUENCE {
dsx3FarEndLineIndex InterfaceIndex,
dsx3FarEndEquipCode DisplayString,
dsx3FarEndLocationIDCode DisplayString,
dsx3FarEndFrameIDCode DisplayString,
dsx3FarEndUnitCode DisplayString,
dsx3FarEndFacilityIDCode DisplayString
}
dsx3FarEndLineIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value which uniquely identifies the DS3
interface to which this entry is applicable. The
interface identified by a particular value of this
index is the same interface as identified by the
same value an dsx3LineIndex object instance."
::= { dsx3FarEndConfigEntry 1 }
dsx3FarEndEquipCode OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..10))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This is the Far End Equipment Identification code
that describes the specific piece of equipment.
It is sent within the Path Identification
Message."
::= { dsx3FarEndConfigEntry 2 }
dsx3FarEndLocationIDCode OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..11))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This is the Far End Location Identification code
that describes the specific location of the
equipment. It is sent within the Path
Identification Message."
::= { dsx3FarEndConfigEntry 3 }
dsx3FarEndFrameIDCode OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..10))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This is the Far End Frame Identification code
that identifies where the equipment is located
within a building at a given location. It is sent
within the Path Identification Message."
::= { dsx3FarEndConfigEntry 4 }
dsx3FarEndUnitCode OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..6))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This is the Far End code that identifies the
equipment location within a bay. It is sent
within the Path Identification Message."
::= { dsx3FarEndConfigEntry 5 }
dsx3FarEndFacilityIDCode OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..38))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This code identifies a specific Far End DS3 path.
It is sent within the Path Identification
Message."
::= { dsx3FarEndConfigEntry 6 }
And now the Far End Current table ๐ธ This one collects stats for the current 15 minute interval, pulled from the far end block error code in the C-bits. The fun part is dsx3FarEndTimeElapsed: if your clock gets adjusted and the interval runs past its max, the agent just hands back the max value. Honestly the way that's handled is so chill. ๐ซถ
-- The DS3 Far End Current
dsx3FarEndCurrentTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx3FarEndCurrentEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS3 Far End Current table contains various
statistics being collected for the current 15
minute interval. The statistics are collected
from the far end block error code within the C-
bits."
::= { ds3 10 }
dsx3FarEndCurrentEntry OBJECT-TYPE
SYNTAX Dsx3FarEndCurrentEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS3 Far End Current table."
INDEX { dsx3FarEndCurrentIndex }
::= { dsx3FarEndCurrentTable 1 }
Dsx3FarEndCurrentEntry ::=
SEQUENCE {
dsx3FarEndCurrentIndex InterfaceIndex,
dsx3FarEndTimeElapsed INTEGER,
dsx3FarEndValidIntervals INTEGER,
dsx3FarEndCurrentCESs PerfCurrentCount,
dsx3FarEndCurrentCSESs PerfCurrentCount,
dsx3FarEndCurrentCCVs PerfCurrentCount,
dsx3FarEndCurrentUASs PerfCurrentCount,
dsx3FarEndInvalidIntervals INTEGER
}
dsx3FarEndCurrentIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value which uniquely identifies the DS3
interface to which this entry is applicable. The
interface identified by a particular value of this
index is identical to the interface identified by
the same value of dsx3LineIndex."
::= { dsx3FarEndCurrentEntry 1 }
dsx3FarEndTimeElapsed OBJECT-TYPE
SYNTAX INTEGER (0..899)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of seconds that have elapsed since the
beginning of the far end current error-measurement
period. If, for some reason, such as an adjustment
in the system's time-of-day clock, the current
interval exceeds the maximum value, the agent will
return the maximum value."
::= { dsx3FarEndCurrentEntry 2 }
dsx3FarEndValidIntervals OBJECT-TYPE
SYNTAX INTEGER (0..96)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of previous far end intervals for
which data was collected. The value will be 96
unless the interface was brought online within the
last 24 hours, in which case the value will be the
number of complete 15 minute far end intervals
since the interface has been online. In the case
where the agent is a proxy, it is possible that
some intervals are unavailable. In this case,
this interval is the maximum interval number for
which data is available."
::= { dsx3FarEndCurrentEntry 3 }
dsx3FarEndCurrentCESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
C-bit Errored Seconds."
::= { dsx3FarEndCurrentEntry 4 }
that's the vibe for this part, bestie ๐๐
dsx3FarEndCurrentCSESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
C-bit Severely Errored Seconds."
::= { dsx3FarEndCurrentEntry 5 }
dsx3FarEndCurrentCCVs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
C-bit Coding Violations reported via the far end
block error count."
::= { dsx3FarEndCurrentEntry 6 }
dsx3FarEndCurrentUASs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
unavailable seconds."
::= { dsx3FarEndCurrentEntry 7 }
dsx3FarEndInvalidIntervals OBJECT-TYPE
SYNTAX INTEGER (0..96)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
" The number of intervals in the range from 0 to
dsx3FarEndValidIntervals for which no data is
available. This object will typically be zero
except in cases where the data for some intervals
are not available (e.g., in proxy situations)."
::= { dsx3FarEndCurrentEntry 8 }
Okay so now we're getting into the far end interval stuff, and it's giving organised bestie energy ๐๏ธโจ The current far end counters are all about what the other side is seeing, and the invalid intervals object is the one that tracks the gaps ๐
-- The DS3 Far End Interval Table
dsx3FarEndIntervalTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx3FarEndIntervalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS3 Far End Interval Table contains various
statistics collected by each DS3 interface over
the previous 24 hours of operation. The past 24
hours are broken into 96 completed 15 minute
intervals."
::= { ds3 11 }
dsx3FarEndIntervalEntry OBJECT-TYPE
SYNTAX Dsx3FarEndIntervalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS3 Far End Interval table."
INDEX { dsx3FarEndIntervalIndex,
dsx3FarEndIntervalNumber }
::= { dsx3FarEndIntervalTable 1 }
Dsx3FarEndIntervalEntry ::=
SEQUENCE {
dsx3FarEndIntervalIndex InterfaceIndex,
dsx3FarEndIntervalNumber INTEGER,
dsx3FarEndIntervalCESs PerfIntervalCount,
dsx3FarEndIntervalCSESs PerfIntervalCount,
dsx3FarEndIntervalCCVs PerfIntervalCount,
dsx3FarEndIntervalUASs PerfIntervalCount,
dsx3FarEndIntervalValidData TruthValue
}
dsx3FarEndIntervalIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value which uniquely identifies the DS3
interface to which this entry is applicable. The
interface identified by a particular value of this
index is identical to the interface identified by
the same value of dsx3LineIndex."
::= { dsx3FarEndIntervalEntry 1 }
dsx3FarEndIntervalNumber OBJECT-TYPE
SYNTAX INTEGER (1..96)
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"A number between 1 and 96, where 1 is the most
recently completed 15 minute interval and 96 is
the 15 minutes interval completed 23 hours and 45
minutes prior to interval 1."
::= { dsx3FarEndIntervalEntry 2 }
dsx3FarEndIntervalCESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
C-bit Errored Seconds encountered by a DS3
interface in one of the previous 96, individual 15
minute, intervals. In the case where the agent is
a proxy and data is not available, return
noSuchInstance."
::= { dsx3FarEndIntervalEntry 3 }
dsx3FarEndIntervalCSESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
C-bit Severely Errored Seconds."
::= { dsx3FarEndIntervalEntry 4 }
dsx3FarEndIntervalCCVs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
C-bit Coding Violations reported via the far end
block error count."
::= { dsx3FarEndIntervalEntry 5 }
dsx3FarEndIntervalUASs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
unavailable seconds."
::= { dsx3FarEndIntervalEntry 6 }
dsx3FarEndIntervalValidData OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
" This variable indicates if the data for this
interval is valid."
::= { dsx3FarEndIntervalEntry 7 }
The interval table is the 24 hour history, split into 96 little 15 minute slices ๐ฐ Each row is one slice, and the ValidData flag is how you check whether that slice actually has real data in it ๐
-- The DS3 Far End Total
dsx3FarEndTotalTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx3FarEndTotalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS3 Far End Total Table contains the
cumulative sum of the various statistics for the
24 hour period preceding the current interval."
::= { ds3 12 }
dsx3FarEndTotalEntry OBJECT-TYPE
SYNTAX Dsx3FarEndTotalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS3 Far End Total table."
INDEX { dsx3FarEndTotalIndex }
::= { dsx3FarEndTotalTable 1 }
Dsx3FarEndTotalEntry ::=
SEQUENCE {
dsx3FarEndTotalIndex InterfaceIndex,
dsx3FarEndTotalCESs PerfTotalCount,
dsx3FarEndTotalCSESs PerfTotalCount,
dsx3FarEndTotalCCVs PerfTotalCount,
dsx3FarEndTotalUASs PerfTotalCount
}
dsx3FarEndTotalIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value which uniquely identifies the DS3
interface to which this entry is applicable. The
interface identified by a particular value of this
index is identical to the interface identified by
the same value of dsx3LineIndex."
::= { dsx3FarEndTotalEntry 1 }
dsx3FarEndTotalCESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
C-bit Errored Seconds encountered by a DS3
interface in the previous 24 hour interval.
Invalid 15 minute intervals count as 0."
::= { dsx3FarEndTotalEntry 2 }
dsx3FarEndTotalCSESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
C-bit Severely Errored Seconds encountered by a
DS3 interface in the previous 24 hour interval.
Invalid 15 minute intervals count as 0."
::= { dsx3FarEndTotalEntry 3 }
dsx3FarEndTotalCCVs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
C-bit Coding Violations reported via the far end
block error count encountered by a DS3 interface
in the previous 24 hour interval. Invalid 15
minute intervals count as 0."
::= { dsx3FarEndTotalEntry 4 }
dsx3FarEndTotalUASs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The counter associated with the number of Far End
unavailable seconds encountered by a DS3 interface
in the previous 24 hour interval. Invalid 15
minute intervals count as 0."
::= { dsx3FarEndTotalEntry 5 }
The total table is the big-picture rollup ๐ It's the running sum over the last 24 hours, and invalid intervals just count as zero, so no drama there ๐ซถ
-- the DS3/E3 Fractional Table
-- This table is deprecated.
dsx3FracTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx3FracEntry
MAX-ACCESS not-accessible
STATUS deprecated
DESCRIPTION
"This table is deprecated in favour of using
ifStackTable.
Implementation of this table was optional. It was
designed for those systems dividing a DS3/E3 into
channels containing different data streams that
are of local interest.
The DS3/E3 fractional table identifies which
DS3/E3 channels associated with a CSU are being
used to support a logical interface, i.e., an
entry in the interfaces table from the Internet-
standard MIB.
For example, consider a DS3 device with 4 high
speed links carrying router traffic, a feed for
voice, a feed for video, and a synchronous channel
for a non-routed protocol. We might describe the
allocation of channels, in the dsx3FracTable, as
follows:
dsx3FracIfIndex.2. 1 = 3 dsx3FracIfIndex.2.15 = 4
dsx3FracIfIndex.2. 2 = 3 dsx3FracIfIndex.2.16 = 6
dsx3FracIfIndex.2. 3 = 3 dsx3FracIfIndex.2.17 = 6
dsx3FracIfIndex.2. 4 = 3 dsx3FracIfIndex.2.18 = 6
dsx3FracIfIndex.2. 5 = 3 dsx3FracIfIndex.2.19 = 6
dsx3FracIfIndex.2. 6 = 3 dsx3FracIfIndex.2.20 = 6
dsx3FracIfIndex.2. 7 = 4 dsx3FracIfIndex.2.21 = 6
dsx3FracIfIndex.2. 8 = 4 dsx3FracIfIndex.2.22 = 6
dsx3FracIfIndex.2. 9 = 4 dsx3FracIfIndex.2.23 = 6
dsx3FracIfIndex.2.10 = 4 dsx3FracIfIndex.2.24 = 6
dsx3FracIfIndex.2.11 = 4 dsx3FracIfIndex.2.25 = 6
dsx3FracIfIndex.2.12 = 5 dsx3FracIfIndex.2.26 = 6
dsx3FracIfIndex.2.13 = 5 dsx3FracIfIndex.2.27 = 6
dsx3FracIfIndex.2.14 = 5 dsx3FracIfIndex.2.28 = 6
For dsx3M23, dsx3 SYNTRAN, dsx3CbitParity, and
dsx3ClearChannel there are 28 legal channels,
numbered 1 through 28.
For e3Framed there are 16 legal channels, numbered
1 through 16. The channels (1..16) correspond
directly to the equivalently numbered time-slots."
::= { ds3 13 }
dsx3FracEntry OBJECT-TYPE
SYNTAX Dsx3FracEntry
MAX-ACCESS not-accessible
STATUS deprecated
DESCRIPTION
"An entry in the DS3 Fractional table."
INDEX { dsx3FracIndex, dsx3FracNumber }
::= { dsx3FracTable 1 }
Dsx3FracEntry ::=
SEQUENCE {
dsx3FracIndex INTEGER,
dsx3FracNumber INTEGER,
dsx3FracIfIndex INTEGER
}
Okay bestie, the MIB module keeps going and this part is all about the deprecated frac objects, the DS3 trap, and the conformance groups. ๐ The code is copied exactly, so every field, value, and description stays intact. โจ
dsx3FracIndex OBJECT-TYPE
SYNTAX INTEGER (1..'7fffffff'h)
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS deprecated
DESCRIPTION
"The index value which uniquely identifies the
DS3 interface to which this entry is applicable
The interface identified by a particular value
of this index is the same interface as
identified by the same value an dsx3LineIndex
object instance."
::= { dsx3FracEntry 1 }
dsx3FracNumber OBJECT-TYPE
SYNTAX INTEGER (1..31)
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS deprecated
DESCRIPTION
"The channel number for this entry."
::= { dsx3FracEntry 2 }
dsx3FracIfIndex OBJECT-TYPE
SYNTAX INTEGER (0..'7fffffff'h)
MAX-ACCESS read-write
STATUS deprecated
DESCRIPTION
"An index value that uniquely identifies an
interface. The interface identified by a
particular value of this index is the same
interface as identified by the same value an
ifIndex object instance. If no interface is
currently using a channel, the value should be
zero. If a single interface occupies more than
one time slot, that ifIndex value will be found
in multiple time slots."
::= { dsx3FracEntry 3 }
-- DS3 TRAPS
ds3Traps OBJECT IDENTIFIER ::= { ds3 15 }
dsx3LineStatusChange NOTIFICATION-TYPE
OBJECTS { dsx3LineStatus,
dsx3LineStatusLastChange }
STATUS current
DESCRIPTION
"A dsx3LineStatusChange trap is sent when the
value of an instance of dsx3LineStatus changes. It
can be utilized by an NMS to trigger polls. When
the line status change results in a lower level
line status change (i.e., ds1), then no traps for
the lower level are sent."
::= { ds3Traps 0 1 }
-- conformance information
ds3Conformance OBJECT IDENTIFIER ::= { ds3 14 }
ds3Groups OBJECT IDENTIFIER ::= { ds3Conformance 1 }
ds3Compliances OBJECT IDENTIFIER ::= { ds3Conformance 2 }
-- compliance statements
ds3Compliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for DS3/E3 interfaces."
MODULE -- this module
MANDATORY-GROUPS { ds3NearEndConfigGroup,
ds3NearEndStatisticsGroup }
GROUP ds3FarEndGroup
DESCRIPTION
"Implementation of this group is optional for all
systems that attach to a DS3 Interface. However,
only C-bit Parity and SYNTRAN DS3 applications
have the capability (option) of providing this
information."
GROUP ds3NearEndOptionalTrapGroup
DESCRIPTION
"Implementation of this group is optional for all
systems that attach to a DS3 Interface. If it is
implemented then ds3NearEndOptionalConfigGroup
should also be implemented."
GROUP ds3NearEndOptionalConfigGroup
DESCRIPTION
"Implementation of this group is optional for all
systems that attach to a DS3 interface."
OBJECT dsx3LineType
MIN-ACCESS read-only
DESCRIPTION
"Write access for the line type is not required."
OBJECT dsx3LineCoding
MIN-ACCESS read-only
DESCRIPTION
"Write access for the line coding is not
required."
OBJECT dsx3SendCode
MIN-ACCESS read-only
DESCRIPTION
"Write access for the send code is not required."
OBJECT dsx3LoopbackConfig
MIN-ACCESS read-only
DESCRIPTION
"Write access for loopbacks is not required."
OBJECT dsx3TransmitClockSource
MIN-ACCESS read-only
DESCRIPTION
"Write access for the transmit clock source is not
required."
OBJECT dsx3LineLength
MIN-ACCESS read-only
DESCRIPTION
"Write access for the line length is not
required."
OBJECT dsx3Channelization
MIN-ACCESS read-only
DESCRIPTION
"Write access for the channelization is not
required."
::= { ds3Compliances 1 }
-- units of conformance
ds3NearEndConfigGroup OBJECT-GROUP
OBJECTS { dsx3LineIndex,
dsx3TimeElapsed,
dsx3ValidIntervals,
dsx3LineType,
dsx3LineCoding,
dsx3SendCode,
dsx3CircuitIdentifier,
dsx3LoopbackConfig,
dsx3LineStatus,
dsx3TransmitClockSource,
dsx3InvalidIntervals,
dsx3LineLength,
dsx3LoopbackStatus,
dsx3Channelization,
dsx3Ds1ForRemoteLoop}
STATUS current
DESCRIPTION
"A collection of objects providing configuration
information applicable to all DS3/E3 interfaces."
::= { ds3Groups 1 }
ds3NearEndStatisticsGroup OBJECT-GROUP
OBJECTS { dsx3CurrentIndex,
dsx3CurrentPESs,
dsx3CurrentPSESs,
dsx3CurrentSEFSs,
dsx3CurrentUASs,
dsx3CurrentLCVs,
dsx3CurrentPCVs,
dsx3CurrentLESs,
dsx3CurrentCCVs,
dsx3CurrentCESs,
dsx3CurrentCSESs,
dsx3IntervalIndex,
dsx3IntervalNumber,
dsx3IntervalPESs,
dsx3IntervalPSESs,
dsx3IntervalSEFSs,
dsx3IntervalUASs,
dsx3IntervalLCVs,
dsx3IntervalPCVs,
dsx3IntervalLESs,
dsx3IntervalCCVs,
dsx3IntervalCESs,
dsx3IntervalCSESs,
dsx3IntervalValidData,
dsx3TotalIndex,
dsx3TotalPESs,
dsx3TotalPSESs,
dsx3TotalSEFSs,
dsx3TotalUASs,
dsx3TotalLCVs,
dsx3TotalPCVs,
dsx3TotalLESs,
dsx3TotalCCVs,
dsx3TotalCESs,
dsx3TotalCSESs }
STATUS current
DESCRIPTION
"A collection of objects providing statistics
information applicable to all DS3/E3 interfaces."
::= { ds3Groups 2 }
ds3FarEndGroup OBJECT-GROUP
OBJECTS { dsx3FarEndLineIndex,
dsx3FarEndEquipCode,
dsx3FarEndLocationIDCode,
dsx3FarEndFrameIDCode,
dsx3FarEndUnitCode,
dsx3FarEndFacilityIDCode,
dsx3FarEndCurrentIndex,
dsx3FarEndTimeElapsed,
dsx3FarEndValidIntervals,
dsx3FarEndCurrentCESs,
dsx3FarEndCurrentCSESs,
dsx3FarEndCurrentCCVs,
dsx3FarEndCurrentUASs,
dsx3FarEndInvalidIntervals,
dsx3FarEndIntervalIndex,
dsx3FarEndIntervalNumber,
dsx3FarEndIntervalCESs,
dsx3FarEndIntervalCSESs,
dsx3FarEndIntervalCCVs,
dsx3FarEndIntervalUASs,
dsx3FarEndIntervalValidData,
dsx3FarEndTotalIndex,
dsx3FarEndTotalCESs,
dsx3FarEndTotalCSESs,
dsx3FarEndTotalCCVs,
dsx3FarEndTotalUASs }
STATUS current
DESCRIPTION
"A collection of objects providing remote
configuration and statistics information
applicable to C-bit Parity and SYNTRAN DS3
interfaces."
::= { ds3Groups 3 }
ds3DeprecatedGroup OBJECT-GROUP
OBJECTS { dsx3IfIndex,
dsx3FracIndex,
dsx3FracNumber,
dsx3FracIfIndex }
STATUS deprecated
DESCRIPTION
"A collection of obsolete objects that may be
implemented for backwards compatibility."
::= { ds3Groups 4 }
ds3NearEndOptionalConfigGroup OBJECT-GROUP
OBJECTS { dsx3LineStatusLastChange,
dsx3LineStatusChangeTrapEnable }
STATUS current
DESCRIPTION
"A collection of objects that may be implemented
on DS3/E3 interfaces."
::= { ds3Groups 5 }
ds3NearEndOptionalTrapGroup NOTIFICATION-GROUP
NOTIFICATIONS { dsx3LineStatusChange }
STATUS current
DESCRIPTION
"A collection of notifications that may be
implemented on DS3/E3 interfaces."
::= { ds3Groups 6 }
END
Quick vibe check: ๐ the frac objects are deprecated but still kept around for backwards compatibility, which is so iconic of them. ๐ธ
4. Appendix A - Use of dsx3IfIndex and dsx3LineIndex โจ
okay so this appendix is basically the history lesson ๐ behind dsx3IfIndex and dsx3LineIndex. It explains how they were used before, and how dsx3LineIndex from RFC 1407 connects to the dsx3LineIndex in this document. bestie, it's giving legacy drama ๐
Here are the new and old definitions side by side, plus how they relate:
[New Definition]: "This object should be made equal to ifIndex. The
next paragraph describes its previous usage. Making the object equal
to ifIndex allows proper use of ifStackTable.
[Old Definition]: "this object is the identifier of a DS3/E3
Interface on a managed device. If there is an ifEntry that is
directly associated with this and only this DS3/E3 interface, it
should have the same value as ifIndex. Otherwise, number the
dsx3LineIndices with an unique identifier following the rules of
choosing a number that is greater than ifNumber and numbering the
inside interfaces (e.g., equipment side) with even numbers and
outside interfaces (e.g, network side) with odd numbers."
When the Old Definition was written, the goal was to let a manager treat the value as if it were an ifIndex. So the value would be either 1) an ifIndex value, or 2) a value guaranteed to differ from every valid ifIndex value. Iconic planning ๐ง
The new definition is a subset of the old one, which means the value is always an ifIndex value now. Clean and simple ๐
Next up is Section 3.1 from [RFC1407], quoted in full so nothing gets lost in translation:
Different physical configurations for the support of SNMP with DS3/E3
equipment exist. To accommodate these scenarios, two different
indices for DS3/E3 interfaces are introduced in this MIB. These
indices are dsx3IfIndex and dsx3LineIndex.
External interface scenario: the SNMP Agent represents all managed
DS3/E3 lines as external interfaces (for example, an Agent residing
on the device supporting DS3/E3 interfaces directly):
For this scenario, all interfaces are assigned an integer value equal
to ifIndex, and the following applies:
ifIndex=dsx3IfIndex=dsx3LineIndex for all interfaces.
The dsx3IfIndex column of the DS3/E3 Configuration table relates each
DS3/E3 interface to its corresponding interface (ifIndex) in the
Internet-standard MIB (MIB-II STD 17, [RFC1213]).
External&Internal interface scenario: the SNMP Agents resides on an
host external from the device supporting DS3/E3 interfaces (e.g., a
router). The Agent represents both the host and the DS3/E3 device.
The index dsx3LineIndex is used to not only represent the DS3/E3
interfaces external from the host/DS3/E3-device combination, but also
the DS3/E3 interfaces connecting the host and the DS3/E3 device. The
index dsx3IfIndex is always equal to ifIndex.
Now for the example, which is a whole vibe ๐ A shelf of CSUs is hooked up to a Router, and an SNMP Agent on the router speaks for both itself and the CSU. The router also has an Ethernet interface:
+-----+
| | |
| | | +---------------------+
|E | | 44.736 MBPS | ds3 M13 Line#A | ds3 C-bit Parity
|t | R |---------------+ - - - - - - - - - +------>
|h | | | |
|e | O | 44.736 MBPS | ds3 M13 Line#B | ds3 C-bit Parity
|r | |---------------+ - - - - - - - - - - +------>
|n | U | | |
|e | | 44.736 MBPS | ds3 M13 Line#C | ds3 C-bit Parity
|t | T |---------------+ - - - -- -- - - - - +------>
| | | | |
|-----| E | 44.736 MBPS | ds3 M13 Line#D | ds3 C-bit Parity
| | |---------------+ - - - - -- - - - - +------>
| | R | |_____________________|
| | |
| +-----+
Here's an example of how the index values could be assigned:
ifIndex (= dsx3IfIndex) dsx3LineIndex
1 NA NA (Ethernet)
2 Line#A Router Side 6
2 Line#A Network Side 7
3 Line#B Router Side 8
3 Line#B Network Side 9
4 Line#C Router Side 10
4 Line#C Network Side 11
5 Line#D Router Side 12
5 Line#D Network Side 13
For this example, ifNumber is equal to 5. Also, look at this description of dsx3LineIndex, because it's the key to the whole thing ๐
the dsx3LineIndex identifies a DS3/E3
Interface on a managed device. If there is an ifEntry that is
directly associated with this and only this DS3/E3 interface, it
should have the same value as ifIndex. Otherwise, number the
dsx3LineIndices with an unique identifier following the rules of
choosing a number greater than ifNumber and numbering inside
interfaces (e.g., equipment side) with even numbers and outside
interfaces (e.g., network side) with odd numbers.
If the CSU shelf gets managed by its own local SNMP Agent instead, the assignments look like this:
ifIndex (= dsx3IfIndex) dsx3LineIndex
1 Line#A Network Side 1
2 Line#A RouterSide 2
3 Line#B Network Side 3
4 Line#B RouterSide 4
5 Line#C Network Side 5
6 Line#C Router Side 6
7 Line#D Network Side 7
8 Line#D Router Side 8
5. Appendix B - The delay approach to Unavialable Seconds. ๐ฐ๏ธ
This is the procedure, illustrated for a DS3 C-Bit parity application. Other interfaces covered by this MIB follow similar rules. The best part is that the statistical counters stay correctly updated at all times, even though they lag real time by 10 seconds. ๐ซถ Every 15 minute interval, the current interval counts get moved into the most recent interval entry, and every interval shifts up by one position. If room is needed, the oldest one gets discarded. Then the current interval counts start over from zero. One twist, though: the signal state calculation does not start fresh at each interval boundary. Signal state information is kept across interval boundaries, so the drama carries over ๐ญ
Here's the flow diagram, verbatim:
+----------------------------------------------------------------+
| READ COUNTERS & STATUS INFO FROM HARDWARE |
| |
|BPV EXZ LOS PCV CCV AIS SEF OOF LOF FEBE RAI |
+----------------------------------------------------------------+
| | | | | | | | | | |
| | | | | | | | | | |
V V V V V V V V V V V
+----------------------------------------------------------------+
| ACCUM ONE-SEC STATS, CHK ERR THRESHOLDS, & UPDT SIGNAL STATE |
| |
|<------------- NEAR END ---------------->| |<---- FAR END ----->|
| |
|LCV LES PCV CCV PES CES PSES CSES SEFS A/U CCV CES CSES SEFS A/U|
+----------------------------------------------------------------+
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
V V V V V V V V V | V V V V |
+--------------------------------------+ | +-----------------+ |
| ONE-SEC DELAY | | | ONE-SEC DELAY | |
| (1 OF 10) | | | (1 OF 10) | |
+--------------------------------------+ | +-----------------+ |
| | | | | | | | | | | | | | |
/ / / / / / / / / / / / / / /
| | | | | | | | | | | | | | |
V V V V V V V V V | V V V V |
+--------------------------------------+ | +-----------------+ |
| ONE-SEC DELAY | | | ONE-SEC DELAY | |
| (10 OF 10) | | | (10 OF 10) | |
+--------------------------------------+ | +-----------------+ |
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
V V V V V V V V V V V V V V V
+----------------------------------------------------------------+
| UPDATE STATISTICS COUNTERS |
| |
|<------------- NEAR END ---------------->| |<---- FAR END ----->|
| |
|LCV LES PCV CCV PES CES PSES CSES SEFS UAS CCV CES CSES SEFS UAS|
+----------------------------------------------------------------+
Heads up, this one's important ๐ If you adopt this procedure, there's no current interval data for the first ten seconds after a system comes up. So if a management station tries to read the current interval counters during that window, noSuchInstance must be returned. Also, whether an agent assumes the interface starts out available or unavailable is an implementation-specific matter. Totally up to the implementer ๐
6. Acknowledgments ๐
This document was produced by the AToM MIB Working Group. The Editor wants to give a special shoutout to C. Mike Heard for providing a top notch doctor review and so many helpful suggestions. They also thank D. Fowler, Editor of RFC 2496, and T. Cox and K. Tesink, Editors of RFC 1407. The real MVPs ๐ธ
7. References ๐
7.1. Normative References
okay so these are the docs this spec is literally built on, so you need them to read the rest ๐โจ
- [RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
- [RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
- [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
- [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", RFC 2863, June 2000.
- [ANSI-T1.102] American National Standard for telecommunications - digital hierarchy - electrical interfaces, ANSI T1.102-1987.
- [ANSI-T1.107] American National Standard for telecommunications - digital hierarchy - formats specification, ANSI T1.107- 1988.
- [ANSI-T1.107a] ANSI T1.107a-1990.
- [ANSI-T1.404] American National Standard for telecommunications - Carrier-to-Customer Installation - DS3 Metallic Interface, ANSI T1.404-1989.
- [ANSI-T1.231] American National Standard for Telecommunications -- Layer 1 In- Service Digital Transmission Performance Monitoring T1.231, Sept 1993.
- [CCITT-G.751] CCITT - Digital Multiplex Equipment Operating at the Third Order Bit Rate of 34 368 Kbit/s and the Forth Order Bit Rate of 139 264 Kbit/s and Using Positive Justification, G.751
- [ETSI-T/NA(91)18] European Telecommunications Standards Institute -- ETS "34M" -- Metropolitan Area Network Physical Convergence Layer Procedure for 34.368 Megabits per Second, T/NA(91)18, May 1991.
- [RFC3593] Tesink, K., "Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals", RFC 3593, September 2003.
- [ITU-T-M.1400] ITU-T M.1400: Designation For Interconnections Among Network Operators, October 2001.
7.2. Informative References
these ones are the extra reading, the "oh wait, what's that?" docs ๐ง
- [RFC1213] McCloghrie, K. and M. Rose, "Management Information Base for Network Management of TCP/IP-based internets:MIB-II", STD 17, RFC 1213, March 1991.
- [RFC1407] Cox, T. and K. Tesink, "Definitions of Managed Objects for the DS3/E3 Interface Type", RFC 1407, January 1993.
- [RFC2496] Fowler, D., "Definitions of Managed Object for the DS3/E3 Interface Type", RFC 2496, January 1999.
- [RFC3895] Nicklass, O., Ed., "Definitions of Managed Objects for the DS1, E1, DS2, and E2 Interface Types", RFC 3895, September 2004.
- [RFC3592] Tesink, K., "Definitions of Managed Objects for the Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) Interface Type", RFC 3592, September 2003.
- [RFC2494] Fowler, D., "Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type", RFC 2494, January 1999.
- [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.
8. Security Considerations โจ
okay this section is SERIOUS, bestie ๐ญ๐ some of these objects are read-write, which means somebody can actually change them, and that's a whole vibe with real consequences.
Some objects can be sensitive or vulnerable in certain network environments, and turning on SET operations without proper protection can seriously mess with network operations. Here's the breakdown of which objects are the risky ones.
Setting these objects to the wrong values may cause traffic interruptions ๐:
dsx3LineType
dsx3LineCoding
dsx3SendCode
dsx3LoopbackConfig
dsx3TransmitClockSource
dsx3LineLength
dsx3Channelization
dsx3Ds1ForRemoteLoop
For example, with dsx3LineType, both ends of a DS3/E3 need the same value or the traffic just won't flow. And with dsx3SendCode and dsx3LoopbackConfig, traffic may stop transmitting when certain loopbacks are applied. Yikes ๐
Setting these objects to a wrong value means the remote end gets an incorrect Path Identification message, which could lead to a connectivity inconsistency:
dsx3FarEndEquipCode
dsx3FarEndLocationIDCode
dsx3FarEndFrameIDCode
dsx3FarEndUnitCode
dsx3FarEndFacilityIDCode
Setting this one to a wrong value won't hurt the traffic, but the circuit might get mis-identified, which makes life annoying for service personnel trying to troubleshoot ๐
dsx3CircuitIdentifier
Setting this one can increase the number of traps the network management station receives ๐
dsx3LineStatusChangeTrapEnable
The readable objects here (anything with a MAX-ACCESS other than not-accessible) can be sensitive too, because together they reveal a lot about how DS3/E3 equipment or networks are performing, and they can expose some of the configuration. In those environments, it matters to control even GET and NOTIFY access to these objects, and maybe encrypt their values when SNMP sends them over the network ๐
SNMP versions before SNMPv3 didn't have adequate security. Even if the network is secure (say, by using IPSec), there's still no control over who on that secure network can access and GET/SET (read/change/create/delete) the objects in this MIB module ๐
It is RECOMMENDED that implementers consider the security features provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms for authentication and privacy ๐ง
Also, deploying SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and enable cryptographic security. It's then the customer or operator's responsibility to make sure the SNMP entity giving access to an instance of this MIB module is configured so only principals (users) with legitimate rights can GET or SET (change/create/delete) those objects ๐๐
9. Author's Address
Orly Nicklass (editor)
RAD Data Communications, Ltd.
Ziv Tower, 24 Roul Walenberg
Tel Aviv, Israel, 69719
Phone: 9723-765-9969
EMail: orly_n@rad.com
10. Full Copyright Statement
Copyright (C) The Internet Society (2004).
This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.
The legal fine print, verbatim, because it has to be ๐
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/S HE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position on whether any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described here are valid or in scope, or whether any license under those rights might be available. It also doesn't claim to have made any independent effort to find such rights. Info on the IETF's procedures for rights in IETF Documents is in BCP 78 and BCP 79 ๐ง
Copies of IPR disclosures made to the IETF Secretariat, plus any assurances of licenses to be made available, or the results of an attempt to get a general license or permission for implementers or users to use those proprietary rights, can be found in the IETF on-line IPR repository at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology required to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org ๐
Acknowledgement
Funding for the RFC Editor function is currently provided by the Internet Society. Thank you, Internet Society ๐ซถ๐
๐ฆ where this page comes from
- ietf: rfc3896 2004-09
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms