RFC 4805
Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types
RFC 4805 ๐ Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types
- RFC: 4805
- Authors: O. Nicklass, Ed., RAD Data Communications, Ltd. ๐
- Category: Standards Track โจ
- Date: March 2007 ๐
- Obsoletes: RFC 3895 ๐
- Updates: nothing is listed ๐ธ
Status of This Memo
okay so this doc is an Internet standards track protocol for the Internet community ๐ It's basically asking everyone to talk about it and send in suggestions for making it better ๐ซถ For the current standardization state and status, check the "Internet Official Protocol Standards" (STD 1) ๐ And distribution is unlimited, so share away ๐ฆ
Copyright Notice
Copyright (C) The IETF Trust (2007) ๐
Abstract
this memo defines a chunk of the Management Information Base (MIB) for network management protocols in the Internet community ๐ง It focuses on managing DS1, J1, E1, DS2, and E2 interfaces ๐ฅ It's the companion to the docs for DS0, DS3/E3, and Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) Interface Types ๐ซ
And yes, this document obsoletes RFC 3895 ๐
Table of Contents
1. The Internet-Standard Management Framework ......................2
2. Conventions Used in This Document ...............................3
3. Overview ........................................................3
3.1. Use of ifTable for DS1 Layer ...............................4
3.2. Usage Guidelines ...........................................5
3.2.1. Usage of ifStackTable for Routers and DSUs ..........5
3.2.2. Usage of ifStackTable for DS1/J1/E1 on DS2/E2 .......7
3.2.3. Usage of Channelization for DS3, DS1, DS0 ...........8
3.2.4. Usage of Channelization for DS3, DS2, DS1 ...........9
3.2.5. Usage of Loopbacks .................................10
3.3. Objectives of This MIB Module .............................10
3.4. DS1 Terminology ...........................................11
3.4.1. Error Events .......................................11
3.4.2. Performance Defects ................................12
3.4.3. Performance Parameters .............................13
3.4.4. Failure States .....................................17
3.4.5. Other Terms ........................................20
4. Object Definitions .............................................20
5. Security Considerations ........................................83
6. Acknowledgments ................................................84
7. References .....................................................84
7.1. Normative References ......................................84
7.2. Informative References ....................................86
Appendix A - Use of dsx1IfIndex and dsx1LineIndex .................88
Appendix B - The Delay Approach to Unavailable Seconds ............90
Appendix C - Changes from Previous Versions .......................92
C.1. Changes from RFC 3895 .....................................92
C.2. Changes from RFC 2495 .....................................92
C.3. Changes from RFC 1406 .....................................92
C.4. Companion Documents .......................................93
1. The Internet-Standard Management Framework โจ
if you want the full tea on the documents that describe the current Internet-Standard Management Framework, check section 7 of RFC 3410 [RFC3410] ๐ซถ
so managed objects live in a virtual information store called the Management Information Base, or MIB ๐๏ธ You usually reach MIB objects through the Simple Network Management Protocol (SNMP) ๐ก The objects get defined using the Structure of Management Information (SMI) ๐งฉ This memo's MIB module follows SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] ๐
2. Conventions Used in This Document ๐
the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] ๐ฅ
3. Overview ๐ฆ
these objects are used when the media realizing an interface is a DS1/J1/E1/DS2/E2 interface ๐ Right now, that applies to this value of the ifType variable in the Internet-standard MIB:
ds1 (18)
the definitions here are based on the AT&T T-1 Superframe (a.k.a. D4) [ANSI-T1.107] and Extended Superframe (ESF) formats [AT&T-UM-305], [AT&T-TR-54016]. The latter conforms to ANSI specifications [ANSI-T1.403]. The CCITT Recommendations [CCITT-G.703], [ITU-T-G.704] are the E1 stuff, which this memo just calls E1 ๐ธ J1 refers to the definition in [JT-G704], [JT-G706], and [JT-I431] ๐ง
the DS1, J1, and E1 line disciplines are similar enough that separate MIBs would be kinda pointless ๐ There are still some differences though. Loss of Frame is defined more rigorously in the ESF spec than in D4. Yellow Alarm generation and detection are a bit different between T1 and J1. But in both examples, both related lines have a definition, so it's all good โจ So interface types e1(19) and g703at2mb(67) are obsoleted, and there's no special type for J1 either ๐
when you need to tell apart the flavors of E1 with and without Cyclic Redundancy Check (CRC), E1-CRC means the "with CRC" form (G.704 Table 5B), and E1-noCRC means the "without CRC" form (G.704 Table 5A) ๐
3.1. Use of ifTable for DS1 Layer ๐
only the ifGeneralInformationGroup needs to be supported ๐
ifTable Object Use for DS1 Layer
===================================================================
ifIndex Interface index.
ifDescr See interfaces MIB [RFC2863].
ifType ds1(18)
ifSpeed Speed of line rate
DS1 - 1544000
J1 - 1544000
E1 - 2048000
DS2 - 6312000
E2 - 8448000
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
(2, 6, or 8).
ifConnectorPresent Set to true(1) normally, except for
cases such as DS1/E1 over AAL1/ATM where
false(2) is appropriate.
3.2. Usage Guidelines ๐
3.2.1. Usage of ifStackTable for Routers and DSUs ๐ง
okay so the object dsx1IfIndex is deprecated now ๐ฅ It used to allow a very special proxy situation for routers and Channel Service Units (CSUs). This section explains how to use the ifStackTable to represent that relationship instead ๐
the paragraphs about dsx1IfIndex and dsx1LineIndex were kept in Appendix A, just for info ๐
the ifStackTable is used in the proxy case to show the association between pairs of interfaces. Basically, this T1 is attached to that T1 ๐ It's consistent with how the ifStackTable shows the association between sub-layers of an interface ๐ซถ In both cases, entire PDUs get exchanged between the interface pairs. For a T1, entire T1 frames get exchanged. For PPP and High-Level Data Link Control (HDLC), entire HDLC frames get exchanged ๐ This usage is NOT meant to suggest using the ifStackTable for Time Division Multiplexing (TDM) connections in general ๐ โโ๏ธ
External and Internal interface scenario: the SNMP agent lives on a host outside the device supporting DS1 interfaces (like a router). The agent represents both the host and the DS1 device ๐
Example:
a shelf full of CSUs connected to a router ๐ธ An SNMP agent on the router proxies for itself and the CSU. The router also has an Ethernet interface โจ
+-----+
| | |
| | | +---------------------+
|E | | 1.544 MBPS | Line#A | DS1 Link
|t | R |---------------+ - - - - - - - - - +------>
|h | | | |
|e | O | 1.544 MBPS | Line#B | DS1 Link
|r | |---------------+ - - - - - - - - - - +------>
|n | U | | CSU Shelf |
|e | | 1.544 MBPS | Line#C | DS1 Link
|t | T |---------------+ - - - -- -- - - - - +------>
| | | | |
|-----| E | 1.544 MBPS | Line#D | DS1 Link
| | |---------------+ - - - - -- - - - - +------>
| | R | |_____________________|
| | |
| +-----+
the index values could look like this, for 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 the ifStackTable shows how the various DS1 interfaces relate ๐
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, it's basically the same situation, except the Ethernet and the four router interfaces get deleted. The interfaces also get renumbered 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
3.2.2. Usage of ifStackTable for DS1/J1/E1 on DS2/E2
okay so this bit shows how DS1/J1/E1 interfaces get stacked on top of DS2/E2 interfaces ๐ง representing DS2 interfaces isn't always necessary or even desirable, lowkey. but if you DO need them in the table, the stacking SHOULD look like this. every ifType is ds1, and you figure out which ones are DS2 by checking ifSpeed or dsx1LineType ๐
ifIndex Description
1 DS1 #1
2 DS1 #2
3 DS1 #3
4 DS1 #4
5 DS2
ifStackTable Entries
HigherLayer LowerLayer
1 5
2 5
3 5
4 5
3.2.3. Usage of Channelization for DS3, DS1, DS0
this one is an example to explain the channelization objects in the DS3, DS1, and DS0 MIBs ๐ so you can use them correctly without going ๐คฏ. E3 and E1 work pretty much the same way, it's just that the number of DS0s depends on the framing of the E1.
okay so say a DS3 (with ifIndex 1) is channelized into DS1s, with no DS2s in the middle ๐ฆ the object dsx3Channelization gets set to enabledDs1. that makes 28 DS1s show up in the ifTable. assuming they're created in channel order, their ifIndex values are 2 through 29. in the DS1 MIB, each DS1 gets an entry in the dsx1ChanMappingTable, and it looks like this:
dsx1ChanMappingTable Entries
ifIndex dsx1Ds1ChannelNumber dsx1ChanMappedIfIndex
1 1 2
1 2 3
......
1 28 29
and then it gets even more layered ๐ธ the DS1s get channelized into DS0s too. you set dsx1Channelization to enabledDS0 for each DS1, and the agent creates 24 DS0s. so every DS1 ends up with 24 DS0s in the ifTable. if you set dsx1Channelization to disabled, those 24 DS0s get destroyed ๐ญ
assuming the entries are created in channel order, the DS0s in the first DS1 have ifIndex values 30 through 53. in the DS0 MIB, each DS0 gets an entry in the dsx0ChanMappingTable, like so:
dsx0ChanMappingTable Entries
ifIndex dsx0Ds0ChannelNumber dsx0ChanMappedIfIndex
2 1 30
2 2 31
......
2 24 53
3.2.4. Usage of Channelization for DS3, DS2, DS1
this section is another example, this time explaining the channelization objects in the DS3 and DS1 MIBs so you can use them right ๐
so picture a DS3 (with ifIndex 1) getting channelized into DS2s. the object dsx3Channelization [RFC3896] gets set to enabledDs2. that gives you 7 DS2s (ifType of DS1) in the ifTable. assuming they're created in channel order, the ifIndex values are 2 through 8. in the DS1 MIB, each DS2 gets an entry in the dsx1ChanMappingTable, like this:
dsx1ChanMappingTable Entries
ifIndex dsx1Ds1ChannelNumber dsx1ChanMappedIfIndex
1 1 2
1 2 3
......
1 7 8
then the DS2s get channelized into DS1s ๐ you set dsx1Channelization to enabledDS1 for each DS2, and each one ends up with 4 DS1s in the ifTable. assuming they're created in channel order, the DS1s in the first DS2 get ifIndex values 9 through 12, the second DS2 gets 13 through 16, and so on. in the DS1 MIB, each DS1 gets an entry in the dsx1ChanMappingTable:
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
3.2.5. Usage of Loopbacks
this part is all about how loopback objects behave ๐ฅ pay attention, it gets a little intense.
the object dsx1LoopbackConfig represents the desired state of loopbacks on this interface. with it, a manager can request any of these:
LineLoopbackPayloadLoopback(if ESF framing)InwardLoopbackDualLoopback(Line + Inward)NoLoopback
the remote end can also request loopbacks, either through the Facility Data Link (FDL) channel if it's ESF, or inband if it's D4 ๐ the ones it can ask for this way are:
LineLoopbackPayloadLoopback(if ESF framing)NoLoopback
to show the current state of loopbacks on a DS1 interface, use the object dsx1LoopbackStatus. it tells you which loopback is actually applied to the interface right now. it's a bitmap, so the bits that are on show the active loopbacks plus where each one came from โจ
now the rules, and they're kind of a big deal ๐ซถ
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 set at the same time. only these two can co-exist, and either one can be set by the manager or the far end. a LineLoopback request from the far end is incremental to an existing Inward loopback set up by a manager. so when a NoLoopback comes in from the far end in this case, the InwardLoopback just stays put ๐ฆ
3.3. Objectives of This MIB Module
there are loads of things a MIB for DS1 signals could cover, like managing multiplexers, CSUs, Data Service Units (DSUs), and stuff like that ๐ but this document is about making it easy to manage all the devices with DS1, J1, E1, DS2, or E2 interfaces in one common way. so the design decision was made early on to line up the MIB very closely with the objects that can generally be read from these kinds of devices that are already out there in the wild.
J2 interfaces are not supported by this MIB. ๐
3.4. DS1 Terminology
the terminology this document uses for DS1 error conditions, as seen by a DS1 device, is based on the latest ANSI T1.231 standard [ANSI-T1.231]. if something here doesn't match the T1.231 definition, the implementer SHOULD follow the definition in this document โจ
3.4.1. Error Events
Bipolar Violation (BPV) Error Event
a BPV error event for an AMI-coded (AMI stands for Alternate Mark Inversion) signal is when a pulse shows up with the same polarity as the previous pulse (see T1.231, Section 4.2.1.1.1). for a B8ZS- or HDB3-coded signal, a BPV error event is when a pulse has the same polarity as the previous pulse without being part of the zero substitution code. ๐
Excessive Zeroes (EXZ) Error Event
an Excessive Zeroes error event for an AMI-coded signal happens when you get more than fifteen contiguous zeroes (see T1.231 Section 4.2.1.1.2). for a B8ZS-coded signal, the defect shows up when more than seven contiguous zeroes are detected. ๐ธ
Line Coding Violation (LCV) Error Event
a Line Coding Violation (LCV) is when you get either a Bipolar Violation (BPV) or an Excessive Zeroes (EXZ) error event. (Also known as CV-L; see T1.231, Section 4.6.1.1.) ๐ง
Path Coding Violation (PCV) Error Event
a Path Coding Violation error event is a frame synchronization bit error in the D4 and E1-noCRC formats, or a CRC or frame synch. bit error in the ESF and E1-CRC formats. (Also known as CV-P; see T1.231, Section 4.6.2.1.) ๐
Controlled Slip (CS) Error Event
a Controlled Slip is when the payload bits of a DS1 frame get replicated or deleted (see T1.231, Section 4.2.1.2.3). it may be performed when there's a difference between the timing of a synchronous receiving terminal and the received signal. a Controlled Slip does NOT cause an Out of Frame defect. ๐
3.4.2. Performance Defects
Out of Frame (OOF) Defect
an OOF defect is when you get a particular density of Framing Error events (see T1.231, Section 4.2.2.2.1). ๐
for DS1 links, an Out of Frame defect is declared when the receiver detects two or more framing errors within a 3-msec period for ESF signals and 0.75 msec for D4 signals, or two or more errors out of five or fewer consecutive framing bits. ๐ฅ
for E1 links, an Out of Frame defect is declared when three consecutive frame alignment signals have been received with an error (see G.706, Section 4.1 [CCITT-G.706]). ๐ฆ
for DS2 links, an Out of Frame defect is declared when seven or more consecutive errored framing patterns (four multiframe) are received. the OOF is cleared when three or more consecutive correct framing patterns are received. ๐
once an Out Of Frame Defect is declared, the framer starts searching for a correct framing pattern. the Out of Frame defect ends when the signal is in-frame. ๐ซถ
in-frame happens when there are fewer than two frame bit errors within a 3-msec period for ESF signals and 0.75 msec for D4 signals. ๐
for E1 links, in-frame happens when a) in frame N the frame alignment signal is correct, b) in frame N+1 the frame alignment signal is absent (i.e., bit 2 in TS0 is a one), and c) in frame N+2 the frame alignment signal is present and correct (see G.704, Section 4.1). โจ
Alarm Indication Signal (AIS) Defect
for D4 and ESF links, the 'all ones' condition is detected at a DS1 line interface when you observe an unframed signal with a one's density of at least 99.9% for a time equal to or greater than T, where 3 ms <= T <= 75 ms. the AIS ends when you observe a signal that doesn't meet the one's density or the unframed signal criteria for a period equal to or greater than T (see G.775, Section 5.4). ๐
for E1 links, the 'all-ones' condition is detected at the line interface as a string of 512 bits containing fewer than three zero bits (see O.162 [ITU-T-O.162], Section 3.3.2). ๐ง
for DS2 links, the DS2 AIS SHALL be sent from the NT1 to the user to indicate a loss of the 6,312-kbps frame capability on the network side. the DS2 AIS is defined as a bit array of 6,312 kbps in which all binary bits are set to '1'. ๐ญ
the DS2 AIS detection and removal SHALL be implemented according to ITU-T Draft Recommendation G.775 [ITU-T-G.775] Section 5.5:
- a DS2 AIS defect is detected when the incoming signal has two or less zeroes in a sequence of 3156 bits (0.5 ms).
- a DS2 AIS defect is cleared when the incoming signal has three or more zeroes in a sequence of 3156 bits (0.5 ms). ๐ธ
3.4.3. Performance Parameters โจ
okay so performance parameters are the stats that keep track of how the line is behaving, and they're all collected in 15-minute intervals ๐. An agent keeps up to 96 of those intervals, which is 24 hours' worth ๐ฐ๏ธ. If the agent got restarted within the last 24 hours, it won't have all 96 yet, so you'll see fewer. There's also a rolling 24-hour total for each parameter, and the collection keeps going even when the interface is down ๐ช
bestie, the agent doesn't have to line its 15-minute intervals up with any wall clock time ๐ But some agents might choose to line them up with quarter hours, which is a cute little bonus โฐ
These parameters are of types PerfCurrentCount, PerfIntervalCount, and PerfTotalCount. All three are Gauge32 textual conventions ๐ They're gauges because these objects can go down, and that happens when Unavailable Seconds straddle a 15-minute interval boundary. (More on that in the Unavailable Second part below ๐)
Line Errored Second (LES)
A Line Errored Second is a second where one or more Line Coding Violation error events were detected ๐ฅ It's also called ES-L, see T1.231, Section 4.6.1.2.
Controlled Slip Second (CSS)
A Controlled Slip Second is a one-second interval with one or more controlled slips, see T1.231, Section 4.6.2.9 โ๏ธ It does NOT get incremented during an Unavailable Second, so don't even try ๐ โโ๏ธ
Errored Second (ES)
For ESF and E1-CRC links, an Errored Second is a second with one or more Path Coding Violations OR one or more Out of Frame defects OR one or more Controlled Slip events OR a detected AIS defect ๐ฉ (See T1.231, Section 4.6.2.2 and G.826 [ITU-T-G.826], Section B.1.)
For D4 and E1-noCRC links, Bipolar Violations also trigger an Errored Second. Oof ๐ซ
Like CSS, this is not incremented during an Unavailable Second.
Bursty Errored Second (BES)
A Bursty Errored Second (also known as Errored Second type B in T1.231, Section 4.6.2.4) is a second with fewer than 320 and more than 1 Path Coding Violation error events, no Severely Errored Frame defects, and no detected incoming AIS defects ๐ธ Controlled Slips are not included in this one.
It's not incremented during an Unavailable Second either. And it only applies to ESF signals ๐ฆ
Severely Errored Second (SES)
For ESF signals, a Severely Errored Second is a second with 320 or more Path Coding Violation error events OR one or more Out of Frame defects OR a detected AIS defect (see T1.231, Section 4.6.2.5) ๐ฅ
For E1-CRC signals, it's a second with 832 or more Path Coding Violation error events OR one or more Out of Frame defects ๐
For E1-noCRC signals, it's 2048 LCVs or more ๐
For D4 signals, it's a count of one-second intervals with Framing Error events, or an OOF defect, or 1544 LCVs or more โจ Controlled Slips are not included here either, and it's not incremented during an Unavailable Second.
Severely Errored Framing Second (SEFS)
A Severely Errored Framing Second is a second with one or more Out of Frame defects OR a detected AIS defect ๐ง It's also called SAS-P (SEF/AIS second), see T1.231, Section 4.6.2.6.
Degraded Minutes
A Degraded Minute is one where the estimated error rate is more than 1E-6 but not more than 1E-3 (see G.821 [CCITT-G.821]) ๐
To work out Degraded Minutes, you collect all of the Available Seconds, remove any Severely Errored Seconds, and group what's left into 60-second groups ๐งฎ A 60-second group (a.k.a. minute) counts as degraded if the cumulative errors during the seconds in that group exceed 1E-6. Available seconds are just the ones that aren't Unavailable, as described below ๐
Unavailable Second (UAS)
Unavailable Seconds (UASs) are calculated by counting how many seconds the interface is unavailable ๐ซ The DS1 interface is said to be unavailable from the onset of 10 contiguous SESs, or from 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 SESs, then the DS1 interface unavailability starts from the onset of those SESs.
Once it's unavailable and no failure is present, the DS1 interface becomes available at the onset of 10 contiguous seconds with no SESs ๐ Once it's unavailable and a failure is present, it becomes available at the onset of 10 contiguous seconds with no SESs, but only if the failure clearing time is less than or equal to 10 seconds. If the failure clearing time is more than 10 seconds, the DS1 interface becomes available at the onset of 10 contiguous seconds with no SESs, or at the onset period leading to the successful clearing condition, whichever happens later โณ
With respect to the DS1 error counts, all counters get incremented while the DS1 interface is deemed available ๐ While it's deemed unavailable, the only count that gets incremented is UASs.
bestie, this next bit is the tricky part ๐ซฃ This definition means the agent can't know until 10 seconds have passed whether a given one-second interval was available or unavailable. So if the agent updates the stats in real time, it has to be ready to retroactively reduce the ES, BES, SES, and SEFS counts by 10 and increase the UAS count by 10 when it finds out that available time was entered. It also has to be ready to adjust the PCV count and the DM count as needed, since those parameters aren't accumulated during unavailable time. And it needs to be just as ready to retroactively decrease the UAS count by 10 and increase the ES, BES, and DM counts as needed when it enters available time ๐ตโ๐ซ
It gets even spicier when the 10-second period leading up to available or unavailable time crosses a 900-second statistics window boundary, since the ES, BES, SES, SEFS, DM, and UAS counts of the PREVIOUS interval have to be adjusted ๐ In that case, successive GETs of the affected dsx1IntervalSESs and dsx1IntervalUASs objects will return different values if the first GET happens during the first few seconds of the window.
The agent can also choose to delay updates to the various statistics by 10 seconds, which avoids retroactive adjustments to the counters ๐ง A way to do this is sketched in Appendix B.
In any case, a linkDown trap is only sent 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, which is 10 seconds earlier โช A linkUp trap is handled in a similar way ๐ซ
According to ANSI T1.231, unavailable time begins at the onset of 10 contiguous severely errored seconds, which means it starts with the first of those 10 contiguous SESs ๐ฅบ Also, while an interface is deemed unavailable, all of its counters are frozen except for the UAS count. So an implementation that strictly complies with this standard must not increment any counters other than the UAS count, not even temporarily, because of anything that happens during those 10 seconds ๐ โโ๏ธ
Changes in the signal state lag the data they apply to by 10 seconds, so an ANSI-compliant implementation has to pass the one-second statistics through a 10-second delay line before updating any counters ๐ง It can do that 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 ๐
3.4.4. Failure States โจ
okay so these are the failure states, the things that get received or detected and then reported in the dsx1LineStatus object ๐จ each one says what's going wrong on the line. when a DS1 interface would (if ever) actually produce the conditions for a failure state, that's spelled out in the right spec, so go there for the full story ๐
Far End Alarm Failure ๐ฆ This one has a bunch of nicknames depending on the flavor of line: "Yellow Alarm" in the DS1 and J1 cases, "Distant Alarm" in the E1 case, and "Remote Alarm" in the DS2 case. it's the far end basically waving a flag saying "something's up on my side" ๐ฉ
For D4 links, the Far End Alarm failure gets declared when bit 6 of all channels has been zero for at least 335 ms. it gets cleared when bit 6 of at least one channel is non-zero for a period T, where T is usually less than one second and always less than five seconds. also, for D4 links, the Far End Alarm failure is NOT declared when a Loss of Signal is detected ๐ โโ๏ธ and in J1, the 12th F-bit is set to 1.
For ESF links, the Far End Alarm failure is declared if the Yellow Alarm signal pattern shows up in at least seven out of ten contiguous 16-bit pattern intervals. it's cleared if the Yellow Alarm signal pattern doesn't show up in ten contiguous 16-bit signal pattern intervals. the pattern is FF00 for DS1 and FFFF for J1 โจ
For E1 links, the Far End Alarm failure is declared when bit 3 of time-slot zero is received set to one on two consecutive occasions. it's cleared when bit 3 of time-slot zero is received set to zero ๐ธ
For DS2 links, if a loss of frame alignment (LOF or LOS) and/or a DS2 AIS condition is detected, the RAI signal shall be generated and transmitted to the remote side. (yes, that's the original's lowercase "shall", so it's just describing what happens, not a special requirement ๐)
The Remote Alarm Indication (RAI) signal is defined on m-bits as a repetition of the 16-bit sequence made of eight binary '1s' and eight binary '0s', so m-bits(1111111100000000). when the RAI signal isn't sent (in normal operation), the HDLC flag pattern 01111110 is sent in the m-bit instead ๐ง
The RAI failure is detected when 16 or more consecutive RAI-patterns (1111111100000000) are received. it's cleared when 4 or more consecutive incorrect-RAI-patterns are received ๐
Alarm Indication Signal (AIS) Failure ๐จ the AIS failure is declared when an AIS defect is detected at the input AND the AIS defect still exists after the Loss of Frame failure has been declared. (that Loss of Frame failure is caused by the unframed nature of the 'all-ones' signal, so it's kind of a whole chain of events ๐ญ) the AIS failure gets cleared when the Loss of Frame failure is cleared. see T1.231, Section 4.3.1.2.2 for more ๐
an AIS defect at a 6312-kbit/s (G.704) interface is detected when the incoming signal has two or less zeroes in a sequence of 3156 bits (0.5ms). the AIS signal defect is cleared when the incoming signal has three {3} or more zeroes in a sequence of 3156 bits (0.5ms) ๐
Loss Of Frame (LOF) Failure ๐ for DS1 links, the Loss of Frame failure is declared when an OOF or LOS defect has persisted for T seconds, where 2 <= T <= 10. it's cleared when there have been no OOF or LOS defects during a period T where 0 <= T <= 20. many systems do "hit integration" within the period T before declaring or clearing the failure, e.g. see TR 62411 [AT&T-TR-62411] ๐ง
for E1 links, the Loss of Frame failure is declared when an OOF defect is detected ๐ท
Loss Of Signal (LOS) Failure ๐ฅ for DS1, the Loss of Signal failure is declared upon observing 175 +/- 75 contiguous pulse positions with no pulses of either positive or negative polarity. the LOS failure is cleared upon observing an average pulse density of at least 12.5% over a period of 175 +/- 75 contiguous pulse positions, starting with the receipt of a pulse โญ
for E1 links, the Loss of Signal failure is declared when greater than 10 consecutive zeroes are detected (see O.162, Section 3.4.4) ๐
a LOS defect at 6312kbit/s interfaces is detected when the incoming signal has "no transitions", i.e. when the signal level is less than or equal to a signal level of 35dB below nominal, for N consecutive pulse intervals, where 10 <= N <= 255. the LOS defect is cleared when the incoming signal has "transitions", i.e. when the signal level is greater than or equal to a signal level of 9dB below nominal, for N consecutive pulse intervals, where 10 <= N <= 255 โจ
a signal with "transitions" corresponds to a G.703-compliant signal. so that's the good kind ๐ซถ
Loopback Pseudo-Failure ๐ the Loopback Pseudo-Failure gets declared when the near-end equipment has placed a loopback (of any kind) on the DS1. this lets a management entity figure out from one object whether the DS1 can be considered in service or not, from the near-end equipment's point of view. one object to rule them all ๐
TS16 Alarm Indication Signal Failure ๐ for E1 links, the TS16 Alarm Indication Signal failure is declared when time-slot 16 is received as all ones for all frames of two consecutive multiframes (see G.732, Section 4.2.6). this condition is never declared for DS1 ๐ โโ๏ธ
Loss of MultiFrame Failure ๐ง the Loss of MultiFrame failure is declared when two consecutive multiframe alignment signals (bits 4 through 7 of TS16 of frame 0) have been received with an error. it's cleared when the first correct multiframe alignment signal is received. this one can ONLY be declared for E1 links operating with G.732 [CCITT-G.732] framing (sometimes called "Channel Associated Signalling" mode) ๐ฆ
Far End Loss of Multiframe Failure ๐ the Far End Loss of Multiframe failure is declared when bit 2 of TS16 of frame 0 is received set to one on two consecutive occasions. it's cleared when bit 2 of TS16 of frame 0 is received set to zero. same as the one above, it can only be declared for E1 links operating in "Channel Associated Signalling" mode (see G.732) ๐ธ
DS2 Payload AIS Failure ๐ the DS2 Payload AIS failure is declared when the incoming signal of the 6,312-kbps frame payload (time-slots 1 through 96) has two or less zeroes in a sequence of 3072 bits (0.5ms). the DS2 Payload AIS is cleared when the incoming signal of the 6,312-kbps frame payload has three or more zeroes in a sequence of 3072 bits (0.5 ms) ๐
DS2 Performance Threshold Failure ๐ the DS2 Performance Threshold failure keeps an eye on equipment performance and is based on the CRC (Cyclic Redundancy Check) procedure defined in G.704 ๐
the DS2 Performance Threshold failure is declared when the bit error ratio exceeds 10^-4 (Performance Threshold), and it's cleared when the bit error ratio decreases to less than 10^-6." (that trailing quote mark is in the original too, so it stays ๐
)
3.4.5. Other Terms ๐ท
Circuit Identifier ๐ท๏ธ this is a character string specified by the circuit vendor. it's super useful when you're talking to the vendor during troubleshooting (see M.1400 [ITU-T-M.1400] for additional info) ๐
Proxy ๐งโโ๏ธ in this document, "proxy" means an application that receives SNMP messages and replies to them on behalf of the devices that implement the actual DS1/E1 interfaces. the proxy may have already collected info about the DS1/J1/E1 interfaces into its local database, so it doesn't necessarily forward requests to the actual DS1/J1/E1 interface. in this kind of setup, there are periods where the proxy isn't talking to the DS1/J1/E1 interfaces at all. during those times, the proxy won't necessarily have up-to-date configuration info and will most likely have missed some statistics collection. and missed statistics collection means invalid data in the interval table ๐ญ
4. Object Definitions โจ
DS1-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, ifIndex
FROM IF-MIB -- [RFC2863]
PerfCurrentCount, PerfIntervalCount,
PerfTotalCount
FROM PerfHist-TC-MIB; -- [RFC3593]
ds1 MODULE-IDENTITY
LAST-UPDATED "200703050000Z"
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 MIB module to describe DS1, J1, E1, DS2, and
E2 interfaces objects.
Copyright (c) The IETF Trust (2007). This
version of this MIB module is part of RFC 4805;
see the RFC itself for full legal notices."
REVISION "200703050000Z"
DESCRIPTION
"The following changes were made:
(1) Values were added to dsx1LineType to
support J1 types.
(2) The object dsx1LineImpedance was added.
(3) All DM-related objects were deprecated
following their removal from ITU performance
standards.
The RFC 4805 version of this MIB module."
REVISION "200409090000Z"
DESCRIPTION
"The RFC 3895 version of this MIB module.
The key changes made to this MIB module
since its publication in RFC 2495 are as follows:
(1) The dsx1FracIfIndex SYNTAX matches the description
range.
(2) A value was added to dsx1TransmitClockSource.
(3) Values were added to dsx1LineType.
(4) Two objects were added, dsx1LineMode and
dsx1LineBuildOut, to better express transceiver
mode and LineBuildOut for T1.
(5) Reference was added to Circuit Identifier object.
(6) Align the DESCRIPTION clauses of few statistic
objects with the near-end definition, with the far-end
definition, and with RFC 3593.
(7) Changes in Compliance Statements to include new
objects.
(8) A typographical error in dsx2E2 was fixed; the new name
is dsx1E2."
okay so this bit is the revision history for the DS1 MIB module, and it's giving changelog realness ๐ (the revision entries are copied word for word below, so nothing gets lost in translation โจ)
REVISION "199808011830Z"
DESCRIPTION
"The RFC 2495 version of this MIB module.
The key changes made to this MIB module
since its publication in RFC 1406 are as follows:
(1) The Fractional table has been deprecated.
(2) This document uses SMIv2.
(3) Usage is given for ifTable and ifXTable.
(4) Example usage of ifStackTable is included.
(5) dsx1IfIndex has been deprecated.
(6) Support for DS2 and E2 has been added.
(7) Additional lineTypes for DS2, E2, and unframed E1
were added.
(8) 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.
(9) An inward loopback has been added.
(10) Additional lineStatus bits have been added for Near
End in Unavailable Signal State, Carrier Equipment
Out of Service, DS2 Payload AIS, and DS2 Performance
Threshold.
(11) A read-write line Length object has been added.
(12) Signal mode of other has been added.
(13) Added a lineStatus last change, trap and enabler.
(14) The e1(19) ifType has been obsoleted, so this MIB
does not list it as a supported ifType.
(15) Textual Conventions for statistics objects have
been used.
(16) A new object, dsx1LoopbackStatus, has been
introduced to reflect the loopbacks established
on a DS1 interface and the source to the requests.
dsx1LoopbackConfig continues to be the desired
loopback state while dsx1LoopbackStatus reflects
the actual state.
(17) A dual loopback has been added to allow the setting
of an inward loopback and a line loopback at the
same time.
(18) An object indicating which channel to use within a
parent object (i.e., DS3) has been added.
(19) An object has been added to indicate whether or
not this DS1/E1 is channelized.
(20) Line coding type of B6ZS has been added for DS2."
REVISION "199301252028Z"
DESCRIPTION
"Initial version, published as RFC 1406."
::= { transmission 18 }
Those 20 revision notes are the big glow-up list from RFC 2495 ๐ฆ Stuff like the Fractional table getting deprecated, DS2 and E2 support landing, and the new dsx1LoopbackStatus object all live in there. Next up is the actual table stuff, and it's a lot ๐
-- note that this subsumes cept(19) and g703at2mb(67)
-- there is no separate CEPT or G703AT2MB MIB
-- The DS1 Near End Group
-- The DS1 Near End Group consists of five tables:
-- DS1 Configuration
-- DS1 Current
-- DS1 Interval
-- DS1 Total
-- DS1 Channel Table
-- The DS1 Configuration Table
dsx1ConfigTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx1ConfigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS1 Configuration table."
::= { ds1 6 }
dsx1ConfigEntry OBJECT-TYPE
SYNTAX Dsx1ConfigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS1 Configuration table."
INDEX { dsx1LineIndex }
::= { dsx1ConfigTable 1 }
Dsx1ConfigEntry ::=
SEQUENCE {
dsx1LineIndex InterfaceIndex,
dsx1IfIndex InterfaceIndex,
dsx1TimeElapsed INTEGER,
dsx1ValidIntervals INTEGER,
dsx1LineType INTEGER,
dsx1LineCoding INTEGER,
dsx1SendCode INTEGER,
dsx1CircuitIdentifier DisplayString,
dsx1LoopbackConfig INTEGER,
dsx1LineStatus INTEGER,
dsx1SignalMode INTEGER,
dsx1TransmitClockSource INTEGER,
dsx1Fdl INTEGER,
dsx1InvalidIntervals INTEGER,
dsx1LineLength INTEGER,
dsx1LineStatusLastChange TimeStamp,
dsx1LineStatusChangeTrapEnable INTEGER,
dsx1LoopbackStatus INTEGER,
dsx1Ds1ChannelNumber INTEGER,
dsx1Channelization INTEGER,
dsx1LineMode INTEGER,
dsx1LineBuildOut INTEGER,
dsx1LineImpedance INTEGER
}
dsx1LineIndex 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 the ifStackTable and ds0/ds0bundle MIBs.
Previously, this object was the identifier of a DS1
interface on a managed device. If there is an
ifEntry that is directly associated with this and
only this DS1 interface, it should have the same
value as ifIndex. Otherwise, number the
dsx1LineIndices with a 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."
::= { dsx1ConfigEntry 1 }
dsx1IfIndex 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 (RFC 2863)."
::= { dsx1ConfigEntry 2 }
dsx1TimeElapsed 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."
::= { dsx1ConfigEntry 3 }
dsx1ValidIntervals 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."
::= { dsx1ConfigEntry 4 }
dsx1LineType OBJECT-TYPE
SYNTAX INTEGER {
other(1),
dsx1ESF(2),
dsx1D4(3),
dsx1E1(4),
dsx1E1CRC(5),
dsx1E1MF(6),
dsx1E1CRCMF(7),
dsx1Unframed(8),
dsx1E1Unframed(9),
dsx1DS2M12(10),
dsx1E2(11),
dsx1E1Q50(12),
dsx1E1Q50CRC(13),
dsx1J1ESF(14),
dsx1J1Unframed(16)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable indicates the variety of DS1
Line implementing this circuit. The type of
circuit affects the number of bits per second
that the circuit can reasonably carry, as well
as the interpretation of the usage and error
statistics. The values, in sequence, describe:
TITLE: SPECIFICATION:
dsx1ESF Extended SuperFrame DS1
(T1.107)
dsx1D4 AT&T D4 format DS1 (T1.107)
dsx1E1 ITU-T G.704, (Table 5A)
dsx1E1-CRC ITU-T G.704, (Table 5B)
dsxE1-MF G.704 (Table 5A) with TS16
multiframing enabled
dsx1E1-CRC-MF G.704 (Table 5B) with TS16
multiframing enabled
dsx1Unframed DS1 with No Framing
dsx1E1Unframed E1 with No Framing (G.703)
dsx1DS2M12 DS2 frame format (T1.107)
dsx1E2 E2 frame format (G.704)
dsx1E1Q50 TS16 bits 5,7,8 set to 101,
[in all other cases it is set
to 111.] (G.704, table 14)
dsx1E1Q50CRC E1Q50 with CRC
dsx1J1ESF J1 according to (JT-G704,
JT-G706, and JT-I431)
dsx1J1Unframed J1 with No Framing
For clarification, the capacity for each E1 type
is as listed below:
dsx1E1Unframed - E1, no framing = 32 x 64k = 2048k
dsx1E1 or dsx1E1CRC - E1, with framing,
no signalling = 31 x 64k = 1984k
dsx1E1MF or dsx1E1CRCMF - E1, with framing,
signalling = 30 x 64k = 1920k"
REFERENCE
"American National Standard for
telecommunications -
digital hierarchy - formats specification,
ANSI T1.107- 1988.
ITU-T G.703: Physical/Electrical Characteristics
of Hierarchical Digital Interfaces, November
2001.
ITU-T G.704: Synchronous frame structures used at
1544, 6312, 2048, 8488 and 44 736 kbit/s
Hierarchical Levels, July 1995.
JT-G704: Synchronous frame structures used at
Primary and Secondary Hierarchical Levels,2002.
JT-G706. Frame Alignment and Cyclic Redundancy
Check (CRC) Procedures.
JT-I431. ISDN Primary Rate User-Network Interface,
Layer 1 Specifications, 2002 "
::= { dsx1ConfigEntry 5 }
dsx1LineCoding OBJECT-TYPE
SYNTAX INTEGER {
dsx1JBZS(1),
dsx1B8ZS(2),
dsx1HDB3(3),
dsx1ZBTSI(4),
dsx1AMI(5),
other(6),
dsx1B6ZS(7)
}
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.
dsx1JBZS refers the Jammed Bit Zero Suppression,
in which the AT&T specification of at least one
pulse every 8-bit period is literally implemented
by forcing a pulse in bit 8 of each channel.
Thus, only 7 bits per channel, or 1.344 Mbps,
are available for data.
dsx1B8ZS refers to the use of a specified pattern
of normal bits and bipolar violations that are
used to replace a sequence of 8 zero bits.
ANSI Clear Channels may use dsx1ZBTSI, or Zero
Byte Time Slot Interchange.
E1 links, with or without CRC, use dsx1HDB3 or
dsx1AMI.
dsx1AMI refers to a mode wherein no Zero Code
Suppression is present and the line encoding does
not solve the problem directly. In this
application, the higher layer must provide data
that meets or exceeds the pulse density
requirements, such as inverting HDLC data.
dsx1B6ZS refers to the user of a specified pattern
of normal bits and bipolar violations that are
used to replace a sequence of 6 zero bits. Used
for DS2.
For more information about line coding see
[ANSI-T1.102]"
::= { dsx1ConfigEntry 6 }
Okay so that wraps up the line coding options ๐ โจ dsx1B8ZS, dsx1AMI, dsx1B6ZS and friends all just explain how the bits get dressed up on the wire so the signal doesn't go flat during long runs of zeros ๐ธ. Next up is dsx1SendCode, which is basically the device saying what kind of code it's currently sending ๐ฆ
dsx1SendCode OBJECT-TYPE
SYNTAX INTEGER {
dsx1SendNoCode(1),
dsx1SendLineCode(2),
dsx1SendPayloadCode(3),
dsx1SendResetCode(4),
dsx1SendQRS(5),
dsx1Send511Pattern(6),
dsx1Send3in24Pattern(7),
dsx1SendOtherTestPattern(8)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable indicates what type of code is
being sent across the DS1 interface by the device.
Setting this variable causes the interface to send
the code requested. The values mean the following:
dsx1SendNoCode
sending looped or normal data
dsx1SendLineCode
sending a request for a line loopback
dsx1SendPayloadCode
sending a request for a payload loopback
dsx1SendResetCode
sending a loopback termination request
dsx1SendQRS
sending a Quasi-Random Signal (QRS) test
pattern
dsx1Send511Pattern
sending a 511-bit fixed test pattern
dsx1Send3in24Pattern
sending a fixed test pattern of 3 bits set
in 24
dsx1SendOtherTestPattern
sending a test pattern other than those
described by this object"
::= { dsx1ConfigEntry 7 }
Ngl the list of test patterns is giving main character energy ๐ You can request a line loopback, a payload loopback, a loopback termination, a QRS pattern, a 511-bit pattern, or a 3-in-24 pattern, and there's a catch-all for anything else ๐
Next is dsx1CircuitIdentifier, which is the transmission vendor's circuit ID so you can troubleshoot without losing your mind ๐ง
dsx1CircuitIdentifier 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"
::= { dsx1ConfigEntry 8 }
Now dsx1LoopbackConfig, which is the loopback you want configured on the DS1 interface ๐ Notice that if the interface can't do a requested loopback, the agent is supposed to hand back inconsistentValue, so no fake loopbacks allowed ๐
dsx1LoopbackConfig OBJECT-TYPE
SYNTAX INTEGER {
dsx1NoLoop(1),
dsx1PayloadLoop(2),
dsx1LineLoop(3),
dsx1OtherLoop(4),
dsx1InwardLoop(5),
dsx1DualLoop(6)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable represents the desired loopback
configuration of the DS1 interface. Agents
supporting read/write access should return
inconsistentValue in response to a requested
loopback state that the interface does not
support. The values mean:
dsx1NoLoop
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.
dsx1PayloadLoop
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.
dsx1LineLoop
the received signal at this interface does not go
through the device (minimum penetration) but is
looped back out.
dsx1OtherLoop
loopbacks that are not defined here.
dsx1InwardLoop
the transmitted signal at this interface is
looped back and received by the same interface.
What is transmitted onto the line is product
dependent.
dsx1DualLoop
both dsx1LineLoop and dsx1InwardLoop will be
active simultaneously."
::= { dsx1ConfigEntry 9 }
The loopback options are honestly a whole vibe ๐ฅ Payload loop bounces the signal back after framing, line loop bounces it back out without really going through the device, inward loop sends your own transmit signal back into your own receiver, and dual loop does line and inward at the same time ๐
Next is dsx1LineStatus, the big bitmap of alarms, failures and loopback state all stacked up together like a sundae ๐ It's a sum of bit values, so one interface can show several things at once.
dsx1LineStatus OBJECT-TYPE
SYNTAX INTEGER (1..131071)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the line status of the
interface. It contains loopback, failure,
received alarm and transmitted alarms
information.
The dsx1LineStatus is a bitmap represented as a
sum; therefore, it can represent multiple failures
(alarms) and a LoopbackState simultaneously.
dsx1NoAlarm must be set if and only if no other
flag is set.
If the dsx1loopbackState bit is set, the loopback
in effect can be determined from the
dsx1loopbackConfig object. The various bit
positions are as follows:
1 dsx1NoAlarm No alarm present
2 dsx1RcvFarEndLOF Far end LOF (a.k.a.
Yellow Alarm)
4 dsx1XmtFarEndLOF Near end sending LOF
indication
8 dsx1RcvAIS Far end sending AIS
16 dsx1XmtAIS Near end sending AIS
32 dsx1LossOfFrame Near end LOF (a.k.a.
Red Alarm)
64 dsx1LossOfSignal Near end Loss of Signal
128 dsx1LoopbackState Near end is looped
256 dsx1T16AIS E1 TS16 AIS
512 dsx1RcvFarEndLOMF Far end sending TS16 LOMF
1024 dsx1XmtFarEndLOMF Near end sending TS16 LOMF
2048 dsx1RcvTestCode Near end detects a test code
4096 dsx1OtherFailure Any line status not defined
here
8192 dsx1UnavailSigState Near end in unavailable
signal state
16384 dsx1NetEquipOOS Carrier equipment out of
service
32768 dsx1RcvPayloadAIS DS2 payload AIS
65536 dsx1Ds2PerfThreshold DS2 performance threshold
exceeded"
::= { dsx1ConfigEntry 10 }
Okay the bit table is where it gets spicy ๐ถ๏ธ Bit 1 is dsx1NoAlarm, which is only set when nothing else is set, so it's the ultimate "all good" flag ๐ซถ Yellow alarm, red alarm, AIS, loss of signal, TS16 stuff, and the DS2 performance threshold are all in there, each with its own bit value โจ
Next is dsx1SignalMode, which tells you what's being reserved for signalling on the channel ๐ฆ
dsx1SignalMode OBJECT-TYPE
SYNTAX INTEGER {
none(1),
robbedBit(2),
bitOriented(3),
messageOriented(4),
other(5)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"'none' indicates that no bits are reserved for
signaling on this channel.
'robbedBit' indicates that DS1 Robbed Bit Signaling
is in use.
'bitOriented' indicates that E1 Channel Associated
Signaling is in use.
'messageOriented' indicates that Common Channel
Signaling is in use on either channel 16 of
an E1 link or channel 24 of a DS1."
::= { dsx1ConfigEntry 11 }
Now dsx1TransmitClockSource, which is basically "where does the transmit clock come from?" ๐ฐ๏ธ Loop timing, local timing, through timing, or adaptive, and each one has its own answer ๐
dsx1TransmitClockSource OBJECT-TYPE
SYNTAX INTEGER {
loopTiming(1),
localTiming(2),
throughTiming(3),
adaptive (4)
}
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 when an external clock is
attached to the box containing the interface.
'throughTiming' indicates that recovered
receive clock from another interface is used as
the transmit clock.
'adaptive' indicates that the clock is recovered
based on the data flow and not based on the
physical layer"
::= { dsx1ConfigEntry 12 }
Next is dsx1Fdl, the facilities data link bitmap ๐ It's a sum too, so you set whichever capabilities apply. Other, ANSI T1.403, AT&T 54016 ESF FDL exchanges, or none at all ๐ธ
dsx1Fdl OBJECT-TYPE
SYNTAX INTEGER (1..15)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This bitmap describes the use of the
facilities data link and is the sum of the
capabilities. Set any bits that are appropriate:
other(1),
dsx1AnsiT1403(2),
dsx1Att54016(4),
dsx1FdlNone(8)
'other' indicates that a protocol other than
one of the following is used.
'dsx1AnsiT1403' refers to the FDL exchange
recommended by ANSI.
'dsx1Att54016' refers to ESF FDL exchanges.
'dsx1FdlNone' indicates that the device does
not use the FDL."
::= { dsx1ConfigEntry 13 }
Next is dsx1InvalidIntervals, which counts the intervals (out of the valid ones) where there's no data at all ๐ง It's usually zero, but proxy situations can make it not zero ๐
dsx1InvalidIntervals OBJECT-TYPE
SYNTAX INTEGER (0..96)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of intervals in the range from 0 to
dsx1ValidIntervals for which no data is available.
This object will typically be zero except in cases
where the data for some intervals is not
available (e.g., in proxy situations)."
::= { dsx1ConfigEntry 14 }
Now dsx1LineLength, which is the DS1 line length in meters ๐ It's only useful if the interface has configurable line build-out circuitry, so don't expect it to do magic on hardware that can't adjust ๐
dsx1LineLength OBJECT-TYPE
SYNTAX INTEGER (0..64000)
UNITS "meters"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The length of the DS1 line in meters. This
object provides information for line build-out
circuitry. This object is only useful if the
interface has configurable line build-out
circuitry."
::= { dsx1ConfigEntry 15 }
Next is dsx1LineStatusLastChange, a timestamp of when the DS1 entered its current line status, measured against sysUpTime โฐ If the state was entered before the proxy agent last re-initialised, it reads zero, which is a very real "we don't know" moment ๐ฅบ
dsx1LineStatusLastChange OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of MIB II's sysUpTime object at the
time this DS1 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."
::= { dsx1ConfigEntry 16 }
Next is dsx1LineStatusChangeTrapEnable, the switch that decides whether dsx1LineStatusChange traps get generated for this interface ๐ It defaults to disabled, so you have to opt in ๐
dsx1LineStatusChangeTrapEnable OBJECT-TYPE
SYNTAX INTEGER {
enabled(1),
disabled(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether dsx1LineStatusChange traps
should be generated for this interface."
DEFVAL { disabled }
::= { dsx1ConfigEntry 17 }
And we're mid-object for dsx1LoopbackStatus ๐ It's a read-only bitmap showing the current loopback state on the DS1 interface, covering loopbacks set up by a manager and loopbacks requested remotely from the far end, and it can show several loopbacks at once ๐ฆ
dsx1LoopbackStatus OBJECT-TYPE
SYNTAX INTEGER (1..127)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable represents the current state of the
loopback on the DS1 interface. It contains
information about loopbacks established by a
manager and remotely from the far end.
The dsx1LoopbackStatus is a bitmap represented as
a sum; therefore, it can represent multiple
loopbacks simultaneously.
okay so the loopback bits are giving bit-flag energy ๐ each value is its own power, and you add them together to combine modes ๐
The various bit positions are as follows:
1 dsx1NoLoopback
2 dsx1NearEndPayloadLoopback
4 dsx1NearEndLineLoopback
8 dsx1NearEndOtherLoopback
16 dsx1NearEndInwardLoopback
32 dsx1FarEndPayloadLoopback
64 dsx1FarEndLineLoopback"
::= { dsx1ConfigEntry 18 }
next up is dsx1Ds1ChannelNumber ๐ฆ it's an INTEGER from 0 to 28, and it tells you which channel this DS1/E1 sits in on its parent DS2/E2 or DS3/E3. the sneaky part is that 0 means it has no parent DS3/E3 at all, so it's a standalone line ๐
dsx1Ds1ChannelNumber OBJECT-TYPE
SYNTAX INTEGER (0..28)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable represents the channel number of
the DS1/E1 on its parent DS2/E2 or DS3/E3. A
value of 0 indicates that this DS1/E1 does not
have a parent DS3/E3."
::= { dsx1ConfigEntry 19 }
dsx1Channelization is the switch for channelization ๐ฅ it's read-write, and it has three values: disabled(1), enabledDs0(2), and enabledDs1(3). turning on enabledDs0 means the DS1 gets split into DS0s, and turning on enabledDs1 means the DS2 gets split into DS1s. setting one of those creates the matching ifTable entries, and going back to disabled(1) deletes them again. it's like building and tearing down a whole little apartment complex ๐๏ธ
dsx1Channelization OBJECT-TYPE
SYNTAX INTEGER {
disabled(1),
enabledDs0(2),
enabledDs1(3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether this DS1/E1 or DS2 is
channelized or unchannelized.
The value of enabledDs0(2) indicates that this is a
DS1 channelized into DS0s. Setting this value will
cause the creation, and resetting it to disabled(1)
will cause the deletion of entries in the ifTable
for the DS0s that are within the DS1.
The value of enabledDs1(3) indicates that this is a
DS2 channelized into DS1s. Setting this value will
cause the creation, and resetting it to disabled(1)
will cause the deletion of entries in the ifTable
for the DS1s that are within the DS2."
::= { dsx1ConfigEntry 20 }
dsx1LineMode is all about the framer's vibe ๐ธ csu(1) puts the T1 framer into long-haul mode, and dsu(2) puts it into short-haul mode. literally just two options, very clean โจ
dsx1LineMode OBJECT-TYPE
SYNTAX INTEGER {
csu(1),
dsu(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This setting puts the T1 framer into either
long-haul (CSU) mode or short-haul (DSU) mode."
::= { dsx1ConfigEntry 21 }
dsx1LineBuildOut is the attenuation setting for the T1 framer when it's in long-haul (CSU) mode ๐ง the options are notApplicable(1), neg75dB(2), neg15dB(3), neg225dB(4), and zerodB(5). the description lists the values as -7.5dB, -15dB, -22.5dB, and 0dB ๐
dsx1LineBuildOut OBJECT-TYPE
SYNTAX INTEGER {
notApplicable(1),
neg75dB(2),
neg15dB(3),
neg225dB(4),
zerodB(5)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Attenuation setting for T1 framer in long haul
(CSU) mode. The optional values are -7.5dB,
-15dB, -22.5dB, and 0dB."
::= { dsx1ConfigEntry 22 }
dsx1LineImpedance is the nominal line impedance, and the impedance depends on the line type ๐ T1 and J1 usually go with balanced100ohms(3), while E1 usually goes with unbalanced75ohms(2) or balanced120ohms(4). if it doesn't apply, or you don't know the right value, the description says it should be set to notApplicable(1) ๐ซถ
dsx1LineImpedance OBJECT-TYPE
SYNTAX INTEGER {
notApplicable(1),
unbalanced75ohms(2),
balanced100ohms(3),
balanced120ohms(4)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Nominal line impedance. For T1 and J1 lines, the
value is typically balanced100ohms(3). For E1
lines, the value is typically unbalanced75ohms(2)
and balanced120ohms(4). When this object does not
apply, or when the appropriate value is not known,
the value should be set to notApplicable(1)."
::= { dsx1ConfigEntry 23 }
now we're in the DS1 Current table ๐ฐ๏ธ this is the scoreboard for the 15-minute interval that's happening right now. it's not-accessible on its own, and every row is one entry, keyed by dsx1CurrentIndex
-- The DS1 Current Table
dsx1CurrentTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx1CurrentEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS1 Current table contains various statistics
being collected for the current 15-minute
interval."
::= { ds1 7 }
dsx1CurrentEntry OBJECT-TYPE
SYNTAX Dsx1CurrentEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS1 Current table."
INDEX { dsx1CurrentIndex }
::= { dsx1CurrentTable 1 }
Dsx1CurrentEntry ::=
SEQUENCE {
dsx1CurrentIndex InterfaceIndex,
dsx1CurrentESs PerfCurrentCount,
dsx1CurrentSESs PerfCurrentCount,
dsx1CurrentSEFSs PerfCurrentCount,
dsx1CurrentUASs PerfCurrentCount,
dsx1CurrentCSSs PerfCurrentCount,
dsx1CurrentPCVs PerfCurrentCount,
dsx1CurrentLESs PerfCurrentCount,
dsx1CurrentBESs PerfCurrentCount,
dsx1CurrentDMs PerfCurrentCount,
dsx1CurrentLCVs PerfCurrentCount
}
dsx1CurrentIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value that uniquely identifies the DS1
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 as a dsx1LineIndex object instance."
::= { dsx1CurrentEntry 1 }
the current-interval counters are all read-only, and each one is a PerfCurrentCount ๐ they're the classic error stats, so let's go through them one at a time ๐
dsx1CurrentESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Errored Seconds."
::= { dsx1CurrentEntry 2 }
dsx1CurrentSESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Severely Errored Seconds."
::= { dsx1CurrentEntry 3 }
dsx1CurrentSEFSs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Severely Errored Framing Seconds."
::= { dsx1CurrentEntry 4 }
dsx1CurrentUASs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Unavailable Seconds."
::= { dsx1CurrentEntry 5 }
dsx1CurrentCSSs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Controlled Slip Seconds."
::= { dsx1CurrentEntry 6 }
dsx1CurrentPCVs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Path Coding Violations."
::= { dsx1CurrentEntry 7 }
dsx1CurrentLESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Line Errored Seconds."
::= { dsx1CurrentEntry 8 }
dsx1CurrentBESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Bursty Errored Seconds."
::= { dsx1CurrentEntry 9 }
dsx1CurrentDMs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"The number of Degraded Minutes."
::= { dsx1CurrentEntry 10 }
dsx1CurrentLCVs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Line Coding Violations (LCVs)."
::= { dsx1CurrentEntry 11 }
heads up, dsx1CurrentDMs is marked deprecated โ ๏ธ so it's still in the table, but it's on its way out. not me noticing that ๐
the current table is the live feed, and the interval table is the history book ๐ it covers the last 24 hours, split into 96 completed 15-minute intervals
-- The DS1 Interval Table
dsx1IntervalTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx1IntervalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS1 Interval table contains various
statistics collected by each DS1 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 dsx1IntervalNumber)
for one specific instance (identified by
dsx1IntervalIndex)."
::= { ds1 8 }
dsx1IntervalEntry OBJECT-TYPE
SYNTAX Dsx1IntervalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS1 Interval table."
INDEX { dsx1IntervalIndex, dsx1IntervalNumber }
::= { dsx1IntervalTable 1 }
Dsx1IntervalEntry ::=
SEQUENCE {
dsx1IntervalIndex InterfaceIndex,
dsx1IntervalNumber INTEGER,
dsx1IntervalESs PerfIntervalCount,
dsx1IntervalSESs PerfIntervalCount,
dsx1IntervalSEFSs PerfIntervalCount,
dsx1IntervalUASs PerfIntervalCount,
dsx1IntervalCSSs PerfIntervalCount,
dsx1IntervalPCVs PerfIntervalCount,
dsx1IntervalLESs PerfIntervalCount,
dsx1IntervalBESs PerfIntervalCount,
dsx1IntervalDMs PerfIntervalCount,
dsx1IntervalLCVs PerfIntervalCount,
dsx1IntervalValidData TruthValue
}
dsx1IntervalIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value that uniquely identifies the DS1
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 as a dsx1LineIndex object instance."
::= { dsx1IntervalEntry 1 }
dsx1IntervalNumber 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-minute interval completed 23 hours and 45
minutes prior to interval 1."
::= { dsx1IntervalEntry 2 }
dsx1IntervalESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Errored Seconds."
::= { dsx1IntervalEntry 3 }
dsx1IntervalSESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Severely Errored Seconds."
::= { dsx1IntervalEntry 4 }
dsx1IntervalSEFSs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Severely Errored Framing Seconds."
::= { dsx1IntervalEntry 5 }
dsx1IntervalUASs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Unavailable Seconds. This object
may decrease if the occurrence of unavailable
seconds occurs across an interval boundary."
::= { dsx1IntervalEntry 6 }
dsx1IntervalCSSs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Controlled Slip Seconds."
::= { dsx1IntervalEntry 7 }
Okay so we're picking up right where the object definitions get juicy ๐ง The interval counters come first, then the DS1 Total table, which is basically a 24-hour recap ๐
dsx1IntervalPCVs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Path Coding Violations."
::= { dsx1IntervalEntry 8 }
dsx1IntervalLESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Line Errored Seconds."
::= { dsx1IntervalEntry 9 }
dsx1IntervalBESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Bursty Errored Seconds."
::= { dsx1IntervalEntry 10 }
dsx1IntervalDMs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"The number of Degraded Minutes."
::= { dsx1IntervalEntry 11 }
dsx1IntervalLCVs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Line Coding Violations."
::= { dsx1IntervalEntry 12 }
dsx1IntervalValidData OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates whether the data for this
interval is valid."
::= { dsx1IntervalEntry 13 }
-- The DS1 Total Table
dsx1TotalTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx1TotalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS1 Total table contains the cumulative sum
of the various statistics for the 24-hour period
preceding the current interval."
::= { ds1 9 }
dsx1TotalEntry OBJECT-TYPE
SYNTAX Dsx1TotalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS1 Total table."
INDEX { dsx1TotalIndex }
::= { dsx1TotalTable 1 }
Dsx1TotalEntry ::=
SEQUENCE {
dsx1TotalIndex InterfaceIndex,
dsx1TotalESs PerfTotalCount,
dsx1TotalSESs PerfTotalCount,
dsx1TotalSEFSs PerfTotalCount,
dsx1TotalUASs PerfTotalCount,
dsx1TotalCSSs PerfTotalCount,
dsx1TotalPCVs PerfTotalCount,
dsx1TotalLESs PerfTotalCount,
dsx1TotalBESs PerfTotalCount,
dsx1TotalDMs PerfTotalCount,
dsx1TotalLCVs PerfTotalCount
}
dsx1TotalIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value that uniquely identifies the DS1
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 as a dsx1LineIndex object instance."
::= { dsx1TotalEntry 1 }
dsx1TotalESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Errored Seconds encountered by a DS1
interface in the previous 24-hour interval.
Invalid 15-minute intervals count as 0."
::= { dsx1TotalEntry 2 }
dsx1TotalSESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Severely Errored Seconds
encountered by a DS1 interface in the previous
24-hour interval. Invalid 15-minute intervals
count as 0."
::= { dsx1TotalEntry 3 }
dsx1TotalSEFSs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Severely Errored Framing Seconds
encountered by a DS1 interface in the previous
24-hour interval. Invalid 15-minute intervals
count as 0."
::= { dsx1TotalEntry 4 }
dsx1TotalUASs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Unavailable Seconds encountered by
a DS1 interface in the previous 24-hour interval.
Invalid 15-minute intervals count as 0."
::= { dsx1TotalEntry 5 }
dsx1TotalCSSs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Controlled Slip Seconds encountered
by a DS1 interface in the previous 24-hour
interval. Invalid 15-minute intervals count as
0."
::= { dsx1TotalEntry 6 }
dsx1TotalPCVs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Path Coding Violations encountered
by a DS1 interface in the previous 24-hour
interval. Invalid 15-minute intervals count as
0."
::= { dsx1TotalEntry 7 }
dsx1TotalLESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Line Errored Seconds encountered by
a DS1 interface in the previous 24-hour interval.
Invalid 15-minute intervals count as 0."
::= { dsx1TotalEntry 8 }
dsx1TotalBESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Bursty Errored Seconds (BESs)
encountered by a DS1 interface in the previous
24-hour interval. Invalid 15-minute intervals count
as 0."
::= { dsx1TotalEntry 9 }
dsx1TotalDMs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"The number of Degraded Minutes (DMs) encountered
by a DS1 interface in the previous 24-hour
interval. Invalid 15-minute intervals count as
0."
::= { dsx1TotalEntry 10 }
dsx1TotalLCVs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Line Coding Violations (LCVs)
encountered by a DS1 interface in the current
15-minute interval. Invalid 15-minute intervals
count as 0."
::= { dsx1TotalEntry 11 }
-- The DS1 Channel Table
dsx1ChanMappingTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx1ChanMappingEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS1 Channel Mapping table. This table maps a
DS1 channel number on a particular DS3 into an
ifIndex. In the presence of DS2s, this table can
be used to map a DS2 channel number on a DS3 into
an ifIndex, or used to map a DS1 channel number on
a DS2 into an ifIndex."
::= { ds1 16 }
dsx1ChanMappingEntry OBJECT-TYPE
SYNTAX Dsx1ChanMappingEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS1 Channel Mapping table. There
is an entry in this table corresponding to each
DS1 ifEntry within any interface that is
channelized to the individual DS1 ifEntry level.
This table is intended to facilitate mapping from
channelized interface / channel number to DS1
ifEntry (e.g., mapping (DS3 ifIndex, DS1 channel
number) -> ifIndex).
While this table provides information that can
also be found in the ifStackTable and
dsx1ConfigTable, it provides this same information
with a single table lookup, rather than by walking
the ifStackTable to find the various constituent
DS1 ifTable entries, and testing various
dsx1ConfigTable entries to check for the entry
with the applicable DS1 channel number."
INDEX { ifIndex, dsx1Ds1ChannelNumber }
::= { dsx1ChanMappingTable 1 }
Dsx1ChanMappingEntry ::=
SEQUENCE {
dsx1ChanMappedIfIndex InterfaceIndex
}
dsx1ChanMappedIfIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates the ifIndex value assigned
by the agent for the individual DS1 ifEntry that
corresponds to the given DS1 channel number
(specified by the INDEX element
dsx1Ds1ChannelNumber) of the given channelized
interface (specified by INDEX element ifIndex)."
::= { dsx1ChanMappingEntry 1 }
-- The DS1 Far End Current Table
dsx1FarEndCurrentTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx1FarEndCurrentEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS1 Far End Current table contains various
statistics being collected for the current
15-minute interval. The statistics are collected
from the far-end messages on the Facilities Data
Link. The definitions are the same as described
for the near-end information."
::= { ds1 10 }
dsx1FarEndCurrentEntry OBJECT-TYPE
SYNTAX Dsx1FarEndCurrentEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS1 Far End Current table."
INDEX { dsx1FarEndCurrentIndex }
::= { dsx1FarEndCurrentTable 1 }
Dsx1FarEndCurrentEntry ::=
SEQUENCE {
dsx1FarEndCurrentIndex InterfaceIndex,
dsx1FarEndTimeElapsed INTEGER,
dsx1FarEndValidIntervals INTEGER,
dsx1FarEndCurrentESs PerfCurrentCount,
dsx1FarEndCurrentSESs PerfCurrentCount,
dsx1FarEndCurrentSEFSs PerfCurrentCount,
dsx1FarEndCurrentUASs PerfCurrentCount,
dsx1FarEndCurrentCSSs PerfCurrentCount,
dsx1FarEndCurrentLESs PerfCurrentCount,
dsx1FarEndCurrentPCVs PerfCurrentCount,
dsx1FarEndCurrentBESs PerfCurrentCount,
dsx1FarEndCurrentDMs PerfCurrentCount,
dsx1FarEndInvalidIntervals INTEGER
}
dsx1FarEndCurrentIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value that uniquely identifies the DS1
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 dsx1LineIndex."
::= { dsx1FarEndCurrentEntry 1 }
That's the end of this bit, bestie ๐ The Far End Current table is up next and it's giving DATA ๐กโจ
okay bestie, the far-end counters are up next ๐ฆโจ
dsx1FarEndTimeElapsed 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."
::= { dsx1FarEndCurrentEntry 2 }
dsx1FarEndValidIntervals 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."
::= { dsx1FarEndCurrentEntry 3 }
dsx1FarEndCurrentESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Errored Seconds."
::= { dsx1FarEndCurrentEntry 4 }
dsx1FarEndCurrentSESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Severely Errored Seconds."
::= { dsx1FarEndCurrentEntry 5 }
dsx1FarEndCurrentSEFSs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Severely Errored Framing
Seconds."
::= { dsx1FarEndCurrentEntry 6 }
dsx1FarEndCurrentUASs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Unavailable Seconds."
::= { dsx1FarEndCurrentEntry 7 }
dsx1FarEndCurrentCSSs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Controlled Slip Seconds."
::= { dsx1FarEndCurrentEntry 8 }
dsx1FarEndCurrentLESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Line Errored Seconds."
::= { dsx1FarEndCurrentEntry 9 }
dsx1FarEndCurrentPCVs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Path Coding Violations."
::= { dsx1FarEndCurrentEntry 10 }
dsx1FarEndCurrentBESs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Bursty Errored Seconds."
::= { dsx1FarEndCurrentEntry 11 }
dsx1FarEndCurrentDMs OBJECT-TYPE
SYNTAX PerfCurrentCount
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"The number of Far End Degraded Minutes."
::= { dsx1FarEndCurrentEntry 12 }
dsx1FarEndInvalidIntervals OBJECT-TYPE
SYNTAX INTEGER (0..96)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of intervals in the range from 0 to
dsx1FarEndValidIntervals for which no data is
available. This object will typically be zero
except in cases where the data for some intervals
is not available (e.g., in proxy situations)."
::= { dsx1FarEndCurrentEntry 13 }
-- The DS1 Far End Interval Table
dsx1FarEndIntervalTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx1FarEndIntervalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS1 Far End Interval table contains various
statistics collected by each DS1 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
dsx1FarEndIntervalNumber) for one specific
instance (identified by dsx1FarEndIntervalIndex)."
::= { ds1 11 }
dsx1FarEndIntervalEntry OBJECT-TYPE
SYNTAX Dsx1FarEndIntervalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS1 Far End Interval table."
INDEX { dsx1FarEndIntervalIndex,
dsx1FarEndIntervalNumber }
::= { dsx1FarEndIntervalTable 1 }
Dsx1FarEndIntervalEntry ::=
SEQUENCE {
dsx1FarEndIntervalIndex InterfaceIndex,
dsx1FarEndIntervalNumber INTEGER,
dsx1FarEndIntervalESs PerfIntervalCount,
dsx1FarEndIntervalSESs PerfIntervalCount,
dsx1FarEndIntervalSEFSs PerfIntervalCount,
dsx1FarEndIntervalUASs PerfIntervalCount,
dsx1FarEndIntervalCSSs PerfIntervalCount,
dsx1FarEndIntervalLESs PerfIntervalCount,
dsx1FarEndIntervalPCVs PerfIntervalCount,
dsx1FarEndIntervalBESs PerfIntervalCount,
dsx1FarEndIntervalDMs PerfIntervalCount,
dsx1FarEndIntervalValidData TruthValue
}
dsx1FarEndIntervalIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value that uniquely identifies the DS1
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 dsx1LineIndex."
::= { dsx1FarEndIntervalEntry 1 }
dsx1FarEndIntervalNumber 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."
::= { dsx1FarEndIntervalEntry 2 }
dsx1FarEndIntervalESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Errored Seconds."
::= { dsx1FarEndIntervalEntry 3 }
dsx1FarEndIntervalSESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Severely Errored Seconds."
::= { dsx1FarEndIntervalEntry 4 }
dsx1FarEndIntervalSEFSs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Severely Errored Framing
Seconds."
::= { dsx1FarEndIntervalEntry 5 }
dsx1FarEndIntervalUASs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Unavailable Seconds."
::= { dsx1FarEndIntervalEntry 6 }
dsx1FarEndIntervalCSSs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Controlled Slip Seconds."
::= { dsx1FarEndIntervalEntry 7 }
dsx1FarEndIntervalLESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Line Errored Seconds."
::= { dsx1FarEndIntervalEntry 8 }
dsx1FarEndIntervalPCVs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Path Coding Violations."
::= { dsx1FarEndIntervalEntry 9 }
dsx1FarEndIntervalBESs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Bursty Errored Seconds."
::= { dsx1FarEndIntervalEntry 10 }
dsx1FarEndIntervalDMs OBJECT-TYPE
SYNTAX PerfIntervalCount
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"The number of Far End Degraded Minutes."
::= { dsx1FarEndIntervalEntry 11 }
dsx1FarEndIntervalValidData OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
" This variable indicates if the data for this
interval is valid."
::= { dsx1FarEndIntervalEntry 12 }
-- The DS1 Far End Total Table
dsx1FarEndTotalTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx1FarEndTotalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The DS1 Far End Total table contains the
cumulative sum of the various statistics for the
24-hour period preceding the current interval."
::= { ds1 12 }
dsx1FarEndTotalEntry OBJECT-TYPE
SYNTAX Dsx1FarEndTotalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the DS1 Far End Total table."
INDEX { dsx1FarEndTotalIndex }
::= { dsx1FarEndTotalTable 1 }
Dsx1FarEndTotalEntry ::=
SEQUENCE {
dsx1FarEndTotalIndex InterfaceIndex,
dsx1FarEndTotalESs PerfTotalCount,
dsx1FarEndTotalSESs PerfTotalCount,
dsx1FarEndTotalSEFSs PerfTotalCount,
dsx1FarEndTotalUASs PerfTotalCount,
dsx1FarEndTotalCSSs PerfTotalCount,
dsx1FarEndTotalLESs PerfTotalCount,
dsx1FarEndTotalPCVs PerfTotalCount,
dsx1FarEndTotalBESs PerfTotalCount,
dsx1FarEndTotalDMs PerfTotalCount
}
dsx1FarEndTotalIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS current
DESCRIPTION
"The index value that uniquely identifies the DS1
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 dsx1LineIndex."
::= { dsx1FarEndTotalEntry 1 }
dsx1FarEndTotalESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Errored Seconds encountered
by a DS1 interface in the previous 24-hour
interval. Invalid 15-minute intervals count as
0."
::= { dsx1FarEndTotalEntry 2 }
Okay so the far end totals are up next, and these are giving performance stats ๐๐
dsx1FarEndTotalSESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Severely Errored Seconds
encountered by a DS1 interface in the previous
24-hour interval. Invalid 15-minute intervals
count as 0."
::= { dsx1FarEndTotalEntry 3 }
dsx1FarEndTotalSEFSs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Severely Errored Framing
Seconds encountered by a DS1 interface in the
previous 24-hour interval. Invalid 15-minute
intervals count as 0."
::= { dsx1FarEndTotalEntry 4 }
dsx1FarEndTotalUASs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Unavailable Seconds encountered by
a DS1 interface in the previous 24-hour interval.
Invalid 15-minute intervals count as 0."
::= { dsx1FarEndTotalEntry 5 }
dsx1FarEndTotalCSSs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Controlled Slip Seconds
encountered by a DS1 interface in the previous
24-hour interval. Invalid 15 minute intervals
count as 0."
::= { dsx1FarEndTotalEntry 6 }
dsx1FarEndTotalLESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Line Errored Seconds
encountered by a DS1 interface in the previous
24-hour interval. Invalid 15-minute intervals
count as 0."
::= { dsx1FarEndTotalEntry 7 }
dsx1FarEndTotalPCVs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Far End Path Coding Violations
reported via the far end block error count
encountered by a DS1 interface in the previous
24-hour interval. Invalid 15-minute intervals
count as 0."
::= { dsx1FarEndTotalEntry 8 }
dsx1FarEndTotalBESs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Bursty Errored Seconds (BESs)
encountered by a DS1 interface in the previous
24-hour interval. Invalid 15-minute intervals
count as 0."
::= { dsx1FarEndTotalEntry 9 }
dsx1FarEndTotalDMs OBJECT-TYPE
SYNTAX PerfTotalCount
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"The number of Degraded Minutes (DMs) encountered
by a DS1 interface in the previous 24-hour
interval. Invalid 15-minute intervals count as
0."
::= { dsx1FarEndTotalEntry 10 }
Now the DS1 Fractional table ๐ This one is marked deprecated, bestie, because it's been replaced by ifStackTable. It used to be the way you showed which channels in a DS1 belong to which logical interface. The example is so iconic: a North American ISDN Primary Rate link with video, data, and voice all sharing one pipe ๐ง
-- The DS1 Fractional Table
dsx1FracTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dsx1FracEntry
MAX-ACCESS not-accessible
STATUS deprecated
DESCRIPTION
"This table is deprecated in favor of using
ifStackTable.
The table was mandatory for systems dividing a DS1
into channels containing different data streams
that are of local interest. Systems that are
indifferent to data content, such as CSUs, need
not implement it.
The DS1 Fractional table identifies which DS1
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 an application managing a
North American ISDN Primary Rate link whose
division is a 384-kbit/s H1 _B_ Channel for video,
a second H1 for data to a primary routing peer,
and 12 64-kbit/s H0 _B_ Channels. Consider that
some subset of the H0 channels is used for voice
and the remainder are available for dynamic data
calls.
We count a total of 14 interfaces multiplexed onto
the DS1 interface. Six DS1 channels (for the sake
of the example, channels 1..6) are used for video,
six more (7..11 and 13) are used for data, and the
remaining 12 are in channels 12 and 14..24.
Let us further imagine that ifIndex 2 is of type
DS1 and refers to the DS1 interface and that the
interfaces layered onto it are numbered 3..16.
We might describe the allocation of channels, in
the dsx1FracTable, as follows:
dsx1FracIfIndex.2. 1 = 3 dsx1FracIfIndex.2.13 = 4
dsx1FracIfIndex.2. 2 = 3 dsx1FracIfIndex.2.14 = 6
dsx1FracIfIndex.2. 3 = 3 dsx1FracIfIndex.2.15 = 7
dsx1FracIfIndex.2. 4 = 3 dsx1FracIfIndex.2.16 = 8
dsx1FracIfIndex.2. 5 = 3 dsx1FracIfIndex.2.17 = 9
dsx1FracIfIndex.2. 6 = 3 dsx1FracIfIndex.2.18 = 10
dsx1FracIfIndex.2. 7 = 4 dsx1FracIfIndex.2.19 = 11
dsx1FracIfIndex.2. 8 = 4 dsx1FracIfIndex.2.20 = 12
dsx1FracIfIndex.2. 9 = 4 dsx1FracIfIndex.2.21 = 13
dsx1FracIfIndex.2.10 = 4 dsx1FracIfIndex.2.22 = 14
dsx1FracIfIndex.2.11 = 4 dsx1FracIfIndex.2.23 = 15
dsx1FracIfIndex.2.12 = 5 dsx1FracIfIndex.2.24 = 16
For North American (DS1) interfaces, there are 24
legal channels, numbered 1 through 24.
For G.704 interfaces, there are 31 legal channels,
numbered 1 through 31. The channels (1..31)
correspond directly to the equivalently numbered
time-slots."
::= { ds1 13 }
dsx1FracEntry OBJECT-TYPE
SYNTAX Dsx1FracEntry
MAX-ACCESS not-accessible
STATUS deprecated
DESCRIPTION
"An entry in the DS1 Fractional table."
INDEX { dsx1FracIndex, dsx1FracNumber }
::= { dsx1FracTable 1 }
Dsx1FracEntry ::=
SEQUENCE {
dsx1FracIndex INTEGER,
dsx1FracNumber INTEGER,
dsx1FracIfIndex INTEGER
}
dsx1FracIndex OBJECT-TYPE
SYNTAX INTEGER (1..'7fffffff'h)
MAX-ACCESS read-only -- read-only since originally an
-- SMIv1 index
STATUS deprecated
DESCRIPTION
"The index value that uniquely identifies the
DS1 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 as a dsx1LineIndex
object instance."
::= { dsx1FracEntry 1 }
dsx1FracNumber 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."
::= { dsx1FracEntry 2 }
dsx1FracIfIndex 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 as 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."
::= { dsx1FracEntry 3 }
Next up are the DS1 TRAPS ๐ฆ There's just one trap here, and it fires whenever the line status changes. Pretty chill, pretty useful ๐
-- DS1 TRAPS
ds1Traps OBJECT IDENTIFIER ::= { ds1 15 }
dsx1LineStatusChange NOTIFICATION-TYPE
OBJECTS { dsx1LineStatus,
dsx1LineStatusLastChange }
STATUS current
DESCRIPTION
"A dsx1LineStatusChange trap is sent when the
value of an instance dsx1LineStatus changes. It
can be utilized by an Network Management Station
(NMS) to trigger polls. When the line status
change results from a higher-level line status
change (i.e., DS3), then no traps for the DS1
are sent."
::= { ds1Traps 0 1 }
Last bit for this part: the conformance information ๐ธ This is where the groups and compliance statements live, and the DS1 compliance statement is the big one. It's deprecated, but it's still got a lot of tea to spill ๐
-- conformance information
ds1Conformance OBJECT IDENTIFIER ::= { ds1 14 }
ds1Groups OBJECT IDENTIFIER ::= { ds1Conformance 1 }
ds1Compliances OBJECT IDENTIFIER ::= { ds1Conformance 2 }
-- compliance statements
ds1Compliance MODULE-COMPLIANCE
STATUS deprecated
DESCRIPTION
"The compliance statement for T1 and E1
interfaces."
MODULE -- this module
MANDATORY-GROUPS { ds1NearEndConfigGroup,
ds1NearEndStatisticsGroup }
GROUP ds1FarEndGroup
DESCRIPTION
"Implementation of this group is optional for all
systems that attach to a DS1 interface."
GROUP ds1NearEndOptionalConfigGroup
DESCRIPTION
"Implementation of this group is optional for all
systems that attach to a DS1 interface."
GROUP ds1DS2Group
DESCRIPTION
"Implementation of this group is mandatory for all
systems that attach to a DS2 interface."
GROUP ds1TransStatsGroup
DESCRIPTION
"This group is the set of statistics appropriate
for all systems that attach to a DS1 interface
running transparent or unFramed lineType."
GROUP ds1ChanMappingGroup
DESCRIPTION
"This group is the set of objects for mapping a
DS3 Channel (dsx1Ds1ChannelNumber) to ifIndex.
Implementation of this group is mandatory for
systems that support the channelization of DS3s
into DS1s."
OBJECT dsx1LineType
SYNTAX INTEGER {
other(1),
dsx1ESF(2),
dsx1D4(3),
dsx1E1(4),
dsx1E1CRC(5),
dsx1E1MF(6),
dsx1E1CRCMF(7),
dsx1Unframed(8),
dsx1E1Unframed(9),
dsx1DS2M12(10),
dsx1E2(11)
}
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line type is not
required."
OBJECT dsx1LineCoding
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line coding is not
required."
OBJECT dsx1SendCode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the send code is not
required."
OBJECT dsx1LoopbackConfig
MIN-ACCESS read-only
DESCRIPTION
"The ability to set loopbacks is not required."
OBJECT dsx1SignalMode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the signal mode is not
required."
okay bestie, the next batch is all about the ds1 compliance statements ๐ these say which objects are read-only and which groups are mandatory for each flavour of DS1, E1, and DS2 line ๐ฆ
The first one is the transmit clock source, and it's read-only because setting it is not required โจ
OBJECT dsx1TransmitClockSource
SYNTAX INTEGER {
loopTiming(1),
localTiming(2),
throughTiming(3)
}
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the transmit clock source is
not required."
OBJECT dsx1Fdl
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the FDL is not required."
OBJECT dsx1LineLength
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line length is not
required."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization is not
required."
::= { ds1Compliances 1 }
Next up is ds1MibT1PriCompliance, the T1 ISDN Primary Rate one ๐ It's deprecated, so it's giving retired vibes ๐ฅ
ds1MibT1PriCompliance MODULE-COMPLIANCE
STATUS deprecated
DESCRIPTION
"Compliance statement for using this MIB for ISDN
Primary Rate interfaces on T1 lines."
MODULE
MANDATORY-GROUPS { ds1NearEndConfigGroup,
ds1NearEndStatisticsGroup }
OBJECT dsx1LineType
SYNTAX INTEGER {
dsx1ESF(2) -- Intl Spec would be G704(2)
-- or I.431(4)
}
MIN-ACCESS read-only
DESCRIPTION
"Line type for T1 ISDN Primary Rate
interfaces."
OBJECT dsx1LineCoding
SYNTAX INTEGER {
dsx1B8ZS(2)
}
MIN-ACCESS read-only
DESCRIPTION
"Type of Zero Code Suppression for
T1 ISDN Primary Rate interfaces."
OBJECT dsx1SignalMode
SYNTAX INTEGER {
none(1), -- if there is no signaling channel
messageOriented(4)
}
MIN-ACCESS read-only
DESCRIPTION
"Possible signaling modes for
T1 ISDN Primary Rate interfaces."
OBJECT dsx1TransmitClockSource
SYNTAX INTEGER {
loopTiming(1)
}
MIN-ACCESS read-only
DESCRIPTION
"The transmit clock is derived from
received clock on ISDN Primary Rate
interfaces."
OBJECT dsx1Fdl
MIN-ACCESS read-only
DESCRIPTION
"Facilities Data Link usage on T1 ISDN
Primary Rate interfaces.
Note: Eventually, dsx1Att-54016(4) is to be
used here since the line type is ESF."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization
is not required."
::= { ds1Compliances 2 }
Now the E1 version, ds1MibE1PriCompliance ๐ Same deprecated energy, but with E1 specifics like HDB3 and always-message-oriented signaling ๐
ds1MibE1PriCompliance MODULE-COMPLIANCE
STATUS deprecated
DESCRIPTION
"Compliance statement for using this MIB for ISDN
Primary Rate interfaces on E1 lines."
MODULE
MANDATORY-GROUPS { ds1NearEndConfigGroup,
ds1NearEndStatisticsGroup }
OBJECT dsx1LineType
SYNTAX INTEGER {
dsx1E1CRC(5)
}
MIN-ACCESS read-only
DESCRIPTION
"Line type for E1 ISDN Primary Rate
interfaces."
OBJECT dsx1LineCoding
SYNTAX INTEGER {
dsx1HDB3(3)
}
MIN-ACCESS read-only
DESCRIPTION
"Type of Zero Code Suppression for
E1 ISDN Primary Rate interfaces."
OBJECT dsx1SignalMode
SYNTAX INTEGER {
messageOriented(4)
}
MIN-ACCESS read-only
DESCRIPTION
"Signaling on E1 ISDN Primary Rate interfaces
is always message oriented."
OBJECT dsx1TransmitClockSource
SYNTAX INTEGER {
loopTiming(1)
}
MIN-ACCESS read-only
DESCRIPTION
"The transmit clock is derived from received
clock on ISDN Primary Rate interfaces."
OBJECT dsx1Fdl
MIN-ACCESS read-only
DESCRIPTION
"Facilities Data Link usage on E1 ISDN
Primary Rate interfaces.
Note: There is an 'M-Channel' in E1,
using National Bit Sa4 (G.704,
Table 5A). It is used to implement
management features between ET
and NT. This is different from
FDL in T1, which is used to carry
control signals and performance
data. In E1, control and status
signals are carried using National
Bits Sa5, Sa6, and A (RAI Ind.).
This indicates that only the other(1) or
eventually the dsx1Fdl-none(8) bits should
be set in this object for E1 PRI."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization is not
required."
::= { ds1Compliances 3 }
Next is ds1Ds2Compliance, the DS2 one ๐ This is the only current (not deprecated) statement in this batch โญ
ds1Ds2Compliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Compliance statement for using this MIB for DS2
interfaces."
MODULE
MANDATORY-GROUPS { ds1DS2Group }
OBJECT dsx1LineType
SYNTAX INTEGER {
dsx1DS2M12(10),
dsx1E2(11)
}
MIN-ACCESS read-only
DESCRIPTION
"Line type for DS2, E2
interfaces."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization is not
required."
::= { ds1Compliances 4 }
Now ds1NCompliance, the big general one for T1 and E1 ๐ง It's deprecated, but it lists a whole bunch of groups as optional, recommended, or mandatory, so grab a snack ๐ฟ
ds1NCompliance MODULE-COMPLIANCE
STATUS deprecated
DESCRIPTION
"The compliance statement for T1 and E1
interfaces."
MODULE -- this module
MANDATORY-GROUPS { ds1NearEndConfigurationGroup,
ds1NearEndStatisticsGroup }
GROUP ds1FarEndGroup
DESCRIPTION
"Implementation of this group is optional for all
systems that attach to a DS1 interface."
GROUP ds1NearEndOptionalTrapGroup
DESCRIPTION
"Implementation of this group is optional for all
systems that attach to a DS1 interface. If it is
implemented, then ds1NearEndOptionalConfigGroup
should also be implemented."
GROUP ds1NearEndOptionalConfigGroup
DESCRIPTION
"Implementation of this group is recommended for
all systems that attach to a DS1 interface and
implement ds1NearEndOptionalTrapGroup."
GROUP ds1DS2Group
DESCRIPTION
"Implementation of this group is mandatory for all
systems that attach to a DS2 interface."
GROUP ds1TransStatsGroup
DESCRIPTION
"This group is the set of statistics appropriate
for all systems that attach to a DS1 interface
running transparent or unFramed lineType."
GROUP ds1ChanMappingGroup
DESCRIPTION
"This group is the set of objects for mapping a
DS3 Channel (dsx1Ds1ChannelNumber) to ifIndex.
Implementation of this group is mandatory for
systems that support the channelization of DS3s
into DS1s."
OBJECT dsx1LineType
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line type is not
required."
OBJECT dsx1LineCoding
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line coding is not
required."
OBJECT dsx1SendCode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the send code is not
required."
OBJECT dsx1LoopbackConfig
MIN-ACCESS read-only
DESCRIPTION
"The ability to set loopbacks is not required."
OBJECT dsx1SignalMode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the signal mode is not
required."
OBJECT dsx1TransmitClockSource
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the transmit clock source is
not required."
OBJECT dsx1Fdl
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the FDL is not required."
OBJECT dsx1LineLength
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line length is not
required."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization is not
required."
OBJECT dsx1LineMode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line mode is not
required."
OBJECT dsx1LineBuildOut
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line build-out is not
required."
::= { ds1Compliances 5 }
Last bit for this part: ds1MibT1PriNCompliance, the T1 ISDN Primary Rate version of the general one ๐ It's deprecated too, and this chunk gets us partway through its objects ๐ซถ
ds1MibT1PriNCompliance MODULE-COMPLIANCE
STATUS deprecated
DESCRIPTION
"Compliance statement for using this MIB for ISDN
Primary Rate interfaces on T1 lines."
MODULE
MANDATORY-GROUPS { ds1NearEndConfigurationGroup,
ds1NearEndStatisticsGroup }
OBJECT dsx1LineType
SYNTAX INTEGER {
dsx1ESF(2) -- Intl Spec would be G704(2)
-- or I.431(4)
}
MIN-ACCESS read-only
DESCRIPTION
"Line type for T1 ISDN Primary Rate
interfaces."
OBJECT dsx1LineCoding
SYNTAX INTEGER {
dsx1B8ZS(2)
}
MIN-ACCESS read-only
DESCRIPTION
"Type of Zero Code Suppression for
T1 ISDN Primary Rate interfaces."
OBJECT dsx1SignalMode
SYNTAX INTEGER {
none(1), -- if there is no signaling channel
messageOriented(4)
}
MIN-ACCESS read-only
DESCRIPTION
"Possible signaling modes for
T1 ISDN Primary Rate interfaces."
OBJECT dsx1TransmitClockSource
SYNTAX INTEGER {
loopTiming(1)
}
MIN-ACCESS read-only
DESCRIPTION
"The transmit clock is derived from
received clock on ISDN Primary Rate
interfaces."
okay so the compliance statements keep going, bestie ๐ this first chunk wraps up compliance number 6 with the read-only "can't set it" rules ๐ซถ
OBJECT dsx1Fdl
MIN-ACCESS read-only
DESCRIPTION
"Facilities Data Link usage on T1 ISDN
Primary Rate interfaces.
Note: Eventually, dsx1Att-54016(4) is to be
used here since the line type is ESF."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization
is not required."
OBJECT dsx1LineMode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line mode is not
required."
OBJECT dsx1LineBuildOut
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line build-out
is not required."
::= { ds1Compliances 6 }
next up is compliance 7, the E1 PRI one, and it's giving very specific vibes ๐ every object gets pinned to one value and the E1 signaling and clocking stuff is all locked in ๐
ds1MibE1PriNCompliance MODULE-COMPLIANCE
STATUS deprecated
DESCRIPTION
"Compliance statement for using this MIB for ISDN
Primary Rate interfaces on E1 lines."
MODULE
MANDATORY-GROUPS { ds1NearEndConfigurationGroup,
ds1NearEndStatisticsGroup }
OBJECT dsx1LineType
SYNTAX INTEGER {
dsx1E1CRC(5)
}
MIN-ACCESS read-only
DESCRIPTION
"Line type for E1 ISDN Primary Rate
interfaces."
OBJECT dsx1LineCoding
SYNTAX INTEGER {
dsx1HDB3(3)
}
MIN-ACCESS read-only
DESCRIPTION
"Type of Zero Code Suppression for
E1 ISDN Primary Rate interfaces."
OBJECT dsx1SignalMode
SYNTAX INTEGER {
messageOriented(4)
}
MIN-ACCESS read-only
DESCRIPTION
"Signaling on E1 ISDN Primary Rate interfaces
is always message oriented."
OBJECT dsx1TransmitClockSource
SYNTAX INTEGER {
loopTiming(1)
}
MIN-ACCESS read-only
DESCRIPTION
"The transmit clock is derived from received
clock on ISDN Primary Rate interfaces."
OBJECT dsx1Fdl
MIN-ACCESS read-only
DESCRIPTION
"Facilities Data Link usage on E1 ISDN
Primary Rate interfaces.
Note: There is an 'M-Channel' in E1,
using National Bit Sa4 (G704,
Table 5A). It is used to implement
management features between ET
and NT. This is different from
FDL in T1, which is used to carry
control signals and performance
data. In E1, control and status
signals are carried using National
Bits Sa5, Sa6, and A (RAI Ind.).
This indicates that only the other(1) or
eventually the dsx1Fdl-none(8) bits should
be set in this object for E1 PRI."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization is not
required."
OBJECT dsx1LineMode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line mode is not
required."
OBJECT dsx1LineBuildOut
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line build-out
is not required."
::= { ds1Compliances 7 }
compliance 8 is the J1 one and honestly it's the most iconic of the bunch โจ it covers T1, J1 and E1 all at once, and it has a whole list of optional and recommended groups ๐
ds1J1Compliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for T1, J1, and E1
interfaces."
MODULE -- this module
MANDATORY-GROUPS { ds1NearEndCfgGroup,
ds1NearEndStatGroup }
GROUP ds1FarEndNGroup
DESCRIPTION
"Implementation of this group is optional for all
systems that attach to a DS1 interface."
GROUP ds1NearEndOptionalTrapGroup
DESCRIPTION
"Implementation of this group is optional for all
systems that attach to a DS1 interface. If it is
implemented, then ds1NearEndOptionalConfigGroup
should also be implemented."
GROUP ds1NearEndOptionalConfigGroup
DESCRIPTION
"Implementation of this group is recommended for
all systems that attach to a DS1 interface and
implement ds1NearEndOptionalTrapGroup."
GROUP ds1DS2Group
DESCRIPTION
"Implementation of this group is mandatory for all
systems that attach to a DS2 interface."
GROUP ds1TransStatsGroup
DESCRIPTION
"This group is the set of statistics appropriate
for all systems that attach to a DS1 interface
running transparent or unFramed lineType."
GROUP ds1ChanMappingGroup
DESCRIPTION
"This group is the set of objects for mapping a
DS3 Channel (dsx1Ds1ChannelNumber) to ifIndex.
Implementation of this group is mandatory for
systems that support the channelization of DS3s
into DS1s."
OBJECT dsx1LineType
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line type is not
required."
OBJECT dsx1LineCoding
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line coding is not
required."
OBJECT dsx1SendCode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the send code is not
required."
OBJECT dsx1LoopbackConfig
MIN-ACCESS read-only
DESCRIPTION
"The ability to set loopbacks is not required."
OBJECT dsx1SignalMode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the signal mode is not
required."
OBJECT dsx1TransmitClockSource
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the transmit clock source is
not required."
OBJECT dsx1Fdl
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the FDL is not required."
OBJECT dsx1LineLength
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line length is not
required."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization is not
required."
OBJECT dsx1LineMode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line mode is not
required."
OBJECT dsx1LineBuildOut
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line build-out is not
required."
OBJECT dsx1LineImpedance
MIN-ACCESS read-only
DESCRIPTION
"The ability to set line impedance is not
required."
::= { ds1Compliances 8 }
next is compliance 9, the current T1 PRI one ๐ it's basically the ISDN T1 vibe with ESF and B8ZS locked in, and the signal mode can be none(1) or messageOriented(4) ๐
ds1NMibT1PriNCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Compliance statement for using this MIB for ISDN
Primary Rate interfaces on T1 lines."
MODULE
MANDATORY-GROUPS { ds1NearEndCfgGroup,
ds1NearEndStatGroup }
OBJECT dsx1LineType
SYNTAX INTEGER {
dsx1ESF(2) -- Intl Spec would be G704(2)
-- or I.431(4)
}
MIN-ACCESS read-only
DESCRIPTION
"Line type for T1 ISDN Primary Rate
interfaces."
OBJECT dsx1LineCoding
SYNTAX INTEGER {
dsx1B8ZS(2)
}
MIN-ACCESS read-only
DESCRIPTION
"Type of Zero Code Suppression for
T1 ISDN Primary Rate interfaces."
OBJECT dsx1SignalMode
SYNTAX INTEGER {
none(1), -- if there is no signaling channel
messageOriented(4)
}
MIN-ACCESS read-only
DESCRIPTION
"Possible signaling modes for
T1 ISDN Primary Rate interfaces."
OBJECT dsx1TransmitClockSource
SYNTAX INTEGER {
loopTiming(1)
}
MIN-ACCESS read-only
DESCRIPTION
"The transmit clock is derived from
received clock on ISDN Primary Rate
interfaces."
OBJECT dsx1Fdl
MIN-ACCESS read-only
DESCRIPTION
"Facilities Data Link usage on T1 ISDN
Primary Rate interfaces.
Note: Eventually, dsx1Att-54016(4) is to be
used here since the line type is ESF."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization
is not required."
OBJECT dsx1LineMode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line mode is not
required."
OBJECT dsx1LineBuildOut
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line build-out
is not required."
::= { ds1Compliances 9 }
last bit of this part is the current E1 PRI compliance, number 10's cousin ๐ฆ it starts out just like the others and we're cutting off right where the transmit clock source description ends ๐ธ
ds1NMibE1PriNCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Compliance statement for using this MIB for ISDN
Primary Rate interfaces on E1 lines."
MODULE
MANDATORY-GROUPS { ds1NearEndCfgGroup,
ds1NearEndStatGroup }
OBJECT dsx1LineType
SYNTAX INTEGER {
dsx1E1CRC(5)
}
MIN-ACCESS read-only
DESCRIPTION
"Line type for E1 ISDN Primary Rate
interfaces."
OBJECT dsx1LineCoding
SYNTAX INTEGER {
dsx1HDB3(3)
}
MIN-ACCESS read-only
DESCRIPTION
"Type of Zero Code Suppression for
E1 ISDN Primary Rate interfaces."
OBJECT dsx1SignalMode
SYNTAX INTEGER {
messageOriented(4)
}
MIN-ACCESS read-only
DESCRIPTION
"Signaling on E1 ISDN Primary Rate interfaces
is always message oriented."
OBJECT dsx1TransmitClockSource
SYNTAX INTEGER {
loopTiming(1)
}
MIN-ACCESS read-only
DESCRIPTION
"The transmit clock is derived from received
clock on ISDN Primary Rate interfaces."
Okay so we're picking up right where the compliance statements get really specific ๐
Here's the first chunk, with the MIN-ACCESS bits for dsx1Fdl and the read-only stuff:
OBJECT dsx1Fdl
MIN-ACCESS read-only
DESCRIPTION
"Facilities Data Link usage on E1 ISDN
Primary Rate interfaces.
Note: There is an 'M-Channel' in E1,
using National Bit Sa4 (G704,
Table 5A). It is used to implement
management features between ET
and NT. This is different from
FDL in T1, which is used to carry
control signals and performance
data. In E1, control and status
signals are carried using National
Bits Sa5, Sa6, and A (RAI Ind.).
This indicates that only the other(1) or
eventually the dsx1Fdl-none(8) bits should
be set in this object for E1 PRI."
OBJECT dsx1Channelization
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the channelization is not
required."
OBJECT dsx1LineMode
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line mode is not
required."
OBJECT dsx1LineBuildOut
MIN-ACCESS read-only
DESCRIPTION
"The ability to set the line build-out
is not required."
OBJECT dsx1LineImpedance
MIN-ACCESS read-only
DESCRIPTION
"The ability to set line impedance is not
required."
::= { ds1Compliances 10 }
-- units of conformance
So the vibe here is: on E1 PRI, dsx1Fdl is the bit about the M-Channel (National Bit Sa4, G704 Table 5A) ๐ It's not the same as the T1 FDL, which is the one that carries control signals and performance data. On E1, those control and status signals ride on National Bits Sa5, Sa6, and A (RAI Ind.) ๐ฆ Only other(1), or eventually dsx1Fdl-none(8), should be set for E1 PRI, so keep that in mind, bestie.
Then there's a whole bunch of "the ability to set X is not required" stuff for channelization, line mode, build-out, and impedance. Basically they're all read-only for minimum access, and the agent doesn't have to let you change them ๐
ds1NearEndConfigGroup OBJECT-GROUP
OBJECTS { dsx1LineIndex,
dsx1TimeElapsed,
dsx1ValidIntervals,
dsx1LineType,
dsx1LineCoding,
dsx1SendCode,
dsx1CircuitIdentifier,
dsx1LoopbackConfig,
dsx1LineStatus,
dsx1SignalMode,
dsx1TransmitClockSource,
dsx1Fdl,
dsx1InvalidIntervals,
dsx1LineLength,
dsx1LoopbackStatus,
dsx1Ds1ChannelNumber,
dsx1Channelization }
STATUS deprecated
DESCRIPTION
"A collection of objects providing configuration
information applicable to all DS1 interfaces."
::= { ds1Groups 1 }
ds1NearEndStatisticsGroup OBJECT-GROUP
OBJECTS { dsx1CurrentIndex,
dsx1CurrentESs,
dsx1CurrentSESs,
dsx1CurrentSEFSs,
dsx1CurrentUASs,
dsx1CurrentCSSs,
dsx1CurrentPCVs,
dsx1CurrentLESs,
dsx1CurrentBESs,
dsx1CurrentDMs,
dsx1CurrentLCVs,
dsx1IntervalIndex,
dsx1IntervalNumber,
dsx1IntervalESs,
dsx1IntervalSESs,
dsx1IntervalSEFSs,
dsx1IntervalUASs,
dsx1IntervalCSSs,
dsx1IntervalPCVs,
dsx1IntervalLESs,
dsx1IntervalBESs,
dsx1IntervalDMs,
dsx1IntervalLCVs,
dsx1IntervalValidData,
dsx1TotalIndex,
dsx1TotalESs,
dsx1TotalSESs,
dsx1TotalSEFSs,
dsx1TotalUASs,
dsx1TotalCSSs,
dsx1TotalPCVs,
dsx1TotalLESs,
dsx1TotalBESs,
dsx1TotalDMs,
dsx1TotalLCVs }
STATUS deprecated
DESCRIPTION
"A collection of objects providing statistics
information applicable to all DS1 interfaces."
::= { ds1Groups 2 }
ds1FarEndGroup OBJECT-GROUP
OBJECTS { dsx1FarEndCurrentIndex,
dsx1FarEndTimeElapsed,
dsx1FarEndValidIntervals,
dsx1FarEndCurrentESs,
dsx1FarEndCurrentSESs,
dsx1FarEndCurrentSEFSs,
dsx1FarEndCurrentUASs,
dsx1FarEndCurrentCSSs,
dsx1FarEndCurrentLESs,
dsx1FarEndCurrentPCVs,
dsx1FarEndCurrentBESs,
dsx1FarEndCurrentDMs,
dsx1FarEndInvalidIntervals,
dsx1FarEndIntervalIndex,
dsx1FarEndIntervalNumber,
dsx1FarEndIntervalESs,
dsx1FarEndIntervalSESs,
dsx1FarEndIntervalSEFSs,
dsx1FarEndIntervalUASs,
dsx1FarEndIntervalCSSs,
dsx1FarEndIntervalLESs,
dsx1FarEndIntervalPCVs,
dsx1FarEndIntervalBESs,
dsx1FarEndIntervalDMs,
dsx1FarEndIntervalValidData,
dsx1FarEndTotalIndex,
dsx1FarEndTotalESs,
dsx1FarEndTotalSESs,
dsx1FarEndTotalSEFSs,
dsx1FarEndTotalUASs,
dsx1FarEndTotalCSSs,
dsx1FarEndTotalLESs,
dsx1FarEndTotalPCVs,
dsx1FarEndTotalBESs,
dsx1FarEndTotalDMs }
STATUS deprecated
DESCRIPTION
"A collection of objects providing remote
configuration and statistics information."
::= { ds1Groups 3 }
ds1DeprecatedGroup OBJECT-GROUP
OBJECTS { dsx1IfIndex,
dsx1FracIndex,
dsx1FracNumber,
dsx1FracIfIndex }
STATUS deprecated
DESCRIPTION
"A collection of obsolete objects that may be
implemented for backwards compatibility."
::= { ds1Groups 4 }
ds1NearEndOptionalConfigGroup OBJECT-GROUP
OBJECTS { dsx1LineStatusLastChange,
dsx1LineStatusChangeTrapEnable }
STATUS current
DESCRIPTION
"A collection of objects that may be implemented
on DS1 and DS2 interfaces."
::= { ds1Groups 5 }
ds1DS2Group OBJECT-GROUP
OBJECTS { dsx1LineIndex,
dsx1LineType,
dsx1LineCoding,
dsx1SendCode,
dsx1LineStatus,
dsx1SignalMode,
dsx1TransmitClockSource,
dsx1Channelization }
STATUS current
DESCRIPTION
"A collection of objects providing information
about DS2 (6,312 kbps) and E2 (8,448 kbps)
systems."
::= { ds1Groups 6 }
ds1TransStatsGroup OBJECT-GROUP
OBJECTS { dsx1CurrentESs,
dsx1CurrentSESs,
dsx1CurrentUASs,
dsx1IntervalESs,
dsx1IntervalSESs,
dsx1IntervalUASs,
dsx1TotalESs,
dsx1TotalSESs,
dsx1TotalUASs }
STATUS current
DESCRIPTION
"A collection of objects that are the
statistics that can be collected from a DS1
interface that is running transparent or unframed
lineType. Statistics not in this list should
return noSuchInstance."
::= { ds1Groups 7 }
ds1NearEndOptionalTrapGroup NOTIFICATION-GROUP
NOTIFICATIONS { dsx1LineStatusChange }
STATUS current
DESCRIPTION
"A collection of notifications that may be
implemented on DS1 and DS2 interfaces."
::= { ds1Groups 8 }
ds1ChanMappingGroup OBJECT-GROUP
OBJECTS { dsx1ChanMappedIfIndex }
STATUS current
DESCRIPTION
"A collection of objects that give a mapping of
DS3 Channel (dsx1Ds1ChannelNumber) to ifIndex."
::= { ds1Groups 9 }
ds1NearEndConfigurationGroup OBJECT-GROUP
OBJECTS { dsx1LineIndex,
dsx1TimeElapsed,
dsx1ValidIntervals,
dsx1LineType,
dsx1LineCoding,
dsx1SendCode,
dsx1CircuitIdentifier,
dsx1LoopbackConfig,
dsx1LineStatus,
dsx1SignalMode,
dsx1TransmitClockSource,
dsx1Fdl,
dsx1InvalidIntervals,
dsx1LineLength,
dsx1LoopbackStatus,
dsx1Ds1ChannelNumber,
dsx1Channelization,
dsx1LineMode,
dsx1LineBuildOut }
STATUS deprecated
DESCRIPTION
"A collection of objects providing configuration
information applicable to all DS1 interfaces."
::= { ds1Groups 10 }
ds1NearEndCfgGroup OBJECT-GROUP
OBJECTS { dsx1LineIndex,
dsx1TimeElapsed,
dsx1ValidIntervals,
dsx1LineType,
dsx1LineCoding,
dsx1SendCode,
dsx1CircuitIdentifier,
dsx1LoopbackConfig,
dsx1LineStatus,
dsx1SignalMode,
dsx1TransmitClockSource,
dsx1Fdl,
dsx1InvalidIntervals,
dsx1LineLength,
dsx1LoopbackStatus,
dsx1Ds1ChannelNumber,
dsx1Channelization,
dsx1LineMode,
dsx1LineBuildOut,
dsx1LineImpedance }
STATUS current
DESCRIPTION
"A collection of objects providing configuration
information applicable to all DS1 interfaces."
::= { ds1Groups 11 }
ds1NearEndStatGroup OBJECT-GROUP
OBJECTS { dsx1CurrentIndex,
dsx1CurrentESs,
dsx1CurrentSESs,
dsx1CurrentSEFSs,
dsx1CurrentUASs,
dsx1CurrentCSSs,
dsx1CurrentPCVs,
dsx1CurrentLESs,
dsx1CurrentBESs,
dsx1CurrentLCVs,
dsx1IntervalIndex,
dsx1IntervalNumber,
dsx1IntervalESs,
dsx1IntervalSESs,
dsx1IntervalSEFSs,
dsx1IntervalUASs,
dsx1IntervalCSSs,
dsx1IntervalPCVs,
dsx1IntervalLESs,
dsx1IntervalBESs,
dsx1IntervalLCVs,
dsx1IntervalValidData,
dsx1TotalIndex,
dsx1TotalESs,
dsx1TotalSESs,
dsx1TotalSEFSs,
dsx1TotalUASs,
dsx1TotalCSSs,
dsx1TotalPCVs,
dsx1TotalLESs,
dsx1TotalBESs,
dsx1TotalLCVs }
STATUS current
DESCRIPTION
"A collection of objects providing statistics
information applicable to all DS1 interfaces."
::= { ds1Groups 12 }
ds1FarEndNGroup OBJECT-GROUP
OBJECTS { dsx1FarEndCurrentIndex,
dsx1FarEndTimeElapsed,
dsx1FarEndValidIntervals,
dsx1FarEndCurrentESs,
dsx1FarEndCurrentSESs,
dsx1FarEndCurrentSEFSs,
dsx1FarEndCurrentUASs,
dsx1FarEndCurrentCSSs,
dsx1FarEndCurrentLESs,
dsx1FarEndCurrentPCVs,
dsx1FarEndCurrentBESs,
dsx1FarEndInvalidIntervals,
dsx1FarEndIntervalIndex,
dsx1FarEndIntervalNumber,
dsx1FarEndIntervalESs,
dsx1FarEndIntervalSESs,
dsx1FarEndIntervalSEFSs,
dsx1FarEndIntervalUASs,
dsx1FarEndIntervalCSSs,
dsx1FarEndIntervalLESs,
dsx1FarEndIntervalPCVs,
dsx1FarEndIntervalBESs,
dsx1FarEndIntervalValidData,
dsx1FarEndTotalIndex,
dsx1FarEndTotalESs,
dsx1FarEndTotalSESs,
dsx1FarEndTotalSEFSs,
dsx1FarEndTotalUASs,
dsx1FarEndTotalCSSs,
dsx1FarEndTotalLESs,
dsx1FarEndTotalPCVs,
dsx1FarEndTotalBESs}
STATUS current
DESCRIPTION
"A collection of objects providing remote
configuration and statistics information."
::= { ds1Groups 13 }
END
We're wrapping up the MIB module with the far-end group, which is the grouping for all the remote config and stats goodies ๐ฐ๏ธโจ. Now for the part everyone skips but I absolutely do not ๐.
5. Security Considerations ๐
okay bestie, this section is literally about the spicy stuff. There are a bunch of management objects in this MIB module with a MAX-ACCESS of read-write, and those can be sensitive or vulnerable depending on the network. SET operations in a non-secure environment without proper protection can seriously mess with network operations, so please don't be casual about it ๐.
Setting these objects to the wrong values may cause traffic interruptions:
dsx1LineTypedsx1LineCodingdsx1SendCodedsx1LoopbackConfigdsx1SignalModedsx1TransmitClockSourcedsx1Fdldsx1LineLengthdsx1Channelizationdsx1LineModedsx1LineBuildOutdsx1LineImpedance
For example, with dsx1LineType, both ends of a DS1/E1 must have the same value or traffic just won't flow ๐
โโ๏ธ. And with dsx1SendCode and dsx1LoopbackConfig, traffic may stop transmitting when certain loopbacks are applied. Main character energy for chaos, honestly ๐ญ.
Setting this one to the wrong value won't hurt the traffic, but it can cause a circuit to get misidentified, which makes life really hard for service personnel trying to troubleshoot ๐ง:
dsx1CircuitIdentifier
Setting this one can increase the number of traps the network management station receives ๐:
dsx1LineStatusChangeTrapEnable
The readable objects in this MIB module (so, every object whose MAX-ACCESS isn't not-accessible) can be sensitive in some environments. Together they reveal a LOT about how DS1/J1/E1/DS2/E2 equipment or networks perform, and they can expose parts of the configuration too ๐. So in those environments it matters to control even GET and NOTIFY access, and it may be smart to encrypt these values when they go over the network via SNMP ๐.
SNMP versions before SNMPv3 did not have adequate security. Even if the network itself is secure (for example, by using IPSec), there is still no control over who on that secure network is allowed to GET and SET (read, change, create, delete) the objects in this MIB module ๐ค.
It is RECOMMENDED that implementers look at the security features provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms for authentication and privacy ๐โจ.
Deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and enable cryptographic security ๐. After that, it's the customer or operator's job to make sure the SNMP entity giving access to an instance of this MIB module only lets the right principals (users) with legitimate rights GET or SET (change, create, delete) the objects ๐ซถ.
6. Acknowledgments ๐
This document was produced by the AToM MIB Working Group. Huge thanks to them for putting this together ๐ธ.
7. References ๐
7.1. Normative References
[RFC2119]Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.[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.[AT&T-TR-54016]AT&T Technical Reference, Requirements for Interfacing Digital Terminal Equipment to Services Employing the Extended Superframe Format, Publication 54016, May 1988.[ANSI-T1.403]American National Standard for Telecommunications -- Carrier-to-Customer Installation - DS1 Metallic Interface, T1.403, February 1989.[CCITT-G.703]ITU-T G.703, Physical/Electrical Characteristics of Hierarchical Digital Interfaces, November 2001.[ITU-T-G.704]ITU-T G.704: Synchronous frame structures used at 1544, 6312, 2048, 8488 and 44 736 kbit/s Hierarchical Levels, October 1998.[ANSI-T1.231]American National Standard for Telecommunications -- Digital Hierarchy DS1-- Layer 1 In-Service Digital Transmission Performance Monitoring, T1.231.02, October 2003.[ITU-T-O.162]ITU-T O.162, Equipment To Perform In Service Monitoring On 2048 kbit/s Signals, October 1992.[CCITT-G.821]ITU-T G.821, Error Performance Of An International Digital Connection Forming Part Of An Integrated Services Digital Network, December 2002.[AT&T-TR-62411]AT&T Technical Reference, Technical Reference 62411, ACCUNET T1.5 Service Description And Interface Specification, December 1990.[CCITT-G.706]ITU-T G.706, Frame Alignment and Cyclic Redundancy Check (CRC) Procedures Relating to Basic Frame Structures Defined in Recommendation G.704, April 1991.[CCITT-G.732]ITU-T G.732, Characteristics Of Primary PCM Multiplex Equipment Operating at 2048 kbit/s, November 1988.[ITU-T-G.775]ITU-T G.775: Loss of signal (LOS) and alarm indication signal (AIS) defect detection and clearance criteria, October 1998.[ITU-T-G.826]ITU-T G.826: Error performance parameters and objectives for international, constant bit rate digital paths at or above the primary rate, December 2002.[ANSI-T1.107]American National Standard for Telecommunications -- Digital Hierarchy - Format Specifications, T1.107, January 2002.[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.[JT-G704]JT-G.704: Synchronous frame structures used at Primary and Secondary Hierarchical Levels, 2002.[JT-G706]JT-G.706: Frame Alignment and Cyclic Redundancy Check (CRC) Procedures.[JT-I431]JT-I.431: ISDN Primary Rate User-Network Interface,Layer 1 Specifications, 2002.
7.2. Informative References
[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.[RFC3895]Nicklass, O., "Definitions of Managed Objects for the DS1, E1, DS2, and E2 Interface Types", RFC 3895, September 2004.[RFC2495]Fowler, D., "Definitions of Managed Objects for the DS1, E1, DS2 and E2 Interface Types", RFC 2495, January 1999.[RFC1406]Baker, F. and J. Watt, "Definitions of Managed Objects for the DS1 and E1 Interface Types", RFC 1406, January 1993.[AT&T-UM-305]AT&T Information Systems, AT&T ESF DS1 Channel Service Unit User's Manual, 999-100-305, February 1988.[RFC3896]Nicklass, O., "Definitions of Managed Objects for the DS3/E3 Interface Type", RFC 3896, 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.[ANSI-T1.102]American National Standard for Telecommunications -- Digital Hierarchy - Electrical Interfaces, T1.102, December 1993.[RFC3410]Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.
Appendix A - Use of dsx1IfIndex and dsx1LineIndex โจ
Okay bestie, this appendix is the "why did we change this" tea โ. It's here to document how dsx1IfIndex and dsx1LineIndex used to be used, and to explain how the dsx1LineIndex from RFC 1406 connects to the dsx1LineIndex in this document ๐ฆ.
Here are the old and new definitions, side by side:
[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 and ds0/ds0bundle mibs.
[Old Definition]: "This object is the identifier of a DS1 Interface
on a managed device. If there is an ifEntry that is directly
associated with this and only this DS1 interface, it should have the
same value as ifIndex. Otherwise, number the dsx1LineIndices 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 idea was to let a manager treat the value as if it were an ifIndex ๐. The value would be either 1) an ifIndex value, or 2) a value guaranteed to be different from every valid ifIndex value.
The new definition is basically a subset of the old one. The value is always an ifIndex value now ๐ .
Here's Section 3.1 from RFC 1406, quoted exactly:
Different physical configurations for the support of SNMP with DS1
equipment exist. To accommodate these scenarios, two different
indices for DS1 interfaces are introduced in this MIB. These
indices are dsx1IfIndex and dsx1LineIndex.
External interface scenario: the SNMP Agent represents all managed
DS1 lines as external interfaces (for example, an Agent residing
on the device supporting DS1 interfaces directly):
For this scenario, all interfaces are assigned an integer value
equal to ifIndex, and the following applies:
ifIndex=dsx1IfIndex=dsx1LineIndex for all interfaces.
The dsx1IfIndex column of the DS1 Configuration table relates each
DS1 interface to its corresponding interface (ifIndex) in the
Internet-standard MIB (MIB-II STD 17, RFC 1213) [RFC1213].
External & Internal interface scenario: the SNMP Agents resides on
a host external from the device supporting DS1 interfaces (e.g., a
router). The Agent represents both the host and the DS1 device.
The index dsx1LineIndex is used to not only represent the DS1
interfaces external from the host/DS1-device combination, but also
the DS1 interfaces connecting the host and the DS1 device. The
index dsx1IfIndex is always equal to ifIndex.
Example:
A shelf full of CSUs connected to a router. An SNMP Agent
residing on the router proxies for itself and the CSU. The router
has also an Ethernet interface:
+-----+
| | |
| | | +---------------------+
|E | | 1.544 MBPS | Line#A | DS1 Link
|t | R |---------------+ - - - - - - - - - +------>
|h | | | |
|e | O | 1.544 MBPS | Line#B | DS1 Link
|r | |---------------+ - - - - - - - - - - +------>
|n | U | | CSU Shelf |
|e | | 1.544 MBPS | Line#C | DS1 Link
|t | T |---------------+ - - - -- -- - - - - +------>
| | | | |
|-----| E | 1.544 MBPS | Line#D | DS1 Link
| | |---------------+ - - - - -- - - - - +------>
| | R | |_____________________|
| | |
| +-----+
The assignment of the index values could for example be:
ifIndex (= dsx1IfIndex) dsx1LineIndex
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. Note the following
description of dsx1LineIndex: the dsx1LineIndex identifies a DS1
Interface on a managed device. If there is an ifEntry that is
directly associated with this and only this DS1 interface, it
should have the same value as ifIndex. Otherwise, number the
dsx1LineIndices 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 is managed by itself by a local SNMP Agent, the
situation would be:
ifIndex (= dsx1IfIndex) dsx1LineIndex
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
Appendix B - The Delay Approach to Unavailable Seconds ๐ฐ๏ธ
This procedure is shown below for a DS1 ESF interface ๐ง. Similar rules would apply to other DS1, DS2, and E1 interface variants. The big win is that the statistical counters stay correctly updated at all times, even though they lag real time by 10 seconds ๐.
At the end of each 15-minute interval, the current interval counts get moved into the most recent interval entry, and every interval shifts up by one position. If there's no room, the oldest one gets discarded. Then the current interval counts start over from zero ๐. Heads up, though: the signal state calculation does not start fresh at each interval boundary. Signal state information is kept across interval boundaries ๐ซถ.
Here's the flow diagram:
+---------------------------------------------------------------------+
| READ COUNTERS & STATUS INFO FROM HARDWARE |
| |
| BPV EXZ LOS FE CRC CS AIS SEF OOF LOF RAI G1-G6 SE FE LV SL |
+---------------------------------------------------------------------+
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
V V V V V 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 ES CSS BES SES SEFS A/U PCV ES CSS BES SES SEFS A/U |
+---------------------------------------------------------------------+
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
V 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 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 V
+---------------------------------------------------------------------+
| UPDATE STATISTICS COUNTERS |
| |
|<-------------- NEAR END ----------->| |<--------- FAR END --------->|
| |
|LCV LES PCV ES CSS BES SES SEFS UAS DM PCV ES CSS BES SES SEFS UAS DM|
+---------------------------------------------------------------------+
Heads up: if you adopt this procedure, there's no current interval data for the first 10 seconds after a system comes up. If a management station tries to access the current interval counters during that window, noSuchInstance must be returned ๐.
Whether an agent assumes the interface's initial state is available or unavailable is an implementation-specific matter ๐ธ.
Appendix C - Changes from Pervious Versions ๐
C.1. Changes from RFC 3895
Here's what changed from [RFC3895] ๐:
- Values were added to dsx1LineType to support J1 types.
- The object dsx1LineImpedance was added.
- All DM-related objects were deprecated following their removal from ITU performance standards.
- Relevant text and reference section were updated.
- Changes in Compliance Statements to include new values.
C.2. Changes from RFC 2495
And here's the glow-up from [RFC2495] ๐:
- The dsx1FracIfIndex SYNTAX matches the description range.
- A value was added to dsx1TransmitClockSource.
- Values were added to dsx1LineType.
- Two objects were added, dsx1LineMode and dsx1LineBuildOut, to better express transceiver mode and LineBuildOut for T1.
- Reference was added to Circuit Identifier object.
- Align the DESCRIPTION clauses of few statistic objects with the near-end definition, with the far-end definition, and with [RFC3593].
- Changes in Compliance Statements to include new objects.
- A typographical error in dsx2E2 was fixed; new name is dsx1E2.
C.3. Changes from RFC 1406 ๐
okay so here's the glow-up list from [RFC1406] ๐ these are all the changes, bestie:
- The Fractional table has been deprecated. ๐ฅ
- This document uses
SMIv2. โจ - Usage is given for
ifTableandifXTable. ๐ - Example usage of
ifStackTableis included. ๐ง dsx1IfIndexhas been deprecated. ๐- Support for DS2 and E2 has been added. ๐ฅ
- Additional lineTypes for DS2, E2, and unframed E1 were added. ๐ฆ
- 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. ๐ซถ
- An inward loopback has been added. ๐ธ
- Additional
lineStatusbits have been added for Near End in Unavailable Signal State, Carrier Equipment Out of Service, DS2 Payload AIS, and DS2 Performance Threshold. ๐ - A read-write line
Lengthobject has been added. ๐ - Signal mode of
otherhas been added. ๐ - Added a
lineStatuslast change, trap and enabler. ๐ - The
e1(19)ifTypehas been obsoleted, so this MIB does not list it as a supportedifType. ๐ - Textual Conventions for statistics objects have been used. ๐
- A new object,
dsx1LoopbackStatus, has been introduced to reflect the loopbacks established on a DS1 interface and the source to the requests.dsx1LoopbackConfigcontinues to be the desired loopback state whiledsx1LoopbackStatusreflects the actual state. ๐ญ - A dual loopback has been added to allow the setting of an inward loopback and a line loopback at the same time. โญ
- An object indicating which channel to use within a parent object (i.e., DS3) has been added. ๐
- An object has been added to indicate whether or not this DS1/E1 is channelized. ๐
- Line coding type of
B6ZShas been added for DS2. ๐ฅ
C.4. Companion Documents ๐ง
this doc is the bestie of the docs that define managed objects for the DS0 [RFC2494], DS3/E3 [RFC3896], and Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) [RFC3592] Interface Types. they go together like peanut butter and jelly ๐ซถ
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
Full Copyright Statement ๐ธ
Copyright (C) The IETF Trust (2007).
this document is subject to the rights, licenses and restrictions in BCP 78. except as set out there, the authors keep all their rights ๐
the legal part, which we have to keep exactly as written:
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST 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 is not picking a side on whether any IPR (Intellectual Property Rights) or other claimed rights apply to building or using this tech, or whether any licence for them is available. it also doesn't claim it went looking for any of them, so yeah, it's not making promises here ๐ the rules for rights in RFC documents live in BCP 78 and BCP 79.
copies of IPR disclosures sent to the IETF Secretariat, plus any promises of licences, or the results of anyone trying to get a general permission to use those proprietary rights for this spec, can be found in the IETF's online IPR repository at http://www.ietf.org/ipr.
the IETF invites anyone who knows about copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to implement this standard to let them know. send that info to ietf-ipr@ietf.org ๐จ
Acknowledgement ๐
funding for the RFC Editor function is currently provided by the Internet Society. thank you, Internet Society, you're literally the real MVP ๐
๐ฆ where this page comes from
- ietf: rfc4805 2007-03
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms