RFC 4546
Radio Frequency (RF) Interface Management Information Base for Data over Cable Service Interface Specifications (DOCSIS) 2.0 Compliant RF Interfaces
Part 1 of 25 ๐
okay bestie, let's get the basics locked in first ๐ This is RFC 4546, and the full title is Radio Frequency (RF) Interface Management Information Base for Data over Cable Service Interface Specifications (DOCSIS) 2.0 Compliant RF Interfaces ๐ฆ It came out in June 2006 from the Network Working Group stream, written by D. Raftus of ATI Technologies, Inc. and E. Cardona of CableLabs. It's a Standards Track document, and it obsoletes RFC 2670 ๐
Status of This Memo โจ
so this doc is an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements ๐ซถ If you want the current standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited ๐
This document revises and obsoletes RFC 2670. Please see Section 5.3 for a description of the changes from RFC 2670 ๐ง
Copyright Notice ๐
the copyright line reads Copyright (C) The Internet Society (2006) ๐
Abstract ๐ฆ
this memo defines a piece of the Management Information Base (MIB) for network management protocols in the Internet community ๐ It's specifically a set of managed objects for SNMP-based management (that's the Simple Network Management Protocol) of the Radio Frequency (RF) interfaces on systems that follow the Data Over Cable Service Interface Specifications (DOCSIS) ๐ฅ
Table of Contents ๐
here's the map so you don't get lost ๐บ๏ธ
1. The Internet-Standard Management Framework ......................2
2. Glossary ........................................................3
2.1. Baseline Privacy ...........................................3
2.2. CATV .......................................................3
2.3. Channel ....................................................3
2.4. CM or Cable Modem ..........................................3
2.5. CMTS or Cable Modem Termination System .....................3
2.6. Codeword ...................................................4
2.7. Data Packet ................................................4
2.8. dBmV .......................................................4
2.9. DOCSIS .....................................................4
2.9.1. DOCSIS 1.0 ..........................................4
2.9.2. DOCSIS 1.1 ..........................................4
2.9.3. DOCSIS 2.0 ..........................................4
2.10. Downstream ................................................5
2.11. Euro-DOCSIS ...............................................5
2.12. Head-end ..................................................5
2.13. MAC Packet ................................................5
2.14. MCNS ......................................................5
2.15. Mini-slot .................................................5
2.16. QPSK (Quadrature Phase Shift Keying) ......................5
2.17. QAM (Quadrature Amplitude Modulation) .....................5
2.18. RF ........................................................5
2.19. Symbol-times ..............................................5
2.20. Upstream ..................................................6
3. Overview ........................................................6
3.1. Textual Conventions ........................................6
3.1.1. Textual Conventions in RFC 2670 .....................6
3.1.2. Textual Conventions in RFC 4546 .....................6
3.2. Structure of the MIB .......................................6
3.2.1. docsIfBaseObjects ...................................7
3.2.2. docsIfCmObjects .....................................7
3.2.3. docsIfCmtsObjects ...................................8
3.2.4. Relationship to the Interfaces MIB Module ...........8
3.2.5. Offline Upstream Parameters Handling ...............22
4. Definitions ....................................................24
5. Revision History ..............................................134
5.1. Scope ....................................................134
5.2. Extension ................................................134
6. Security Considerations .......................................134
7. Management Interoperability of DOCSIS 1.0, 1.1, and 2.0 .......136
8. References ....................................................136
8.1. Normative References .....................................136
8.2. Informative References ...................................137
1. The Internet-Standard Management Framework โจ
if you want the full tour of the documents describing the current Internet-Standard Management Framework, check out section 7 of RFC 3410 [RFC3410] ๐งญ
okay 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 mechanisms in the Structure of Management Information (SMI). This memo specifies a MIB module that is compliant to the SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] STD 58, RFC 2580 [RFC2580] ๐
2. Glossary ๐
the terms in this document come either from normal cable system usage or from the documents tied to the Data Over Cable Service Interface Specification process ๐
2.1. Baseline Privacy ๐
this is a security interface spec made for DOCSIS-compliant cable data systems, and it keeps device authentication data confidential in the CATV plant ๐ซฃ See [BPI] and [BPIPLUS].
2.2. CATV ๐บ
it started out as "Community Antenna Television," but now it means any cable or hybrid fiber and cable system used to deliver video signals to a community ๐๏ธ
2.3. Channel ๐ก
a channel is a specific frequency allocation within an RF medium. It's defined by its channel width in Hertz (cycles per second) and its center frequency ๐ถ In US cable systems, upstream channels are usually allocated from 5-42MHz, while downstream channels are usually allocated from 50-750MHz. It depends on what the system can do. The typical broadcast channel width in the US is 6MHz, and upstream channel widths for DOCSIS vary.
for European cable systems, upstream channels vary by country. The upper edge of upstream channel allocations varies between 25 MHz to 65 MHz, and the lower edge of downstream channel allocations varies between 47 MHz and 87.5 MHz ๐ช๐บ The typical broadcast channel width in Europe is 8MHz. The actual parameters matter for systems deploying Euro-DOCSIS technology ๐ง
the downstream channels conform to the requirements of ITU-T Recommendation J.83 [ITU-T_J.83] โจ
2.4. CM or Cable Modem ๐งธ
a CM acts as a "slave" station in a DOCSIS-compliant cable data system ๐ซถ
2.5. CMTS or Cable Modem Termination System ๐
this is a generic term for a cable bridge or cable router in a head-end. The CMTS is the master station in a DOCSIS-compliant cable data system ๐ค It's the only station that transmits downstream, and it controls the scheduling of upstream transmissions by its associated CMs. main character energy, honestly ๐
2.6. Codeword ๐
a characteristic of the Forward Error Correction scheme, used above the RF media layer ๐ก๏ธ
See "Data-Over-Cable Service Interface Specifications: Radio Frequency Interface Specification SP-RFIv2.0-I10-051209".
2.7. Data Packet ๐ฆ
the payload portion of the MAC Packet ๐
2.8. dBmV ๐ถ
a measure of RF signal voltage amplitude, where the power level is determined by the characteristic impedance. A zero dB signal power is equivalent to 48.75 dBmV signal amplitude in a 75 Ohm system ๐
2.9. DOCSIS ๐
"Data Over Cable Service Interface Specification" is the name, and it refers to the ITU-T J112 [ITU-T_J.112] Annex B standard for cable modem systems. It's giving standard, and it's iconic ๐ธ
2.9.1. DOCSIS 1.0
cable modem systems that are CM/CMTS compliant to requirements in [RFI1.0]. When people say DOCSIS 1.0 in this document, they usually mean the upstream channel queuing mechanism known as Class of Service (COS) ๐๏ธ
2.9.2. DOCSIS 1.1
cable modem systems that are CM/CMTS compliant to requirements in [ITU-T_J.112]. DOCSIS 1.1 references in this document are partly tied to the upstream and downstream Quality of Service (QOS). The term DOCSIS 1.x covers both DOCSIS 1.0 and DOCSIS 1.1 ๐
2.9.3. DOCSIS 2.0
cable modem systems that are CM/CMTS compliant to requirements in [ITU-T_J.122]. DOCSIS 2.0 is the second generation of radio-frequency interface specifications of DOCSIS ๐ฆ
2.10. Downstream โฌ๏ธ
the direction from the head-end towards the subscriber ๐
2.11. Euro-DOCSIS ๐ช๐บ
cable modem systems CM/CMTS that conform to the European spectrum lineup and are compliant to requirements of Annex F in [ITU-T_J.122] ๐
2.12. Head-end ๐ข
the origination point in most cable systems for the subscriber video signals. It's also usually where the CMTS equipment lives ๐
2.13. MAC Packet ๐งฉ
a DOCSIS PDU ๐
2.14. MCNS
"Multimedia Cable Network System." It's been mostly replaced by DOCSIS in usage ๐ฐ๏ธ
2.15. Mini-slot โฑ๏ธ
generally, an interval of time that the CMTS allocates to a given CM so that CM can transmit in the upstream direction. See [ITU-T_J.122] โก
2.16. QPSK (Quadrature Phase Shift Keying)
a particular modulation scheme on an RF medium. See [Proakis00] ๐
2.17. QAM (Quadrature Amplitude Modulation)
a particular modulation scheme on RF medium. It's usually written with a number for the size of the modulation constellation (e.g., 16 QAM). See [Proakis00] ๐ข
2.18. RF
Radio Frequency ๐ป
2.19. Symbol-times
a characteristic of the RF modulation scheme. See [ITU-T_J.122] ๐ต
2.20. Upstream
the direction from the subscriber towards the head-end โฌ๏ธ
3. Overview ๐บ๏ธ
this MIB module gives you the set of objects needed to manage DOCSIS-compliant Cable Modem (CM) and Cable Modem Termination System (CMTS) RF interfaces ๐ The specification is partly derived from the parameters and protocols described in [ITU-T_J.122].
In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in [RFC2119].
3.1. Textual Conventions ๐จ
this MIB module defines new textual conventions for CM and CMTS indications of DOCSIS 2.0 RFI capabilities, configuration, usage, and backward compatible modes of operation, as defined in [RFI2.0] โจ It also covers some textual conventions for the capabilities and modes of operation of [RFI1.1] that RFC 2670 didn't cover. Those are managed proprietarily in the DOCSIS OSSI 1.1 specification [OSSI1.1] ๐ซข
3.1.1. Textual Conventions in RFC 2670
RFC 2670 defined two textual conventions, TenthdBmV and TenthdB, which are power measurement representations ๐
3.1.2. Textual Conventions in RFC 4546
this MIB module defines the textual convention DocsisUpstreamType to represent the DOCSIS 1.0 [RFI1.0] and DOCSIS 2.0 [RFI2.0] upstream burst modulation profile types ๐ฅ
this MIB module also defines the textual conventions DocsisVersion and DocsisQosVersion to represent the DOCSIS 1.0 [RFI1.0] and DOCSIS 1.1 [RFI1.1] COS/QOS capabilities and modes of operation ๐
3.2. Structure of the MIB โจ
okay so this MIB module is structured as three groups ๐ง
- Management information that both the Cable Modem (CM) and the Cable Modem Termination System (CMTS) care about (docsIfBaseObjects).
- Management information that's just for the Cable Modem (docsIfCmObjects).
- Management information that's just for the Cable Modem Termination System (docsIfCmtsObjects).
Inside each group, tables cover different jobs, like upstream queue services, channel characteristics, MAC layer management, and so on ๐ Rows that the device creates on its own (based on the hardware configuration) may and generally will have a mix of configuration and status objects. Rows the management station is supposed to create are generally limited to configuration (read-create) objects. It's giving organized ๐
3.2.1. docsIfBaseObjects ๐ธ
docsIfDownstreamChannelTable: this table describes the downstream channels that exist for a CMTS, and the downstream channel a CM receives.
docsIfUpstreamChannelTable: this table describes the upstream channels that exist for a CMTS, and the upstream transmission channel a CM is currently using.
docsIfQosProfileTable: this table describes the valid Quality of Service profiles for the cable data system. Main character energy for QoS ๐
docsIfSignalQualityTable: this table is used to monitor the RF signal quality characteristics of received signals ๐ก
docsIfDocsisBaseCapability: this object shows the highest DOCSIS version a cable device can support ๐ฆ
3.2.2. docsIfCmObjects ๐ฆ
docsIfCmMacTable: this table is used to monitor the DOCSIS MAC interface, and it can be thought of as an extension to the ifEntry ๐
docsIfCmStatusTable: this table keeps track of a bunch of status objects and counters for cable modems. There's a matching table at the CMTS, docsIfCmtsCmStatusTable, which keeps similar counters from the CMTS point of view ๐ซถ
docsIfCmServiceTable: this table describes the upstream service queues available at this CM. There's a matching table at the CMTS, docsIfCmtsServiceEntry, which describes the service queues from the CMTS's point of view โจ
3.2.3. docsIfCmtsObjects ๐ฅ
docsIfCmtsMacTable: describes the attributes of each CMTS MAC interface ๐
docsIfCmtsStatusTable: this table gives you a set of aggregated counters that roll up the values and events happening on the underlying sub-interfaces ๐
docsIfCmtsCmStatusTable: this table holds info about known cable modems on the system this CMTS serves. "Known" means they're ranging, registered, and/or were online before ๐
docsIfCmtsServiceTable: this table gives you access to the info about upstream service queues ๐
docsIfCmtsModulationTable: this table lets you control the modulation profiles for RF channels associated with this CMTS ๐
docsIfCmtsMacToCmTable: this table gives you fast access into the docsIfCmtsCmTable using a MAC address (of the CM) interface. Speedy ๐จ
docsIfCmtsChannelUtilizationTable: this table provides statistical load usage data for attached upstream and downstream physical channels ๐
docsIfCmtsDownChannelCounterTable: this table provides statistical data for attached downstream channels, which is good input for load usage calculations ๐งฎ
docsIfCmtsUpChannelCounterTable: this table provides statistical data for attached upstream channels, which is also good input for load usage calculations ๐งฎ
3.2.4. Relationship to the Interfaces MIB Module ๐ซง
This section explains how this MIB module relates to the Interfaces MIB [RFC2863]. Several areas of overlap are covered in the subsections below. If you want the general intent behind those areas, the implementer is pointed to the Interfaces MIB document ๐
3.2.4.1. Layering Model ๐ฅ
An instance of ifEntry exists for each RF downstream interface, for each RF upstream interface, for each upstream logical Channel, and for each RF MAC layer ๐
The ifStackTable [RFC2863] MUST be implemented to identify the relationships among sub-interfaces. This one's a must, bestie ๐จ
Here's an example of a CMTS MAC interface with one downstream and two upstream interfaces ๐
| <== to network layer
+------------------ --+-------------------------------+
| RF MAC |
+--+------------------+------------------------+------+
| | |
+-------+-----+ +------+------+ +------+------+
| Downstream1 | | Upstream1 | | Upstream2 |
| | | | | |
+-------------+ ++-----------++ ++-----------++
| | | |
+----+----+ +----+----+ +----+----+ +----+----+
| Ch-1 | | Ch-2 | | Ch-1 | | Ch-2 |
|(A/TDMA) | |(S-CDMA) | |(A/TDMA) | |(S-CDMA) |
+---------+ +---------+ +---------+ +---------+
Figure 1
So as you can see, the RF MAC interface sits on top of the downstream and upstream interfaces, and the RF upstream interface sits on top of an upstream logical channel. Layers stacked like a cute little parfait ๐ฐ
In this example, the index values could be assigned like this:
ifIndex ifType Description
2 docsCableMaclayer(127) CATV MAC Layer
3 docsCableDownstream(128) CATV Downstream interface
4 docsCableUpstream(129) CATV Upstream interface
5 docsCableUpstream(129) CATV Upstream interface
6 docsCableUpstreamChannel(205) CATV Upstream Channel
7 docsCableUpstreamChannel(205) CATV Upstream Channel
8 docsCableUpstreamChannel(205) CATV Upstream Channel
9 docsCableUpstreamChannel(205) CATV Upstream Channel
Figure 2
The matching ifStack entries would then be:
| IfStackHigherLayer | ifStackLowerLayer |
| 0 | 2 |
| 2 | 3 |
| 2 | 4 |
| 2 | 5 |
| 4 | 6 |
| 4 | 7 |
| 5 | 8 |
| 5 | 9 |
| 3 | 0 |
| 6 | 0 |
| 7 | 0 |
| 8 | 0 |
| 9 | 0 |
Figure 3
The same interface model also works for Telephony or Telco Return systems ๐ A pure Telco Return system (Cable Modem, as well as Cable Modem Termination System) wouldn't have upstream cable channels, only downstream cable channels. Systems that support both Telco Return and cable upstream channels can use the model above without any changes โจ
Telco Return upstream channel(s) management is outside the scope of this document ๐ โโ๏ธ
3.2.4.2. Virtual Circuits ๐ซ
This medium doesn't support virtual circuits, so this area doesn't apply to this MIB module. Not every feature is for everyone ๐
3.2.4.3. ifTestTable ๐งช
The ifTestTable is optional for DOCSIS CM/CMTS implementations, but it isn't specifically influenced by the RF MIB ๐คทโโ๏ธ
3.2.4.4. ifRcvAddressTable ๐ฌ
The ifRcvAddressTable is optional for DOCSIS CM/CMTS implementations, but it isn't specifically influenced by the RF MIB either ๐
3.2.4.5. ifEntry ๐ชช
This section only documents the differences from the requirements in the Interfaces MIB module. Go check that MIB module for any columns left out of the descriptions below ๐
3.2.4.5.1. ifEntry for Downstream Interfaces ๐
The ifEntry for downstream interfaces supports the ifGeneralInformationGroup and the ifPacketGroup of the Interfaces MIB module. It's an output-only interface at the CMTS, so all input status counters (ifIn*) will return zero. It's an input-only interface at the CM, so all output status counters (ifOut*) will return zero ๐ซ
3.2.4.5.1.1. ifEntry for Downstream Interfaces in Cable Modem Termination System ๐ฅ
ifTable Comments
============== ===========================================
ifIndex Each CATV Downstream interface is represented
by an ifEntry.
ifType The IANA value of docsCableDownstream(128).
ifSpeed Return the speed of this downstream channel.
The returned value is the raw bandwidth in bits/s
of this interface. This is the symbol rate
multiplied with the number of bits per symbol.
ifHighSpeed Return the speed of this downstream channel.
The returned value is the raw bandwidth in
megabits/s of this interface. This is the symbol
rate multiplied with the number of bits per
symbol.
ifPhysAddress Return the zero-length OCTET STRING.
ifAdminStatus The administrative status of this interface.
ifOperStatus The current operational status of this interface.
ifMtu The size of the largest frame that can be
sent on this interface, specified in octets.
The value includes the length of the MAC header.
ifInOctets
ifHCInOctets Return zero.
ifInUcastPkts
ifHCInUcastPkts Return zero.
ifInMulticastPkts
ifHCInMulticastPkts
Return zero.
ifInBroadcastPkts
ifHCInBroadcastPkts
Return zero.
ifInDiscards Return zero.
ifInErrors Return zero.
ifInUnknownProtos Return zero.
ifOutOctets
ifHCOutOctets The total number of octets transmitted on this
interface. This includes MAC packets as well as
data packets, and includes the length of the MAC
header.
ifOutUcastPkts
ifHCOutUcastPkts The number of unicast packets transmitted on this
interface. This includes MAC packets as well as
data packets.
ifOutMulticastPkts
ifHCOutMulticastPkts
Return the number of multicast packets
transmitted on this interface.
This includes MAC packets as well as data
packets.
ifOutBroadcastPkts
ifHCOutBroadcastPkts
Return the number of broadcast packets transmitted
on this interface. This includes MAC packets as
well as data packets.
ifOutDiscards The total number of outbound packets which
were discarded. Possible reasons are:
buffer shortage.
ifOutErrors The number of packets that could not be
transmitted due to errors.
ifPromiscuousMode Return false.
3.2.4.5.1.2. ifEntry for Downstream Interfaces in Cable Modem โจ
okay so this is the downstream CM table, and it's giving detail ๐ง
ifTable Comments
============== ===========================================
ifIndex Each CATV Downstream interface is represented
by an ifEntry.
ifType The IANA value of docsCableDownstream(128).
ifSpeed Return the speed of this downstream channel.
The returned value the raw bandwidth in bits/s
of this interface. This is the symbol rate
multiplied with the number of bits per symbol.
ifHighSpeed Return the speed of this downstream channel.
The returned value the raw bandwidth in megabits/s
of this interface. This is the symbol rate
multiplied with the number of bits per symbol.
ifPhysAddress Return the zero-length OCTET STRING.
ifAdminStatus The administrative status of this interface.
ifOperStatus The current operational status of this interface.
ifMtu The size of the largest frame that can be
received from this interface, specified in octets.
The value includes the length of the MAC header.
ifInOctets
ifHCInOctets The total number of octets received on this
interface. This includes data packets as well as
MAC packets, and includes the length of the
MAC header.
ifInUcastPkts
ifHCInUcastPkts The number of unicast packets received on this
interface. This includes data packets as well as
MAC packets.
ifInMulticastPkts
ifHCInMulticastPkts
Return the number of multicast packets received
on this interface. This includes data packets as
well as MAC packets.
ifInBroadcastPkts
ifHCInBroadcastPkts
Return the number of broadcast packets received
on this interface. This includes data packets
as well as MAC packets.
ifInDiscards The total number of received packets that have
been discarded.
The possible reasons are: buffer shortage.
ifInErrors The number of inbound packets that contained
errors preventing them from being deliverable
to higher layers.
Possible reasons are: MAC FCS error.
ifInUnknownProtos The number of frames with an unknown packet type.
These are MAC frames with an unknown packet type.
ifOutOctets Return zero.
ifHCOutOctets
ifOutUcastPkts Return zero.
ifHCOutUcastPkts
ifOutMulticastPkts
ifHCOutMulticastPkts
Return zero.
ifOutBroadcastPkts
ifHCOutBroadcastPkts
Return zero.
ifOutDiscards Return zero.
ifOutErrors Return zero.
ifPromiscuousMode Refer to the Interfaces MIB.
3.2.4.5.2. ifEntry for Upstream Interfaces ๐
bestie, every supported interface of the type docsCableUpstream(129) must have its own ifEntry ๐
. The upstream ifEntry supports the ifGeneralInformationGroup and the ifPacketGroup of the Interfaces MIB ๐ฆ. At the CMTS it's input-only, so every ifOut* counter just returns zero ๐. At the CM it's output-only, so every ifIn* counter returns zero ๐.
3.2.4.5.2.1. ifEntry for Upstream Interfaces in Cable Modem Termination System ๐ฅ
ifTable Comments
============== ===========================================
ifIndex Each RF Cable Upstream interface is represented
by an ifEntry.
ifType The IANA value of docsCableUpstream (129).
ifSpeed Return the maximum channel throughput (not payload
throughput) supported by the interface.
The maximum throughput is calculated for the case
where upstream channels are configured to maximize
interface throughput.
ifHighSpeed Return the maximum channel throughput (not payload
throughput) supported by the interface.
The maximum throughput is calculated for the case
where upstream channels are configured to maximize
interface throughput. Units for this object are
(1/1 000 000) * IfSpeed.
ifPhysAddress Return the zero-length OCTET STRING.
ifAdminStatus The administrative status of this interface.
ifOperStatus The current operational status of this interface.
This reflects the total status of all the channels
under this interface. So if at least one channel
has a physical connection this interface has
connection.
ifMtu The size of the largest frame that can be
transmitted on this interface, specified in
octets. The value includes the length of the MAC
header. This is the maximum of all the ifMtu of
all the channels under this interface.
ifInOctets
ifHCInOctets The total (sum) number of octets received on all
the upstream channels under this
interface. This includes data packets as well as
MAC packets, and includes the length of the
MAC header.
ifInUcastPkts
ifHCInUcastPkts The total number of unicast packets received on
all the upstream channels under this
interface. This includes data packets as well as
MAC packets.
ifInMulticastPkts
ifHCInMulticastPkts
Return the total number of multicast packets
received on all the upstream channels under this
interface. This includes data packets as well as
MAC layer packets.
ifInBroadcastPkts
ifHCInBroadcastPkts
Return the total number of broadcast packets
received on all the upstream channels under this
interface. This includes data packets as well as
MAC packets.
ifInDiscards The total number of received packets that have
been discarded on all the upstream channels under
this interface.
The possible reasons are: buffer shortage.
ifInErrors The total number of inbound packets that contained
errors preventing them from being deliverable
to higher layers.
Possible reasons are: MAC FCS error.
ifInUnknownProtos The total number of frames with an unknown packet
type. These are MAC frames with an unknown packet
type.
ifOutOctets Return zero.
ifHCOutOctets
ifOutUcastPkts Return zero.
ifHCOutOctets
ifOutMulticastPkts
ifHCOutMulticastPkts
Return zero.
ifOutBroadcastPkts
ifHCOutBroadcastPkts
Return zero.
ifOutDiscards Return zero.
ifOutErrors Return zero.
3.2.4.5.2.2. ifEntry for Upstream Interfaces in Cable Modem ๐ธ
ifTable Comments
============== ===========================================
ifIndex Each RF Cable Upstream interface is represented
by an ifEntry.
ifType The IANA value of docsCableUpstream (129).
ifSpeed Return the speed of this upstream interface.
The returned value is the raw bandwidth
in bits/s of this interface.
ifHighSpeed Return the speed of this upstream interface.
The returned value is the raw bandwidth
in megabits/s of this interface.
ifPhysAddress Return the zero-length OCTET STRING.
ifAdminStatus The administrative status of this interface.
ifOperStatus The current operational status of this interface.
ifMtu The size of the largest frame that can be
transmitted on this interface, specified in
octets. The value includes the length of the MAC
header.
ifInOctets Return zero.
ifHCInOctets
ifInUcastPkts Return zero.
ifHCInUcastPkts
ifInMulticastPkts
ifHCInMulticastPkts
Return zero.
ifInBroadcastPkts
ifHCInBroadcastPkts
Return zero.
ifInDiscards Return zero.
ifInErrors Return zero.
ifInUnknownProtos Return zero.
ifOutOctets
ifHCOutOctets The total number of octets transmitted on this
interface. This includes MAC packets as well as
data packets, and includes the length of the MAC
header.
ifOutUcastPkts
ifHCOutUcastPkts The number of unicast packets transmitted on this
interface. This includes MAC packets as well as
data packets.
ifOutMulticastPkts
ifHCOutMulticastPkts
Return the number of multicast packets transmitted
on this interface.
This includes MAC packets as well as data packets.
ifOutBroadcastPkts
ifHCOutBroadcastPkts
Return the number of broadcast packets transmitted
on this interface.
This includes MAC packets as well as data packets.
ifOutDiscards The total number of outbound packets that
were discarded. Possible reasons are:
buffer shortage.
ifOutErrors The number of packets that could not be
transmitted due to errors.
ifPromiscuousMode Return false.
3.2.4.5.3. ifEntry for Upstream Channels ๐งโโ๏ธ
every supported channel of the type docsCableUpstreamChannel(205) must have its own ifEntry, no exceptions ๐. The ifEntry for upstream channels supports the ifGeneralInformationGroup and the ifPacketGroup of the Interfaces MIB โญ. At the CMTS it's input-only, so all the ifOut* counters return zero ๐ซถ. DOCSIS CMs are not required to support logical upstream channels ๐.
3.2.4.5.3.1. ifEntry for Upstream Channels in Cable Modem Termination System ๐
okay so this is the ifEntry for the upstream channels on the Cable Modem Termination System (CMTS) side, and honestly it's giving very organized ๐
ifTable Comments
============== ===========================================
ifIndex Each RF Cable Upstream channel is represented
by an ifEntry.
ifType The IANA value of docsCableUpstreamChannel (205).
ifSpeed Return the speed of this upstream channel.
The returned value is the raw bandwidth
in bits/s of this channel.
ifHighSpeed Return the speed of this upstream channel.
The returned value is the raw bandwidth
in megabits/s of this channel.
ifPhysAddress Return the zero-length OCTET STRING.
ifAdminStatus The administrative status of this interface.
ifOperStatus The current operational status of this interface.
ifMtu The size of the largest frame that can be
received on this interface, specified in octets.
The value includes the length of the MAC header.
ifInOctets The total number of octets received on this
interface. This includes data packets as well as
MAC packets, and includes the length of the
MAC header.
ifInUcastPkts
ifHCInUcastPkts
The number of unicast packets received on this
interface. This includes data packets as well as
MAC packets.
ifInMulticastPkts
ifHCInMulticastPkts
Return the number of multicast packets received
on this interface. This includes data packets as
well as MAC layer packets.
ifInBroadcastPkts
ifHCInBroadcastPkts
Return the number of broadcast packets received
on this interface. This includes data packets
as well as MAC packets.
ifInDiscards The total number of received packets that have
been discarded.
The possible reasons are: buffer shortage.
ifInErrors The number of inbound packets that contained
errors preventing them from being deliverable
to higher layers.
Possible reasons are: MAC FCS error.
ifInUnknownProtos The number of frames with an unknown packet type.
These are MAC frames with an unknown packet type.
ifOutOctets Return zero.
ifHCOutOctets
ifOutUcastPkts Return zero.
ifHCOutUcastPkts
ifOutMulticastPkts
ifHCOutMulticastPkts
Return zero.
ifOutBroadcastPkts
ifHCOutBroadcastPkts
Return zero.
ifOutDiscards Return zero.
ifOutErrors Return zero.
3.2.4.5.4. ifEntry for the MAC Layer โจ
so this one is the ifEntry for the MAC Layer, and it's giving ifGeneralInformationGroup and ifPacketGroup from the Interfaces MIB ๐ซถ It basically gives you the big-picture status for the lower level downstream and upstream interfaces underneath it.
ifTable Comments
============== ===========================================
ifIndex Each RF Cable MAC layer entity is represented
by an ifEntry.
ifType The IANA value of docsCableMaclayer(127).
ifSpeed Return zero.
ifPhysAddress Return the physical address of this interface.
ifAdminStatus The administrative status of this interface.
ifOperStatus The current operational status of the MAC
layer interface.
ifHighSpeed Return zero.
ifMtu Return 1500.
ifInOctets
ifHCInOctets The total number of data octets received on this
interface, targeted for upper protocol layers.
ifInUcastPkts
ifHCInUcastPkts The number of unicast packets received on this
interface, targeted for upper protocol layers.
ifInMulticastPkts
ifHCInMulticastPkts
Return the number of multicast packets received
on this interface, targeted for upper protocol
layers.
ifInBroadcastPkts
ifHCInBroadcastPkts
Return the number of broadcast packets received
on this interface, targeted for upper protocol
layers.
ifInDiscards The total number of received packets that have
been discarded.
The possible reasons are: buffer shortage.
ifInErrors The number of inbound packets that contained
errors preventing them from being deliverable
to higher layers.
Possible reasons are: data packet FCS error,
invalid MAC header.
ifInUnknownProtos The number of frames with an unknown packet type.
This is the number of data packets targeted for
upper protocol layers with an unknown packet type.
ifOutOctets The total number of octets, received from upper
ifHCOutOctets protocol layers and transmitted on this interface.
ifOutUcastPkts
ifHCOutUcastPkts The number of unicast packets, received from upper
protocol layers and transmitted on this interface.
ifOutMulticastPkts
ifHCOutMulticastPkts
Return the number of multicast packets received
from upper protocol layers and transmitted on this
interface.
ifOutBroadcastPkts
ifHCOutBroadcastPkts
Return the number of broadcast packets received
from upper protocol layers and transmitted on this
interface.
ifOutDiscards The total number of outbound packets that
were discarded. Possible reasons are:
buffer shortage.
ifOutErrors The number of packets that could not be
transmitted due to errors.
ifPromiscuousMode Refer to the Interfaces MIB.
3.2.5. Offline Upstream Parameters Handling ๐ธ
3.2.5.1. Overview ๐ฆ
this section is all about offline configuration of the DOCSIS 2.0 upstream logical interface parameters ๐ง the whole point is to make sure things like modulation profile, channel type, mini-slot size, and SCDMA attributes all line up before you commit changes to an active upstream logical interface. that way the upstream interface has way less downtime, because there are fewer SNMP SET operations hitting in-service upstream interfaces. this mechanism is supported by CMTSs and is not applicable to CMs, so CMs can skip this one, bestie ๐
3.2.5.2. Operation ๐
this mechanism uses three upstream channel MIB objects that are defined for DOCSIS 2.0 CMTS implementations:
docsIfUpChannelStatus is the RowStatus object for creating temporary interfaces in the upstream interface table. a temporary entry is used to modify, validate, and commit upstream parameters of a physical interface. on the CMTS, a physical upstream interface refers to an upstream logical channel interface.
docsIfUpChannelCloneFrom is the object that links a physical interface to a temporary interface, so the upstream parameters of the physical interface can get updated ๐ฅ
docsIfUpChannelUpdate is the commit object. it transfers the validated upstream parameters from the temporary interface over to the physical interface ๐
okay so here's how the offline upstream parameters handling goes, step by step:
- first, a temporary interface gets created where
docsIfUpChannelStatusis set to'createAndWait', which turns the new create entry status to'notReady'. - next, you SET
docsIfUpChannelCloneFromin the temporary interface to the physical interface's ifIndex value, and that does two things:- it creates the association of the physical interface to the temporary interface.
- it copies the original upstream parameters from the physical interface to the temporary interface, which turns its status to
'notInService'.
- then the operator modifies the temporary interface parameters to the values they want ๐
- now comes the moment of truth! a SET to
'active'on the RowStatus of the temporary interface works if all the parameters in the temporary interface are valid for the associated physical interface. if they aren't, the temporary entry stays with status'notInservice', and the SET returns the error'commitFailed'๐ญ - once the temporary interface status is
'active', a SET todocsIfUpChannelUpdateto'true'transfers the temporary interface parameter values to the physical interface. - after all the update operations are done, the temporary interface gets destroyed by setting
docsIfUpChannelStatusto'destroy'๐ง
3.2.5.3. Relation of docsIfUpChannelStatus and ifMib ๐
the main purpose of docsIfUpChannelStatus is creating temporary interfaces for offline handling of physical interface configuration. it does not manage the creation or control of physical interfaces. to keep the operation and status reports of interfaces consistent, this object also does not manage the administrative and operational status of physical interfaces. no overreach, iykyk ๐
4. Definitions ๐
okay, now we get into the actual MIB module, and it's the good stuff ๐คฉ
DOCS-IF-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-TYPE,
Unsigned32,
Integer32,
Counter32,
Counter64,
TimeTicks,
IpAddress,
transmission
FROM SNMPv2-SMI -- [RFC2578]
TEXTUAL-CONVENTION,
MacAddress,
RowStatus,
TruthValue,
TimeInterval,
TimeStamp,
StorageType
FROM SNMPv2-TC -- [RFC2579]
OBJECT-GROUP,
MODULE-COMPLIANCE
FROM SNMPv2-CONF -- [RFC2580]
ifIndex, InterfaceIndexOrZero
FROM IF-MIB -- [RFC2863]
InetAddressType,
InetAddress
FROM INET-ADDRESS-MIB -- [RFC4001]
IANAifType
FROM IANAifType-MIB; -- [IANA]
docsIfMib MODULE-IDENTITY
LAST-UPDATED "200605240000Z" -- May 24, 2006
ORGANIZATION "IETF IPCDN Working Group"
CONTACT-INFO
" David Raftus
Postal: ATI Technologies Inc.
340 Terry Fox Drive, Suite 202
Ottawa Ontario
Canada
Phone: +1 613 592 1052 ext.222
E-mail: david.raftus@ati.com
Eduardo Cardona
Postal: Cable Television Laboratories, Inc.
858 Coal Creek Circle
Louisville, CO 80027-9750
U.S.A.
Phone: Tel: +1 303 661 9100
Fax: +1 303 661 9199
E-mail: e.cardona@cablelabs.com;mibs@cablelabs.com
IETF IPCDN Working Group
General Discussion: ipcdn@ietf.org
Subscribe: http://www.ietf.org/mailman/listinfo/ipcdn
Archive: ftp://ftp.ietf.org/ietf-mail-archive/ipcdn
Co-chairs: Richard Woundy, Richard_Woundy@cable.comcast.com
Jean-Francois Mule, jf.mule@cablelabs.com"
DESCRIPTION
"This is the MIB Module for DOCSIS 2.0-compliant Radio
Frequency (RF) interfaces in Cable Modems and
Cable Modem Termination Systems.
Copyright (C) The Internet Society (2006). This
version of this MIB module is part of RFC 4546; see
the RFC itself for full legal notices."
okay bestie, we're picking up right at the revision history ๐ The MIB module keeps a little changelog so you can see what's new each time it's updated ๐
REVISION "200605240000Z"
DESCRIPTION
"Revision of the IETF RF MIB module for DOCSIS 2.0.
This version published as RFC 4546.
This MIB module revision includes the following
among others:
Usage of ifType (205) for upstream logical channels.
Addition of downstream and upstream utilization
counters.
Additional statistics per upstream interface.
Upstream channel offline configuration mechanism.
Added MIB support for new DOCSIS 2.0 modulation
attributes.
Euro-DOCSIS downstream interleave values.
Adjustments to RFC 2670 definitions based on
the MIB review guidelines from the IETF
Operations and Management Area (OPS)."
REVISION "199908190000Z"
DESCRIPTION
"Initial version, published as RFC 2670.
Modified by Mike St. Johns to fix problems identified by
the first pass of the MIB doctor. Of special note,
docsIfRangingResp and docsIfCmtsInsertionInterval were
obsoleted and replaced by other objects with the same
functionality, but with more appropriate syntax."
::= { transmission 127 }
the 2006 revision is giving major glow-up energy โจ It adds DOCSIS 2.0 stuff, utilization counters, and that offline upstream config mechanism we already talked about ๐ฆ The 1999 one was the original RFC 2670 era, and the OPS folks were like "ok but fix your syntax" ๐
Next up are the textual conventions, which are basically custom data types that make the objects easier to read ๐ง
-- Textual Conventions
TenthdBmV ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d-1"
STATUS current
DESCRIPTION
"This data type represents power levels that are normally
expressed in dBmV. Units are in tenths of a dBmV;
for example, 5.1 dBmV will be represented as 51."
SYNTAX Integer32
TenthdB ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d-1"
STATUS current
DESCRIPTION
"This data type represents power levels that are normally
expressed in dB. Units are in tenths of a dB;
for example, 5.1 dB will be represented as 51."
SYNTAX Integer32
DocsisVersion ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Indicates the DOCSIS Radio Frequency specification being
referenced.
'docsis10' indicates DOCSIS 1.0.
'docsis11' indicates DOCSIS 1.1.
'docsis20' indicates DOCSIS 2.0."
SYNTAX INTEGER {
docsis10 (1),
docsis11 (2),
docsis20 (3)
}
DocsisQosVersion ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Indicates the referenced quality-of-service
level.
'docsis10 refers to DOCSIS 1.0 Class of
Service queuing services, and 'docsis11' refers
to DOCSIS 1.1 Quality of Service."
SYNTAX INTEGER {
docsis10 (1),
docsis11 (2)
}
DocsisUpstreamType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Indicates the DOCSIS Upstream Channel Type.
'unknown' means information not available.
'tdma' is related to TDMA, Time Division
Multiple Access; 'atdma' is related to A-TDMA,
Advanced Time Division Multiple Access,
'scdma' is related to S-CDMA, Synchronous
Code Division Multiple Access.
'tdmaAndAtdma is related to simultaneous support of
TDMA and A-TDMA modes."
SYNTAX INTEGER {
unknown(0),
tdma(1),
atdma(2),
scdma(3),
tdmaAndAtdma(4)
}
DocsEqualizerData ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"This data type represents the equalizer data
as measured at the receiver interface.
The format of the equalizer follows the structure of the
Transmit Equalization Adjust RNG-RSP TLV of DOCSIS RFI
v2.0 :
1 byte Main tap location 1..(n + m)
1 byte Number of forward taps per symbol
1 byte Number of forward taps: n
1 byte Number of reverse taps: m
Following are the equalizer coefficients:
First, forward taps coefficients:
2 bytes F1 (real), 2 bytes F1 (imag)
...
2 bytes Fn (real), 2 bytes Fn (imag)
Then, reverse taps coefficients:
2 bytes D1 (real), 2 bytes D1 (imag)
...
2 bytes Dm (real), 2 bytes Dm (imag)
The equalizer coefficients are considered signed 16-bit
integers in the range from -32768 (0x8000) to 32767
(0x7FFF).
DOCSIS specifications require up to a maximum of
64 equalizer taps (n + m); therefore, this object size
can get up 260 bytes (4 + 4x64).
The minimum object size (other than zero) for a t-spaced
tap with a minimum of 8 symbols will be 36 (4 + 4x8)."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Figure 8-23."
SYNTAX OCTET STRING(SIZE (0 | 36..260))
the DocsEqualizerData one is lowkey a whole vibe ๐ธ It's basically a packed byte blob that mirrors the Transmit Equalization Adjust RNG-RSP TLV, with signed 16-bit coefficients and up to 64 taps. Ngl the math (4 + 4x64 = 260) is so satisfying ๐ค
Now we get the object tree. Think of it like folders inside folders ๐
docsIfMibObjects OBJECT IDENTIFIER ::= { docsIfMib 1 }
docsIfBaseObjects OBJECT IDENTIFIER ::= { docsIfMibObjects 1 }
docsIfCmObjects OBJECT IDENTIFIER ::= { docsIfMibObjects 2 }
docsIfCmtsObjects OBJECT IDENTIFIER ::= { docsIfMibObjects 3 }
--
-- BASE GROUP
--
--
-- The following table is implemented on both the Cable Modem
-- and the Cable Modem Termination System. This table is
-- read only for the CM.
--
docsIfDownstreamChannelTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfDownstreamChannelEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table describes the attributes of downstream
channels (frequency bands)."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-16, and 6-17."
::= { docsIfBaseObjects 1 }
docsIfDownstreamChannelEntry OBJECT-TYPE
SYNTAX DocsIfDownstreamChannelEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry provides a list of attributes for a single
downstream channel.
An entry in this table exists for each ifEntry with an
ifType of docsCableDownstream(128)."
INDEX { ifIndex }
::= { docsIfDownstreamChannelTable 1 }
DocsIfDownstreamChannelEntry ::= SEQUENCE {
docsIfDownChannelId Integer32,
docsIfDownChannelFrequency Integer32,
docsIfDownChannelWidth Integer32,
docsIfDownChannelModulation INTEGER,
docsIfDownChannelInterleave INTEGER,
docsIfDownChannelPower TenthdBmV,
docsIfDownChannelAnnex INTEGER,
docsIfDownChannelStorageType StorageType
}
docsIfDownChannelId OBJECT-TYPE
SYNTAX Integer32 (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Cable Modem Termination System identification of the
downstream channel within this particular MAC interface.
if the interface is down, the object returns the most
current value. If the downstream channel ID is unknown,
this object returns a value of 0."
::= { docsIfDownstreamChannelEntry 1 }
docsIfDownChannelFrequency OBJECT-TYPE
SYNTAX Integer32 (0..1000000000)
UNITS "hertz"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The center of the downstream frequency associated with
this channel. This object will return the current tuner
frequency. If a CMTS provides IF output, this object
will return 0, unless this CMTS is in control of the
final downstream frequency. See the associated
compliance object for a description of valid frequencies
that may be written to this object."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.3.3."
::= { docsIfDownstreamChannelEntry 2 }
docsIfDownChannelWidth OBJECT-TYPE
SYNTAX Integer32 (0..16000000)
UNITS "hertz"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The bandwidth of this downstream channel. Most
implementations are expected to support a channel width
of 6 MHz (North America) and/or 8 MHz (Europe). See the
associated compliance object for a description of the
valid channel widths for this object."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 6-17."
::= { docsIfDownstreamChannelEntry 3 }
docsIfDownChannelModulation OBJECT-TYPE
SYNTAX INTEGER {
unknown(1),
other(2),
qam64(3),
qam256(4)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The modulation type associated with this downstream
channel. If the interface is down, this object either
returns the configured value (CMTS), the most current
value (CM), or the value of unknown(1). See the
associated conformance object for write conditions and
limitations. See the reference for specifics on the
modulation profiles implied by qam64 and qam256."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 6-17."
::= { docsIfDownstreamChannelEntry 4 }
docsIfDownChannelInterleave OBJECT-TYPE
SYNTAX INTEGER {
unknown(1),
other(2),
taps8Increment16(3),
taps16Increment8(4),
taps32Increment4(5),
taps64Increment2(6),
taps128Increment1(7),
taps12increment17(8)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The Forward Error Correction (FEC) interleaving used
for this downstream channel.
Values are defined as follows:
taps8Increment16(3): protection 5.9/4.1 usec,
latency .22/.15 msec
taps16Increment8(4): protection 12/8.2 usec,
latency .48/.33 msec
taps32Increment4(5): protection 24/16 usec,
latency .98/.68 msec
taps64Increment2(6): protection 47/33 usec,
latency 2/1.4 msec
taps128Increment1(7): protection 95/66 usec,
latency 4/2.8 msec
taps12increment17(8): protection 18/14 usec,
latency 0.43/0.32 msec
The value 'taps12increment17' is supported by EuroDOCSIS
cable systems only, and the others by DOCSIS cable systems.
so the downstream channel table is the star of the show ๐ฆ It's got one row per downstream channel (each ifEntry with ifType docsCableDownstream(128)), indexed by ifIndex ๐ The Interleave object is where the FEC magic lives, with protection and latency numbers for each setting ๐ฅ Also, taps12increment17 is the EuroDOCSIS-only one, so the rest are for regular DOCSIS cable systems ๐
and the way the object tree is nested is giving organized queen ๐ Everything hangs off docsIfMib, so you always know where you are ๐ง
Okay so the MIB bit is up next, and it's giving a lot of tables ๐ ๐
If the interface is down, this object either returns
the configured value (CMTS), the most current value (CM),
or the value of unknown(1).
The value of other(2) is returned if the interleave
is known but not defined in the above list.
See the associated conformance object for write
conditions and limitations. See the reference for the FEC
configuration described by the setting of this object."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 6-15."
::= { docsIfDownstreamChannelEntry 5 }
docsIfDownChannelPower OBJECT-TYPE
SYNTAX TenthdBmV
UNITS "dBmV"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"At the CMTS, the operational transmit power. At the CM,
the received power level.
If the interface is down, this object either returns
the configured value (CMTS), the most current value (CM)
or the value of 0. See the associated conformance object
for write conditions and limitations. See the reference
for recommended and required power levels."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-16, 6-17."
::= { docsIfDownstreamChannelEntry 6 }
docsIfDownChannelAnnex OBJECT-TYPE
SYNTAX INTEGER {
unknown(1),
other(2),
annexA(3),
annexB(4),
annexC(5)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of this object indicates the conformance of
the implementation to important regional cable standards.
annexA : Annex A from ITU-T J.83 is used.
(equivalent to EN 300 429)
annexB : Annex B from ITU-T J.83 is used.
annexC : Annex C from ITU-T J.83 is used."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Sections 6.3.1, and H.3.1."
::= { docsIfDownstreamChannelEntry 7 }
docsIfDownChannelStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The storage type for this conceptual row.
Entries with this object set to permanent(4)
do not require write operations for read-write
objects."
::= { docsIfDownstreamChannelEntry 8 }
--
-- The following table is implemented on both the CM and the CMTS.
-- For the CM, only attached channels appear in the table. For the
-- CM, this table is read-only as well.
--
docsIfUpstreamChannelTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfUpstreamChannelEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table describes the attributes of attached upstream
channels."
::= { docsIfBaseObjects 2 }
docsIfUpstreamChannelEntry OBJECT-TYPE
SYNTAX DocsIfUpstreamChannelEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"List of attributes for a single upstream channel. For
DOCSIS 2.0 CMTSs, an entry in this table exists for
each ifEntry with an ifType of docsCableUpstreamChannel
(205).
For DOCSIS 1.x CM/CMTSs and DOCSIS 2.0 CMs, an entry in
this table exists for each ifEntry with an ifType of
docsCableUpstream (129).
For DOCSIS 2.0 CMTSs, two classes of interfaces can be
defined for this table:
o Upstream Physical Interfaces: The traditional DOCSIS
1.x CMTS upstream interface ifType 129 and the DOCSIS
2.0 ifType 205 that are functional. In other words,
interfaces that represent upstream receivers within
an RF MAC interface.
Entries of physical interfaces are exposed to the
management interface with their corresponding
ifStack hierarchy and are not administratively
created by this table.
o Upstream Temporary Interfaces: A fictitious
interface created for the purpose of manipulating
physical interface parameters offline, then
validating prior to updating the target physical
interface.
In case of a reinitialization of the managed system,
physical interfaces values persist while the temporary
interfaces are not recreated.
This mechanism helps to minimize service disruptions
originating in situations where a group of interface
parameter values need to be consistent with each other
in SET operations. A temporary buffer
(temporary interface) is provided to allow the CMTS
to validate the parameters offline."
INDEX { ifIndex }
::= { docsIfUpstreamChannelTable 1 }
DocsIfUpstreamChannelEntry ::= SEQUENCE {
docsIfUpChannelId Integer32,
docsIfUpChannelFrequency Integer32,
docsIfUpChannelWidth Integer32,
docsIfUpChannelModulationProfile Unsigned32,
docsIfUpChannelSlotSize Unsigned32,
docsIfUpChannelTxTimingOffset Unsigned32,
docsIfUpChannelRangingBackoffStart Integer32,
docsIfUpChannelRangingBackoffEnd Integer32,
docsIfUpChannelTxBackoffStart Integer32,
docsIfUpChannelTxBackoffEnd Integer32,
docsIfUpChannelScdmaActiveCodes Unsigned32,
docsIfUpChannelScdmaCodesPerSlot Integer32,
docsIfUpChannelScdmaFrameSize Unsigned32,
docsIfUpChannelScdmaHoppingSeed Unsigned32,
docsIfUpChannelType DocsisUpstreamType,
docsIfUpChannelCloneFrom InterfaceIndexOrZero,
docsIfUpChannelUpdate TruthValue,
docsIfUpChannelStatus RowStatus,
docsIfUpChannelPreEqEnable TruthValue
}
docsIfUpChannelId OBJECT-TYPE
SYNTAX Integer32 (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The CMTS identification of the upstream channel."
::= { docsIfUpstreamChannelEntry 1 }
docsIfUpChannelFrequency OBJECT-TYPE
SYNTAX Integer32 (0..1000000000)
UNITS "hertz"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The center of the frequency band associated with this
upstream interface. This object returns 0 if the frequency
is undefined or unknown. Minimum permitted upstream
frequency is 5,000,000 Hz for current technology. See
the associated conformance object for write conditions
and limitations."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 4-2."
::= { docsIfUpstreamChannelEntry 2 }
docsIfUpChannelWidth OBJECT-TYPE
SYNTAX Integer32 (0..64000000)
UNITS "hertz"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The bandwidth of this upstream interface. This object
returns 0 if the interface width is undefined or unknown.
Minimum permitted interface width is currently 200,000 Hz.
See the associated conformance object for write conditions
and limitations."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 6-5."
::= { docsIfUpstreamChannelEntry 3 }
docsIfUpChannelModulationProfile OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"An entry identical to the docsIfModIndex in the
docsIfCmtsModulationTable that describes this channel.
This channel is further instantiated there by a grouping
of interval usage codes (IUCs) that, together, fully
describe the channel modulation. This object returns 0 if
the docsIfCmtsModulationTable entry does not exist or is
empty. See the associated conformance object for write
conditions and limitations.
Setting this object returns an 'inconsistentValue'
error if the following conditions are not satisfied:
1. All the IUC entries in the selected modulation profile
MUST have the same value of docsIfCmtsModChannelType.
2. All of the Modulation parameters in the selected
modulation profile MUST be consistent with the other
parameters in this docsIfUpstreamChannelEntry."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 8-19."
::= { docsIfUpstreamChannelEntry 4 }
docsIfUpChannelSlotSize OBJECT-TYPE
SYNTAX Unsigned32
UNITS "ticks"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Applicable to TDMA and ATDMA channel types only.
The number of 6.25 microsecond ticks in each upstream
mini-slot. Returns zero if the value is undefined or
unknown or in case of an SCDMA channel.
See the associated conformance object for write
conditions and limitations."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.1.2.4."
::= { docsIfUpstreamChannelEntry 5 }
docsIfUpChannelTxTimingOffset OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"At the CM, a measure of the current round trip time
obtained from the ranging offset (initial ranging offset +
ranging offset adjustments).
At the CMTS, the maximum of timing offset, among all the
CMs that are/were present on the channel, taking into
account all ( initial + periodic ) timing offset
corrections that were sent for each of the CMs. Generally,
these measurements are positive, but if the measurements
are negative, the value of this object is zero. Used for
timing of CM upstream transmissions to ensure synchronized
arrivals at the CMTS.
Units are one 64th fraction of 6.25 microseconds."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.19."
::= { docsIfUpstreamChannelEntry 6 }
That's the whole chunk, bestie ๐ฆ Next up are the ranging and backoff objects, so stay tuned โจ
These next objects are all about backoff windows, SCDMA knobs, and the clone-and-commit dance for upstream channels ๐ฆ
docsIfUpChannelRangingBackoffStart OBJECT-TYPE
SYNTAX Integer32 (0..16)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The initial random backoff window to use when retrying
Ranging Requests. Expressed as a power of 2. A value of
16 at the CMTS indicates that a proprietary adaptive retry
mechanism is to be used. See the associated conformance
object for write conditions and limitations."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Sections 8.3.4, and 9.4."
::= { docsIfUpstreamChannelEntry 7 }
docsIfUpChannelRangingBackoffEnd OBJECT-TYPE
SYNTAX Integer32 (0..16)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The final random backoff window to use when retrying
Ranging Requests. Expressed as a power of 2. A value of
16 at the CMTS indicates that a proprietary adaptive retry
mechanism is to be used. See the associated conformance
object for write conditions and limitations."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.4, and 9.4."
::= { docsIfUpstreamChannelEntry 8 }
docsIfUpChannelTxBackoffStart OBJECT-TYPE
SYNTAX Integer32 (0..16)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The initial random backoff window to use when retrying
transmissions. Expressed as a power of 2. A value of 16
at the CMTS indicates that a proprietary adaptive retry
mechanism is to be used. See the associated conformance
object for write conditions and limitations."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.4, and 9.4."
::= { docsIfUpstreamChannelEntry 9 }
docsIfUpChannelTxBackoffEnd OBJECT-TYPE
SYNTAX Integer32 (0..16)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The final random backoff window to use when retrying
transmissions. Expressed as a power of 2. A value of 16
at the CMTS indicates that a proprietary adaptive retry
mechanism is to be used. See the associated conformance
object for write conditions and limitations."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.4, and 9.4."
::= { docsIfUpstreamChannelEntry 10 }
docsIfUpChannelScdmaActiveCodes OBJECT-TYPE
SYNTAX Unsigned32 (0|64..66|68..70|72|74..78|80..82|84..88
|90..96|98..100|102|104..106|108
|110..112|114..126|128)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Applicable for SCDMA channel types only.
Number of active codes. Returns zero for
Non-SCDMA channel types. Note that legal
values from 64..128 MUST be non-prime."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.11.2.1."
::= { docsIfUpstreamChannelEntry 11 }
docsIfUpChannelScdmaCodesPerSlot OBJECT-TYPE
SYNTAX Integer32(0 | 2..32)
UNITS "codesperMinislots"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Applicable for SCDMA channel types only.
The number of SCDMA codes per mini-slot.
Returns zero if the value is undefined or unknown or in
case of a TDMA or ATDMA channel."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.11.2.1."
::= { docsIfUpstreamChannelEntry 12 }
docsIfUpChannelScdmaFrameSize OBJECT-TYPE
SYNTAX Unsigned32 (0..32)
UNITS "spreadIntervals"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Applicable for SCDMA channel types only.
SCDMA Frame size in units of spreading intervals.
This value returns zero for non-SCDMA Profiles."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.12."
::= { docsIfUpstreamChannelEntry 13 }
docsIfUpChannelScdmaHoppingSeed OBJECT-TYPE
SYNTAX Unsigned32 (0..32767)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Applicable for SCDMA channel types only.
15-bit seed used for code hopping sequence initialization.
Returns zero for non-SCDMA channel types.
Setting this value to a value different than zero for
non-SCDMA channel types returns the error 'wrongValue'."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.14.1."
::= { docsIfUpstreamChannelEntry 14 }
docsIfUpChannelType OBJECT-TYPE
SYNTAX DocsisUpstreamType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Reflects the Upstream channel type.
This object returns the value of docsIfCmtsModChannelType
for the modulation profile selected in
docsIfUpChannelModulationProfile for this row."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.1."
::= { docsIfUpstreamChannelEntry 15 }
docsIfUpChannelCloneFrom OBJECT-TYPE
SYNTAX InterfaceIndexOrZero
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This object contains the ifIndex value of the physical
interface row entry whose parameters are to be adjusted.
Upon setting this object to the ifIndex value of a
physical interface, the following interface objects values
are copied to this entry:
docsIfUpChannelFrequency,
docsIfUpChannelWidth,
docsIfUpChannelModulationProfile,
docsIfUpChannelSlotSize,
docsIfUpChannelRangingBackoffStart,
docsIfUpChannelRangingBackoffEnd,
docsIfUpChannelTxBackoffStart,
docsIfUpChannelTxBackoffEnd,
docsIfUpChannelScdmaActiveCodes,
docsIfUpChannelScdmaCodesPerSlot,
docsIfUpChannelScdmaFrameSize,
docsIfUpChannelScdmaHoppingSeed,
docsIfUpChannelType, and
docsIfUpChannelPreEqEnable
Setting this object to the value of a non-existent or
a temporary upstream interface returns the error
'wrongValue'.
This object MUST contain a value of zero for physical
interfaces entries.
Setting this object in row entries that correspond to
physical interfaces returns the error 'wrongValue'."
::= { docsIfUpstreamChannelEntry 16 }
docsIfUpChannelUpdate OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Used to perform the copy of adjusted parameters from the
temporary interface entry to the physical interface
indicated by the docsIfUpChannelCloneFrom object. The
transfer is initiated through an SNMP SET to 'true' of
this object.
A SET to 'true' fails and returns error 'commitFailed'
if docsIfUpChannelStatus value is 'notInService', which
means that the interface parameters values are not
compatible with each other or have not been validated yet.
Reading this object always returns 'false'."
::= { docsIfUpstreamChannelEntry 17 }
docsIfUpChannelStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This object is only used for the creation of a temporary
upstream row with the purpose of updating the parameters
of a physical upstream channel entry.
The following restrictions apply to this object:
1. This object is not writable for physical interfaces.
2. Temporary interface entries are only created by a SET
of this object to createandWait(5).
3. ifAdminStatus from the Interface MIB RFC 2863 is used
to take a physical upstream channel offline, to be
consistent with DOCSIS 1.x operation, as indicated in
RFC 2670.
In addition,
o ifAdminStatus 'down' is reflected in this object
as 'notInService'.
o ifOperStatus 'down' while ifAdminStatus 'up' is
reflected in this object as 'notInservice'.
4. Temporary created rows MUST be set to 'active' with
the purpose of validating upstream parameter
consistency prior to transferring the parameters to the
physical interface.
Below is a mandatory procedure for adjusting the values
of a physical interface:
1. Create a temporary interface entry through an SNMP SET
using 'createAndWait'. At this point, the RowStatus
reports 'notReady'.
The Manager entity uses an ifIndex value outside the
operational range of the physical interfaces for the
creation of a temporary interface.
2. Set the docsIfUpChannelCloneFrom object to the ifIndex
value of the physical row to update. Now
docsIfUpChannelStatus reports 'notInService'.
3. Change the upstream parameters to the desired values
in the temporary row.
4. Validate that all parameters are consistent by setting
docsIfUpChannelStatus to 'active'. A failure to set the
RowStatus to 'active' returns the error 'commitFailed',
which means the parameters are not compatible with the
target physical interface.
5. With docsIfUpChannelStatus 'active', transfer the
parameters to the target physical interface by setting
the object docsIfUpChannelUpdate to 'true'.
6. Delete the temporary row by setting
docsIfUpChannelStatus to 'destroy'."
::= { docsIfUpstreamChannelEntry 18 }
Okay bestie, we're still in 4. Definitions ๐ and this part is all about the QoS and signal quality tables. First up is docsIfUpChannelPreEqEnable ๐ฆ. At the CMTS you can switch pre-equalization on or off for an upstream channel, but at the CM it's read-only and just mirrors what the RNG-RSP says. The CM counts pre-equalization as enabled once it has received an RNG-RSP with pre-equalization data at least once since the last MAC reinitialization. The vibe is "check the RNG-RSP receipt, babe" ๐
docsIfUpChannelPreEqEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"At the CMTS, this object is used to enable or disable
pre-equalization on the upstream channel represented by
this table instance. At the CM, this object is read-only
and reflects the status of pre-equalization as represented
in the RNG-RSP. Pre-equalization is considered enabled at
the CM if a RNG-RSP with pre-equalization data has been
received at least once since the last mac
reinitialization."
DEFVAL {false}
::= { docsIfUpstreamChannelEntry 19 }
Next is a little note block explaining the QoS profile table ๐. It's implemented at both the CM and the CMTS, and the CM only needs entries for the classes of service its docsIfCmServiceTable points to. The whole table exists so docsIfServiceTable doesn't have to repeat itself, which is honestly so smart โจ
-- The following table describes the attributes of each class of
-- service. The entries in this table are referenced from the
-- docsIfServiceEntries. They exist as a separate table in order to
-- reduce redundant information in docsIfServiceTable.
--
-- This table is implemented at both the CM and the CMTS.
-- The CM need only maintain entries for the classes of service
-- referenced by its docsIfCmServiceTable.
--
Now the table itself ๐ It's a SEQUENCE OF entries, and it's not-accessible, which means you go through the entries and not the table directly.
docsIfQosProfileTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfQosProfileEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes the attributes for each class of service."
::= { docsIfBaseObjects 3 }
Now the entry object ๐ This is where the drama is. Entries can be created by the CMTS if the table is read-create, controlled by docsIfCmtsQosProfilePermissions. If the table is read-only, entries get made from REG-REQ MAC messages at the CMTS, or from the TFTP option file at the CM. At the CMTS, read-only entries get cleaned up when docsIfCmtsServiceTable stops referencing them. Entries can't be removed while something references them, and that's the big rule. Entries also SHOULD NOT be changed while docsIfCmtsServiceTable is using them. If the table is created automatically, there should only be one entry per Class of Service, and duplicate entries with the same parameters are NOT RECOMMENDED. Trust me, this part is serious ๐ซถ
docsIfQosProfileEntry OBJECT-TYPE
SYNTAX DocsIfQosProfileEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes the attributes for a single class of service.
If implemented as read-create in the Cable Modem
Termination System, creation of entries in this table is
controlled by the value of
docsIfCmtsQosProfilePermissions.
If implemented as read-only, entries are created based
on information in REG-REQ MAC messages received from
cable modems (for Cable Modem Termination System), or
based on information extracted from the TFTP option file
(for Cable Modem).
In the Cable Modem Termination System, read-only entries
are removed if no longer referenced by
docsIfCmtsServiceTable.
An entry in this table MUST not be removed while it is
referenced by an entry in docsIfCmServiceTable (Cable
Modem) or docsIfCmtsServiceTable (Cable Modem Termination
System).
An entry in this table SHOULD NOT be changeable while
it is referenced by an entry in docsIfCmtsServiceTable.
If this table is created automatically, there SHOULD only
be a single entry for each Class of Service. Multiple
entries with the same Class of Service parameters are NOT
RECOMMENDED."
INDEX { docsIfQosProfIndex }
::= { docsIfQosProfileTable 1 }
Next is the SEQUENCE that lists every column in the entry ๐
DocsIfQosProfileEntry ::= SEQUENCE {
docsIfQosProfIndex Integer32,
docsIfQosProfPriority Integer32,
docsIfQosProfMaxUpBandwidth Integer32,
docsIfQosProfGuarUpBandwidth Integer32,
docsIfQosProfMaxDownBandwidth Integer32,
docsIfQosProfMaxTxBurst Integer32, -- deprecated
docsIfQosProfBaselinePrivacy TruthValue,
docsIfQosProfStatus RowStatus,
docsIfQosProfMaxTransmitBurst Integer32,
docsIfQosProfStorageType StorageType
}
Now the index ๐ฅ It's an Integer32 from 1 to 16383 and it's how each row gets its unique ID.
docsIfQosProfIndex OBJECT-TYPE
SYNTAX Integer32 (1..16383)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index value that uniquely identifies an entry
in the docsIfQosProfileTable."
::= { docsIfQosProfileEntry 1 }
Next is priority โจ It's a relative priority for bandwidth allocation, from 0 (lowest) to 7 (highest). How it gets interpreted is device-specific, and it MUST NOT be changed while the row is active. The reference points to Annex C.1.1.4 of SP-RFIv2.0-I10-051209.
docsIfQosProfPriority OBJECT-TYPE
SYNTAX Integer32 (0..7)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"A relative priority assigned to this service when
allocating bandwidth. Zero indicates lowest priority
and seven indicates highest priority.
Interpretation of priority is device-specific.
MUST NOT be changed while this row is active."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex C.1.1.4."
DEFVAL { 0 }
::= { docsIfQosProfileEntry 2 }
Max upstream bandwidth is next ๐ฆ It's in bits per second, zero means no restriction, and again MUST NOT be changed while the row is active.
docsIfQosProfMaxUpBandwidth OBJECT-TYPE
SYNTAX Integer32 (0..100000000)
UNITS "bits per second"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The maximum upstream bandwidth, in bits per second,
allowed for a service with this service class.
Zero if there is no restriction of upstream bandwidth.
MUST NOT be changed while this row is active."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex C.1.1.4."
DEFVAL { 0 }
::= { docsIfQosProfileEntry 3 }
Guaranteed upstream bandwidth is the minimum that's promised ๐ Same rule: MUST NOT be changed while the row is active.
docsIfQosProfGuarUpBandwidth OBJECT-TYPE
SYNTAX Integer32 (0..100000000)
UNITS "bits per second"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Minimum guaranteed upstream bandwidth, in bits per second,
allowed for a service with this service class.
MUST NOT be changed while this row is active."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex C.1.1.4."
DEFVAL { 0 }
::= { docsIfQosProfileEntry 4 }
Max downstream bandwidth mirrors the upstream one ๐ธ Zero means unrestricted, and it MUST NOT be changed while the row is active.
docsIfQosProfMaxDownBandwidth OBJECT-TYPE
SYNTAX Integer32 (0..100000000)
UNITS "bits per second"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The maximum downstream bandwidth, in bits per second,
allowed for a service with this service class.
Zero if there is no restriction of downstream bandwidth.
MUST NOT be changed while this row is active."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex C.1.1.4."
DEFVAL { 0 }
::= { docsIfQosProfileEntry 5 }
Now the deprecated one ๐ docsIfQosProfMaxTxBurst counts mini-slots, and it's been replaced by docsIfQosProfMaxTransmitBurst because the units and value range didn't match the DOCSIS Maximum Upstream Channel Transmit Burst Configuration Setting. It's still here, but it's deprecated, so not me sticking with the old one.
docsIfQosProfMaxTxBurst OBJECT-TYPE
SYNTAX Integer32 (0..255)
UNITS "mini-slots"
MAX-ACCESS read-create
STATUS deprecated
DESCRIPTION
"The maximum number of mini-slots that may be requested
for a single upstream transmission.
A value of zero means there is no limit.
MUST NOT be changed while this row is active.
This object has been deprecated and replaced by
docsIfQosProfMaxTransmitBurst, to fix a mismatch
of the units and value range with respect to the DOCSIS
Maximum Upstream Channel Transmit Burst Configuration
Setting."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
C.1.1.4."
DEFVAL { 0 }
::= { docsIfQosProfileEntry 6 }
Baseline Privacy is just a yes-or-no toggle for each service class ๐ It's false by default and MUST NOT be changed while the row is active.
docsIfQosProfBaselinePrivacy OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Indicates whether Baseline Privacy is enabled for this
service class.
MUST NOT be changed while this row is active."
DEFVAL { false }
::= { docsIfQosProfileEntry 7 }
The status column is how rows get created and deleted ๐ง It MUST NOT be changed away from active while anything in docsIfCmServiceTable (on the CM) or docsIfCmtsServiceTable (on the CMTS) is still pointing at the row.
docsIfQosProfStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This is object is used to create or delete rows in
this table. This object MUST NOT be changed from active
while the row is referenced by any entry in either
docsIfCmServiceTable (on the CM) or
docsIfCmtsServiceTable (on the CMTS)."
::= { docsIfQosProfileEntry 8 }
Now the replacement burst column ๐ It's in bytes, from 0 to 65535, and zero means there's no limit. The note says it doesn't count any physical layer overhead, which is an important detail. It MUST NOT be changed while the row is active.
docsIfQosProfMaxTransmitBurst OBJECT-TYPE
SYNTAX Integer32 (0..65535)
UNITS "bytes"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The maximum number of bytes that may be requested for a
single upstream transmission. A value of zero means there
is no limit. Note: This value does not include any
physical layer overhead.
MUST NOT be changed while this row is active."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex C.1.1.4."
DEFVAL { 0 }
::= { docsIfQosProfileEntry 9 }
The storage type is read-only, and entries set to permanent(4) don't need write operations for their writable objects ๐
docsIfQosProfStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The storage type for this conceptual row.
Entries with this object set to permanent(4)
do not require write operations for writable
objects."
::= { docsIfQosProfileEntry 10 }
Now we're onto signal quality ๐ก At the CM it describes the PHY signal quality of downstream channels, and at the CMTS it describes upstream channels. At the CMTS this table MAY exclude contention intervals. Super important for the vibe check ๐ฆ
docsIfSignalQualityTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfSignalQualityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"At the CM, describes the PHY signal quality of downstream
channels. At the CMTS, this object describes the PHY
signal quality of upstream channels. At the CMTS, this
table MAY exclude contention intervals."
::= { docsIfBaseObjects 4 }
The entry object is where we decide which ifType each entry applies to ๐ For Cable Modems it's docsCableDownstream(128). For DOCSIS 1.1 CMTSs it's docsCableUpstream (129), and for DOCSIS 2.0 CMTSs it's docsCableUpstreamChannel (205). Each one has its own ifEntry match, so I'm not gonna mix them up ๐
docsIfSignalQualityEntry OBJECT-TYPE
SYNTAX DocsIfSignalQualityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"At the CM, this object describes the PHY characteristics of
a downstream channel. At the CMTS, it describes the PHY
signal quality of an upstream channel.
An entry in this table exists for each ifEntry with an
ifType of docsCableDownstream(128) for Cable Modems.
For DOCSIS 1.1 Cable Modem Termination Systems, an entry
exists for each ifEntry with an ifType of
docsCableUpstream (129).
For DOCSIS 2.0 Cable Modem Termination Systems, an entry
exists for each ifEntry with an ifType of
docsCableUpstreamChannel (205)."
INDEX { ifIndex }
::= { docsIfSignalQualityTable 1 }
Here's the signal quality SEQUENCE, which lists every column ๐ซถ
DocsIfSignalQualityEntry ::= SEQUENCE {
docsIfSigQIncludesContention TruthValue,
docsIfSigQUnerroreds Counter32,
docsIfSigQCorrecteds Counter32,
docsIfSigQUncorrectables Counter32,
docsIfSigQSignalNoise TenthdB,
docsIfSigQMicroreflections Integer32,
docsIfSigQEqualizationData DocsEqualizerData,
docsIfSigQExtUnerroreds Counter64,
docsIfSigQExtCorrecteds Counter64,
docsIfSigQExtUncorrectables Counter64
}
And we're cutting off right at the first column definition, so let's go ๐ธ
docsIfSigQIncludesContention OBJECT-TYPE
okay so this next bit is all about the signal quality counters and the cable modem MAC table, and bestie, the vibes are immaculate ๐ โจ
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"true(1) if this CMTS includes contention intervals in
the counters in this table. Always false(2) for CMs."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.4.1"
::= { docsIfSignalQualityEntry 1 }
okay so this one is a yes-or-no flag ๐ true(1) means the CMTS counts contention intervals in the counters, and it's always false(2) for CMs. no cap, very simple, very iconic ๐
docsIfSigQUnerroreds OBJECT-TYPE
SYNTAX Counter32
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received on this channel without error.
This includes all codewords, whether or not they
were part of frames destined for this device.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Sections 6.2.4, and 6.3.6."
::= { docsIfSignalQualityEntry 2 }
docsIfSigQCorrecteds OBJECT-TYPE
SYNTAX Counter32
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received on this channel with correctable
errors. This includes all codewords, whether or not
they were part of frames destined for this device.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Sections 6.2.4, and 6.3.6."
::= { docsIfSignalQualityEntry 3 }
docsIfSigQUncorrectables OBJECT-TYPE
SYNTAX Counter32
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received on this channel with uncorrectable
errors. This includes all codewords, whether or not
they were part of frames destined for this device.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Sections 6.2.4, and 6.3.6."
::= { docsIfSignalQualityEntry 4 }
so these three are the codeword counters, and they're giving received, without error, correctable, uncorrectable ๐ก they count every codeword on the channel, not only the ones meant for this device. the counters can reset when the system reinitializes, and they can also discontinue at other times, which is tracked by ifCounterDiscontinuityTime for the matching ifIndex ๐ซถ
docsIfSigQSignalNoise OBJECT-TYPE
SYNTAX TenthdB
UNITS "TenthdB"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Signal/Noise ratio as perceived for this channel.
At the CM, this object describes the Signal/Noise of the
downstream channel. At the CMTS, it describes the
average Signal/Noise of the upstream channel."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 4-1 and 4-2"
::= { docsIfSignalQualityEntry 5 }
docsIfSigQMicroreflections OBJECT-TYPE
SYNTAX Integer32 (0..255)
UNITS "-dBc"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Microreflections, including in-channel response
as perceived on this interface, measured in dBc below
the signal level.
This object is not assumed to return an absolutely
accurate value, but it gives a rough indication
of microreflections received on this interface.
It is up to the implementer to provide information
as accurately as possible."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 4-1 and 4-2"
::= { docsIfSignalQualityEntry 6 }
docsIfSigQEqualizationData OBJECT-TYPE
SYNTAX DocsEqualizerData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"At the CM, this object returns the equalization data for
the downstream channel.
At the CMTS, this object is not applicable and is not
instantiated. Note that previous CMTS implementations
may instantiate this object in two ways:
- An equalization value indicating an equalization
average for the upstream channel. Those values have
vendor-dependent interpretations.
- Return a zero-length OCTET STRING to indicate that
the value is unknown or if there is no equalization
data available or defined."
REFERENCE
"DOCSIS Radio Frequency Interface Specification,
Figure 6-23."
::= { docsIfSignalQualityEntry 7 }
the signal vibes are so dramatic ๐ the Signal/Noise ratio reads differently depending on who's asking: at the CM it's the downstream channel, but at the CMTS it's the average upstream ๐ฆ the microreflections number is basically a rough vibe check, not a perfectly accurate one, and it's up to the implementer to get it as accurate as they can ๐ and equalization data is a whole mood too. at the CM it's the downstream data, the CMTS doesn't really instantiate it, and older CMTS implementations might do weird vendor-specific stuff or return an empty octet string when nothing is known ๐
docsIfSigQExtUnerroreds OBJECT-TYPE
SYNTAX Counter64
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received on this channel without error.
This includes all codewords, whether or not they
were part of frames destined for this device.
This is the 64-bit version of docsIfSigQUnerroreds.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Sections 6.2.4, and 6.3.6."
::= { docsIfSignalQualityEntry 8 }
docsIfSigQExtCorrecteds OBJECT-TYPE
SYNTAX Counter64
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received on this channel with correctable
errors. This includes all codewords, whether or not
they were part of frames destined for this device.
This is the 64-bit version of docsIfSigQCorrecteds.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Sections 6.2.4, and 6.3.6."
::= { docsIfSignalQualityEntry 9 }
docsIfSigQExtUncorrectables OBJECT-TYPE
SYNTAX Counter64
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received on this channel with uncorrectable
errors. This includes all codewords, whether or not
they were part of frames destined for this device.
This is the 64-bit version of docsIfSigQUncorrectables.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Sections 6.2.4, 6.3.6."
::= { docsIfSignalQualityEntry 10 }
and the 64-bit versions are the main character upgrade ๐ same codeword counts as before, just with Counter64 so they don't wrap around as fast ๐
(the descriptions even say so: they're the 64-bit versions of the 32-bit counters, iykyk) โจ
--
-- DOCSIS Version of the device
--
docsIfDocsisBaseCapability OBJECT-TYPE
SYNTAX DocsisVersion
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indication of the DOCSIS capability of the device."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex G."
::= { docsIfBaseObjects 5 }
--
-- CABLE MODEM GROUP
--
--
-- The CM MAC Table
--
docsIfCmMacTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmMacEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes the attributes of each CM MAC interface,
extending the information available from ifEntry."
::= { docsIfCmObjects 1 }
docsIfCmMacEntry OBJECT-TYPE
SYNTAX DocsIfCmMacEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing objects describing attributes of
each MAC entry, extending the information in ifEntry.
An entry in this table exists for each ifEntry with an
ifType of docsCableMaclayer(127)."
INDEX { ifIndex }
::= { docsIfCmMacTable 1 }
DocsIfCmMacEntry ::= SEQUENCE {
docsIfCmCmtsAddress MacAddress,
docsIfCmCapabilities BITS,
docsIfCmRangingRespTimeout TimeTicks,
docsIfCmRangingTimeout TimeInterval
}
docsIfCmCmtsAddress OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Identifies the CMTS that is believed to control this MAC
domain. At the CM, this will be the source address from
SYNC, MAP, and other MAC-layer messages. If the CMTS is
unknown, returns 00-00-00-00-00-00."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.2.2."
::= { docsIfCmMacEntry 1 }
docsIfCmCapabilities OBJECT-TYPE
SYNTAX BITS {
atmCells(0),
concatenation(1)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Identifies the capabilities of the MAC implementation
at this interface. Note that packet transmission is
always supported. Therefore, there is no specific bit
required to explicitly indicate this capability.
Note that BITS objects are encoded most significant bit
first. For example, if bit 1 is set, the value of this
object is the octet string '40'H."
::= { docsIfCmMacEntry 2 }
docsIfCmRangingRespTimeout OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-write
STATUS obsolete
DESCRIPTION
"Waiting time for a Ranging Response packet.
This object has been obsoleted and replaced by
docsIfCmRangingTimeout to correct the typing to
TimeInterval."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.1.6."
DEFVAL { 20 }
::= { docsIfCmMacEntry 3 }
docsIfDocsisBaseCapability is where the device flexes its DOCSIS version ๐ and then we enter the CABLE MODEM GROUP era ๐ the CM MAC table is basically an extra layer of info on top of ifEntry, and every row is for a MAC interface with an ifType of docsCableMaclayer(127) ๐ธ
the big question is docsIfCmCmtsAddress. it's the CMTS that's believed to control the MAC domain, and at the CM it comes from the source address on SYNC, MAP, and other MAC-layer messages ๐ง if the CMTS is unknown, it just returns 00-00-00-00-00-00, which is a whole tea spill about nothing ๐
docsIfCmCapabilities is a BITS object that tells you what the MAC implementation can do. packet transmission is always supported, so there's no bit for it, which is so relatable because some things just are. and BITS get encoded most significant bit first, so bit 1 being set gives you the octet string '40'H ๐
last but not least, docsIfCmRangingRespTimeout is obsolete ๐ it's been replaced by docsIfCmRangingTimeout because the old one had the wrong typing and got corrected to TimeInterval. the old default was 20, but nobody's really supposed to be using it anymore, so we're giving it a respectful goodbye ๐ซถ๐ฆ
Okay so this next bit is where the CM status table comes in, and bestie, it's giving main character energy ๐ โจ It's all about what a Cable Modem is up to at any given moment. Let's start with the last piece of the MAC entry, the ranging timeout ๐
docsIfCmRangingTimeout OBJECT-TYPE
SYNTAX TimeInterval
UNITS "HundredOfSeconds"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Waiting time for a Ranging Response packet.
This object MUST NOT persist at reinitialization
of the managed system."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.1.6, timer T3."
DEFVAL { 20 }
::= { docsIfCmMacEntry 4 }
Ok so this one is the waiting time for a Ranging Response packet ๐ฆ It's read-write, it's measured in hundredths of seconds, and it does NOT survive a reinitialization. Gone, reset, fresh start ๐ธ
Now we get to the CM status table ๐ง Heads up, this one only lives on the CM side, not the CMTS. Here's the table, the entry for each MAC layer instance, and the big status object list:
--
-- CM status table.
-- This table is implemented only at the CM.
--
docsIfCmStatusTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmStatusEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table maintains a number of status objects
and counters for Cable Modems."
::= { docsIfCmObjects 2 }
docsIfCmStatusEntry OBJECT-TYPE
SYNTAX DocsIfCmStatusEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A set of status objects and counters for a single MAC
layer instance in Cable Modem.
An entry in this table exists for each ifEntry with an
ifType of docsCableMaclayer(127)."
INDEX { ifIndex }
::= { docsIfCmStatusTable 1 }
DocsIfCmStatusEntry ::= SEQUENCE {
docsIfCmStatusValue INTEGER,
docsIfCmStatusCode OCTET STRING,
docsIfCmStatusTxPower TenthdBmV,
docsIfCmStatusResets Counter32,
docsIfCmStatusLostSyncs Counter32,
docsIfCmStatusInvalidMaps Counter32,
docsIfCmStatusInvalidUcds Counter32,
docsIfCmStatusInvalidRangingResponses Counter32,
docsIfCmStatusInvalidRegistrationResponses Counter32,
docsIfCmStatusT1Timeouts Counter32,
docsIfCmStatusT2Timeouts Counter32,
docsIfCmStatusT3Timeouts Counter32,
docsIfCmStatusT4Timeouts Counter32,
docsIfCmStatusRangingAborteds Counter32,
docsIfCmStatusDocsisOperMode DocsisQosVersion,
docsIfCmStatusModulationType DocsisUpstreamType,
docsIfCmStatusEqualizationData DocsEqualizerData,
docsIfCmStatusUCCs Counter32,
docsIfCmStatusUCCFails Counter32
}
So the table is the status hub ๐ It's a read-only-ish vibe for the CM, and each row is one MAC layer instance, keyed by ifIndex. Every row is a tiny dashboard of status objects and counters ๐
Next up is the big one, the connectivity state ๐ฅ It's a number from 1 to 13, and the states 1 through 12 come straight from the RF spec. State 13 is the drama queen: it's the one where the CMTS has sent a Registration Aborted message, and the CMTS reports that same state as accessDenied(7). Iconic ๐
docsIfCmStatusValue OBJECT-TYPE
SYNTAX INTEGER {
other(1),
notReady(2),
notSynchronized(3),
phySynchronized(4),
usParametersAcquired(5),
rangingComplete(6),
ipComplete(7),
todEstablished(8),
securityEstablished(9),
paramTransferComplete(10),
registrationComplete(11),
operational(12),
accessDenied(13)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current Cable Modem connectivity state, as specified
in the RF Interface Specification. Interpretations for
state values 1-12 are clearly outlined in the SP-RFI
reference given below.
The state value accessDenied(13) indicates the CMTS has
sent a Registration Aborted message to the CM. The same
state is reported as accessDenied(7) by the CMTS object
docsIfCmtsCmStatusValue."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 11.2.
Data-Over-Cable Service Interface Specifications:
Operations Support System Interface Specification
SP-OSSIv2.0-I09-050812, Section 6.3.4.2."
::= { docsIfCmStatusEntry 1 }
Now the status code ๐ It's an OCTET STRING that's either empty or 5 or 6 characters long. Picture it like T101.0: one letter for the error group, a two- or three-digit condition number, then a decimal. An empty string just means no status code has been registered yet ๐
docsIfCmStatusCode OBJECT-TYPE
SYNTAX OCTET STRING (SIZE( 0 | 5 | 6 ))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Status code for a Cable Modem as defined in the
OSSI Specification. The status code consists
of a single character indicating error groups, followed
by a two- or three-digit number indicating the status
condition, followed by a decimal.
An example of a returned value could be 'T101.0'.
The zero-length OCTET STRING indicates no status code yet
registered."
REFERENCE
"Data-Over-Cable Service Interface Specifications:
Operations Support System Interface Specification
SP-OSSIv2.0-I09-050812, Annex D."
::= { docsIfCmStatusEntry 2 }
Next, the transmit power for the attached upstream channel, measured in tenths of dBmV โก Read-only, operational value, and it lives in Section 6.2.18 of the RF spec ๐
docsIfCmStatusTxPower OBJECT-TYPE
SYNTAX TenthdBmV
UNITS "TenthdBmV"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The operational transmit power for the attached upstream
channel."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.18."
::= { docsIfCmStatusEntry 3 }
Now we're in the counter era ๐ Each of these is a Counter32 that ticks up, and every single one comes with the same discontinuity warning. Counters can jump at a reinitialization of the managed system, and at other times too, as shown by ifCounterDiscontinuityTime for the matching ifIndex. Stay alert, bestie ๐ซถ
First up, resets: how many times the CM reset or initialized this interface ๐
docsIfCmStatusResets OBJECT-TYPE
SYNTAX Counter32
UNITS "resets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times the CM reset or initialized this
interface.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmStatusEntry 4 }
Lost syncs counts how many times the CM lost synchronization with the downstream channel. Section 8.3.2 is where that lives ๐ฆ
docsIfCmStatusLostSyncs OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times the CM lost synchronization with
the downstream channel.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.2."
::= { docsIfCmStatusEntry 5 }
Invalid maps counts the MAP messages the CM received that were invalid ๐บ๏ธ
docsIfCmStatusInvalidMaps OBJECT-TYPE
SYNTAX Counter32
UNITS "maps"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times the CM received invalid MAP messages.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.4."
::= { docsIfCmStatusEntry 6 }
Invalid UCDs is the same vibe, but for UCD messages ๐
docsIfCmStatusInvalidUcds OBJECT-TYPE
SYNTAX Counter32
UNITS "messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times the CM received invalid UCD messages.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.3."
::= { docsIfCmStatusEntry 7 }
Invalid ranging responses counts the ranging response messages the CM received that were invalid ๐ฏ
docsIfCmStatusInvalidRangingResponses OBJECT-TYPE
SYNTAX Counter32
UNITS "messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times the CM received invalid ranging response
messages.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.6."
::= { docsIfCmStatusEntry 8 }
Invalid registration responses is the same energy, just for registration response messages ๐ซ
docsIfCmStatusInvalidRegistrationResponses OBJECT-TYPE
SYNTAX Counter32
UNITS "messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times the CM received invalid registration
response messages.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.8."
::= { docsIfCmStatusEntry 9 }
Now the timeout counters, T1 through T3 ๐ Each one counts how many times that particular counter expired in the CM, and they all point at Figure 9-2 of the RF spec. T3 is the one we met earlier, the ranging timer, so it's kind of the ~main~ character of this group ๐
T1 first:
docsIfCmStatusT1Timeouts OBJECT-TYPE
SYNTAX Counter32
UNITS "timeouts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times counter T1 expired in the CM.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Figure 9-2."
::= { docsIfCmStatusEntry 10 }
Then T2:
docsIfCmStatusT2Timeouts OBJECT-TYPE
SYNTAX Counter32
UNITS "timeouts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times counter T2 expired in the CM.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Figure 9-2."
::= { docsIfCmStatusEntry 11 }
And T3, the ranging timer's own counter โฑ๏ธ
docsIfCmStatusT3Timeouts OBJECT-TYPE
SYNTAX Counter32
UNITS "timeouts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times counter T3 expired in the CM.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Figure 9-2."
::= { docsIfCmStatusEntry 12 }
Okay bestie, the counters keep coming ๐ and they're giving main character energy ๐
docsIfCmStatusT4Timeouts OBJECT-TYPE
SYNTAX Counter32
UNITS "timeouts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times counter T4 expired in the CM.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Figure 9-2."
::= { docsIfCmStatusEntry 13 }
docsIfCmStatusRangingAborteds OBJECT-TYPE
SYNTAX Counter32
UNITS "attempts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times the ranging process was aborted
by the CMTS.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.3.3."
::= { docsIfCmStatusEntry 14 }
docsIfCmStatusDocsisOperMode OBJECT-TYPE
SYNTAX DocsisQosVersion
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indication of whether the device has registered using 1.0
Class of Service or 1.1 Quality of Service.
An unregistered CM SHOULD indicate 'docsis11' for a
docsIfDocsisBaseCapability value of DOCSIS 1.1/2.0. An
unregistered CM SHOULD indicate 'docsis10' for a
docsIfDocsisBaseCapability value of DOCSIS 1.0."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex G."
::= { docsIfCmStatusEntry 15 }
docsIfCmStatusModulationType OBJECT-TYPE
SYNTAX DocsisUpstreamType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates modulation type status currently used by the
CM. Since this object specifically identifies PHY mode,
the shared upstream channel type is not permitted."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.1."
::= { docsIfCmStatusEntry 16 }
docsIfCmStatusEqualizationData OBJECT-TYPE
SYNTAX DocsEqualizerData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Pre-equalization data for this CM after convolution with
data indicated in the RNG-RSP. This data is valid when
docsIfUpChannelPreEqEnable is set to true."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Figure 8-23."
::= { docsIfCmStatusEntry 17 }
docsIfCmStatusUCCs OBJECT-TYPE
SYNTAX Counter32
UNITS "attempts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of successful Upstream Channel Change
transactions.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmStatusEntry 18 }
docsIfCmStatusUCCFails OBJECT-TYPE
SYNTAX Counter32
UNITS "attempts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of failed Upstream Channel Change
transactions.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmStatusEntry 19 }
--
-- The Cable Modem Service Table
--
docsIfCmServiceTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmServiceEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes the attributes of each upstream service queue
on a CM."
::= { docsIfCmObjects 3 }
docsIfCmServiceEntry OBJECT-TYPE
SYNTAX DocsIfCmServiceEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes the attributes of an upstream bandwidth service
queue.
An entry in this table exists for each Service ID.
The primary index is an ifIndex with an ifType of
docsCableMaclayer(127)."
INDEX { ifIndex, docsIfCmServiceId }
::= { docsIfCmServiceTable 1 }
DocsIfCmServiceEntry ::= SEQUENCE {
docsIfCmServiceId Integer32,
docsIfCmServiceQosProfile Integer32,
docsIfCmServiceTxSlotsImmed Counter32,
docsIfCmServiceTxSlotsDed Counter32,
docsIfCmServiceTxRetries Counter32,
docsIfCmServiceTxExceededs Counter32,
docsIfCmServiceRqRetries Counter32,
docsIfCmServiceRqExceededs Counter32,
docsIfCmServiceExtTxSlotsImmed Counter64,
docsIfCmServiceExtTxSlotsDed Counter64
}
docsIfCmServiceId OBJECT-TYPE
SYNTAX Integer32 (1..16383)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Identifies a service queue for upstream bandwidth. The
attributes of this service queue are shared between the
CM and the CMTS. The CMTS allocates upstream bandwidth
to this service queue based on requests from the CM and
on the class of service associated with this queue."
::= { docsIfCmServiceEntry 1 }
docsIfCmServiceQosProfile OBJECT-TYPE
SYNTAX Integer32 (0..16383)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The index in docsIfQosProfileTable describing the quality
of service attributes associated with this particular
service. If no associated entry in docsIfQosProfileTable
exists, this object returns a value of zero."
::= { docsIfCmServiceEntry 2 }
docsIfCmServiceTxSlotsImmed OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of upstream mini-slots that have been used to
transmit data PDUs in immediate (contention) mode. This
includes only those PDUs that are presumed to have
arrived at the head-end (i.e., those that were explicitly
acknowledged). It does not include retransmission attempts
or mini-slots used by requests.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.4."
::= { docsIfCmServiceEntry 3 }
docsIfCmServiceTxSlotsDed OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of upstream mini-slots that have been used to
transmit data PDUs in dedicated mode (i.e., as a result
of a unicast Data Grant).
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.4."
::= { docsIfCmServiceEntry 4 }
docsIfCmServiceTxRetries OBJECT-TYPE
SYNTAX Counter32
UNITS "attempts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of attempts to transmit data PDUs containing
requests for acknowledgment that did not result in
acknowledgment.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.4."
::= { docsIfCmServiceEntry 5 }
docsIfCmServiceTxExceededs OBJECT-TYPE
SYNTAX Counter32
UNITS "attempts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of data PDU transmission failures due to
excessive retries without acknowledgment.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.4."
::= { docsIfCmServiceEntry 6 }
docsIfCmServiceRqRetries OBJECT-TYPE
SYNTAX Counter32
UNITS "attempts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of attempts to transmit bandwidth requests
that did not result in acknowledgment.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.4."
::= { docsIfCmServiceEntry 7 }
Ngl the SHOULD lines in docsIfCmStatusDocsisOperMode are the ones to watch ๐ unregistered CMs are supposed to show 'docsis11' or 'docsis10' depending on their base capability ๐
Next up is the rest of the service table, so stay tuned bestie ๐โจ
Okay so, this part is all about the CMTS (the head-end side of the cable network) and its counters, status, and timing knobs. Let's get into it ๐
docsIfCmServiceRqExceededs OBJECT-TYPE
SYNTAX Counter32
UNITS "attempts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of requests for bandwidth that failed due to
excessive retries without acknowledgment.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.4."
::= { docsIfCmServiceEntry 8 }
docsIfCmServiceExtTxSlotsImmed OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of upstream mini-slots that have been used to
transmit data PDUs in immediate (contention) mode. This
includes only those PDUs that are presumed to have
arrived at the head-end (i.e., those that were explicitly
acknowledged). It does not include retransmission attempts
or mini-slots used by requests.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.4."
::= { docsIfCmServiceEntry 9 }
docsIfCmServiceExtTxSlotsDed OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of upstream mini-slots that have been used to
transmit data PDUs in dedicated mode (i.e., as a result
of a unicast Data Grant).
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.4."
::= { docsIfCmServiceEntry 10 }
--
-- CMTS GROUP
--
--
-- The CMTS MAC Table
--
docsIfCmtsMacTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmtsMacEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes the attributes of each CMTS MAC interface,
extending the information available from ifEntry.
Mandatory for all CMTS devices."
::= { docsIfCmtsObjects 1 }
docsIfCmtsMacEntry OBJECT-TYPE
SYNTAX DocsIfCmtsMacEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing objects describing attributes of each
MAC entry, extending the information in ifEntry.
An entry in this table exists for each ifEntry with an
ifType of docsCableMaclayer(127)."
INDEX { ifIndex }
::= { docsIfCmtsMacTable 1 }
DocsIfCmtsMacEntry ::= SEQUENCE {
docsIfCmtsCapabilities BITS,
docsIfCmtsSyncInterval Integer32,
docsIfCmtsUcdInterval Integer32,
docsIfCmtsMaxServiceIds Integer32,
docsIfCmtsInsertionInterval TimeTicks, -- Obsolete
docsIfCmtsInvitedRangingAttempts Integer32,
docsIfCmtsInsertInterval TimeInterval,
docsIfCmtsMacStorageType StorageType
}
docsIfCmtsCapabilities OBJECT-TYPE
SYNTAX BITS {
atmCells(0),
concatenation(1)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Identifies the capabilities of the CMTS MAC
implementation at this interface. Note that packet
transmission is always supported. Therefore, there
is no specific bit required to explicitly indicate
this capability.
Note that BITS objects are encoded most significant bit
first. For example, if bit 1 is set, the value of this
object is the octet string '40'H."
::= { docsIfCmtsMacEntry 1 }
docsIfCmtsSyncInterval OBJECT-TYPE
SYNTAX Integer32 (1..200)
UNITS "Milliseconds"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The interval between CMTS transmission of successive SYNC
messages at this interface."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.3."
::= { docsIfCmtsMacEntry 2 }
docsIfCmtsUcdInterval OBJECT-TYPE
SYNTAX Integer32 (1..2000)
UNITS "Milliseconds"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The interval between CMTS transmission of successive
Upstream Channel Descriptor messages for each upstream
channel at this interface."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.3"
::= { docsIfCmtsMacEntry 3 }
docsIfCmtsMaxServiceIds OBJECT-TYPE
SYNTAX Integer32 (1..16383)
UNITS "SIDs"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum number of service IDs that may be
simultaneously active."
::= { docsIfCmtsMacEntry 4 }
docsIfCmtsInsertionInterval OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-write
STATUS obsolete
DESCRIPTION
"The amount of time to elapse between each broadcast
initial maintenance grant. Broadcast initial maintenance
grants are used to allow new cable modems to join the
network. Zero indicates that a vendor-specific algorithm
is used instead of a fixed time. The maximum amount of
time permitted by the specification is 2 seconds.
This object has been obsoleted and replaced by
docsIfCmtsInsertInterval to fix a SYNTAX typing problem."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex B."
::= { docsIfCmtsMacEntry 5 }
docsIfCmtsInvitedRangingAttempts OBJECT-TYPE
SYNTAX Integer32 (0..1024)
UNITS "attempts"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The maximum number of attempts to make on invitations
for ranging requests. A value of zero means the system
SHOULD attempt to range forever."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 9.3.3 and Annex B."
::= { docsIfCmtsMacEntry 6 }
docsIfCmtsInsertInterval OBJECT-TYPE
SYNTAX TimeInterval
UNITS "HundredOfSeconds"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The amount of time to elapse between each broadcast
initial maintenance grant. Broadcast initial maintenance
grants are used to allow new cable modems to join the
network. Zero indicates that a vendor-specific algorithm
is used instead of a fixed time. The maximum amount of
time permitted by the specification is 2 seconds."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex B."
::= { docsIfCmtsMacEntry 7 }
docsIfCmtsMacStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The storage type for this conceptual row.
Entries with this object set to permanent(4)
do not require write operations for read-write
objects."
::= { docsIfCmtsMacEntry 8 }
--
--
-- CMTS status table.
--
docsIfCmtsStatusTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmtsStatusEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"For the MAC layer, this group maintains a number of
status objects and counters."
::= { docsIfCmtsObjects 2 }
docsIfCmtsStatusEntry OBJECT-TYPE
SYNTAX DocsIfCmtsStatusEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Status entry for a single MAC layer.
An entry in this table exists for each ifEntry with an
ifType of docsCableMaclayer(127)."
INDEX { ifIndex }
::= { docsIfCmtsStatusTable 1 }
DocsIfCmtsStatusEntry ::= SEQUENCE {
docsIfCmtsStatusInvalidRangeReqs Counter32,
docsIfCmtsStatusRangingAborteds Counter32,
docsIfCmtsStatusInvalidRegReqs Counter32,
docsIfCmtsStatusFailedRegReqs Counter32,
docsIfCmtsStatusInvalidDataReqs Counter32,
docsIfCmtsStatusT5Timeouts Counter32
}
docsIfCmtsStatusInvalidRangeReqs OBJECT-TYPE
SYNTAX Counter32
UNITS "messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object counts invalid RNG-REQ messages received on
this interface.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.5."
::= { docsIfCmtsStatusEntry 1 }
docsIfCmtsStatusRangingAborteds OBJECT-TYPE
SYNTAX Counter32
UNITS "attempts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object counts ranging attempts that were explicitly
aborted by the CMTS.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.6."
::= { docsIfCmtsStatusEntry 2 }
Okay so the CMTS keeps a little scorecard of how registration is going, and this bit is where the failures get tallied ๐โจ Invalid registration requests, failed attempts overall, invalid data requests, and T5 timeouts all live here ๐
docsIfCmtsStatusInvalidRegReqs OBJECT-TYPE
SYNTAX Counter32
UNITS "messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object counts invalid REG-REQ messages received on
this interface; that is, syntax, out of range parameters,
or erroneous requests.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.7."
::= { docsIfCmtsStatusEntry 3 }
docsIfCmtsStatusFailedRegReqs OBJECT-TYPE
SYNTAX Counter32
UNITS "attempts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object counts failed registration attempts. Included
are docsIfCmtsStatusInvalidRegReqs, authentication, and
class of service failures.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.3.7."
::= { docsIfCmtsStatusEntry 4 }
docsIfCmtsStatusInvalidDataReqs OBJECT-TYPE
SYNTAX Counter32
UNITS "messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object counts invalid data request messages
received on this interface.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsStatusEntry 5 }
docsIfCmtsStatusT5Timeouts OBJECT-TYPE
SYNTAX Counter32
UNITS "timeouts"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object counts the number of times counter T5
expired on this interface.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Figure 9-2."
::= { docsIfCmtsStatusEntry 6 }
Next up is the CM status table, the per-modem report card the CMTS keeps for every cable modem plugged into it ๐ฆ The comment block says it straight: this table only exists at the CMTS ๐
--
-- CM status table (within CMTS).
-- This table is implemented only at the CMTS.
-- It contains per-CM status information available in the CMTS.
--
docsIfCmtsCmStatusTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmtsCmStatusEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A set of objects in the CMTS, maintained for each
cable modem connected to this CMTS."
::= { docsIfCmtsObjects 3 }
docsIfCmtsCmStatusEntry OBJECT-TYPE
SYNTAX DocsIfCmtsCmStatusEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Status information for a single cable modem.
An entry in this table exists for each cable modem
that is connected to the CMTS implementing this table."
INDEX { docsIfCmtsCmStatusIndex }
::= { docsIfCmtsCmStatusTable 1 }
DocsIfCmtsCmStatusEntry ::= SEQUENCE {
docsIfCmtsCmStatusIndex Integer32,
docsIfCmtsCmStatusMacAddress MacAddress,
docsIfCmtsCmStatusIpAddress IpAddress, -- deprecated
docsIfCmtsCmStatusDownChannelIfIndex InterfaceIndexOrZero,
docsIfCmtsCmStatusUpChannelIfIndex InterfaceIndexOrZero,
docsIfCmtsCmStatusRxPower TenthdBmV,
docsIfCmtsCmStatusTimingOffset Unsigned32,
docsIfCmtsCmStatusEqualizationData DocsEqualizerData,
docsIfCmtsCmStatusValue INTEGER,
docsIfCmtsCmStatusUnerroreds Counter32,
docsIfCmtsCmStatusCorrecteds Counter32,
docsIfCmtsCmStatusUncorrectables Counter32,
docsIfCmtsCmStatusSignalNoise TenthdB,
docsIfCmtsCmStatusMicroreflections Integer32,
docsIfCmtsCmStatusExtUnerroreds Counter64,
docsIfCmtsCmStatusExtCorrecteds Counter64,
docsIfCmtsCmStatusExtUncorrectables Counter64,
docsIfCmtsCmStatusDocsisRegMode DocsisQosVersion,
docsIfCmtsCmStatusModulationType DocsisUpstreamType,
docsIfCmtsCmStatusInetAddressType InetAddressType,
docsIfCmtsCmStatusInetAddress InetAddress,
docsIfCmtsCmStatusValueLastUpdate TimeStamp,
docsIfCmtsCmStatusHighResolutionTimingOffset Unsigned32
}
docsIfCmtsCmStatusIndex OBJECT-TYPE
SYNTAX Integer32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Index value to uniquely identify an entry in this table.
For an individual cable modem, this index value SHOULD
NOT change during CMTS uptime."
::= { docsIfCmtsCmStatusEntry 1 }
docsIfCmtsCmStatusMacAddress OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"MAC address of the cable modem. If the cable modem has
multiple MAC addresses, this is the MAC address associated
with the Cable interface."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 8.2.2."
::= { docsIfCmtsCmStatusEntry 2 }
docsIfCmtsCmStatusIpAddress OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"IP address of this cable modem. If the cable modem has no
IP address assigned, or the IP address is unknown, this
object returns a value of 0.0.0.0. If the cable modem has
multiple IP addresses, this object returns the IP address
associated with the Cable interface.
This object has been deprecated and replaced by
docsIfCmtsCmStatusInetAddressType and
docsIfCmtsCmStatusInetAddress, to enable IPv6 addressing
in the future."
::= { docsIfCmtsCmStatusEntry 3 }
docsIfCmtsCmStatusDownChannelIfIndex OBJECT-TYPE
SYNTAX InterfaceIndexOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"IfIndex of the downstream channel that this CM is
connected to. If the downstream channel is unknown, this
object returns a value of zero."
::= { docsIfCmtsCmStatusEntry 4 }
docsIfCmtsCmStatusUpChannelIfIndex OBJECT-TYPE
SYNTAX InterfaceIndexOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"For DOCSIS 2.0, indicates the ifIndex of the logical
upstream channel (ifType 205) this CM is connected to.
For DOCSIS 1.x, indicates the ifIndex of the upstream
channel (ifType 129) this CM is connected to.
If the upstream channel is unknown, this object
returns a value of zero."
::= { docsIfCmtsCmStatusEntry 5 }
docsIfCmtsCmStatusRxPower OBJECT-TYPE
SYNTAX TenthdBmV
UNITS "ThenthdBmV"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The receive power as perceived for upstream data from
this cable modem.
If the receive power is unknown, this object returns
a value of zero."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.18."
::= { docsIfCmtsCmStatusEntry 6 }
docsIfCmtsCmStatusTimingOffset OBJECT-TYPE
SYNTAX Unsigned32 (0..4294967295)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A measure of the current round trip time for this CM.
Used for timing of CM upstream transmissions to ensure
synchronized arrivals at the CMTS. Units are in terms
of (6.25 microseconds/64). Returns zero if the value
is unknown.
For channels requiring finer resolution, please refer to
object docsIfCmtsCmStatusHighResolutionTimingOffset."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.17."
::= { docsIfCmtsCmStatusEntry 7 }
docsIfCmtsCmStatusEqualizationData OBJECT-TYPE
SYNTAX DocsEqualizerData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Equalization data for this CM, as measured by the CMTS.
Returns the zero-length OCTET STRING if the value is
unknown or if there is no equalization data available
or defined."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Figure 8-23."
::= { docsIfCmtsCmStatusEntry 8 }
docsIfCmtsCmStatusValue OBJECT-TYPE
SYNTAX INTEGER {
other(1),
ranging(2),
rangingAborted(3),
rangingComplete(4),
ipComplete(5),
registrationComplete(6),
accessDenied(7),
operational(8),
-- value 8 should not be used
registeredBPIInitializing(9)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current cable modem connectivity state, as specified
in the RF Interface Specification. Returned status
information is the CM status, as assumed by the CMTS,
and indicates the following events:
other(1)
Any state other than below.
ranging(2)
The CMTS has received an Initial Ranging Request
message from the CM, and the ranging process is not
yet complete.
rangingAborted(3)
The CMTS has sent a Ranging Abort message to the CM.
okay bestie, we're picking up right where the registration states left off ๐ซถ the big note is that value 8 is reserved and should never be redefined, because some real devices already use it ๐
rangingComplete(4)
The CMTS has sent a Ranging Complete message to the CM.
ipComplete(5)
The CMTS has received a DHCP reply message and
forwarded it to the CM.
registrationComplete(6)
The CMTS has sent a Registration Response message to
the CM.
accessDenied(7)
The CMTS has sent a Registration Aborted message
to the CM.
operational(8)
Value 8 is considered reserved and should not be defined
in future revisions of this MIB module to avoid conflict
with documented implementations that support value 8 to
indicate operational state after completing the BPI
initialization process.
registeredBPIInitializing(9)
Baseline Privacy (BPI) is enabled and the CMTS is in the
process of completing BPI initialization. This state
MAY last for a significant length of time if failures
occur during the initialization process. After
completion of BPI initialization, the CMTS will report
registrationComplete(6).
The CMTS only needs to report states it is able to
detect."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 11.2."
::= { docsIfCmtsCmStatusEntry 9 }
docsIfCmtsCmStatusUnerroreds OBJECT-TYPE
SYNTAX Counter32
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received without error from this cable modem.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.4."
::= { docsIfCmtsCmStatusEntry 10 }
docsIfCmtsCmStatusCorrecteds OBJECT-TYPE
SYNTAX Counter32
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received with correctable errors from this
cable modem.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.4."
::= { docsIfCmtsCmStatusEntry 11 }
docsIfCmtsCmStatusUncorrectables OBJECT-TYPE
SYNTAX Counter32
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received with uncorrectable errors from this
cable modem.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.4."
::= { docsIfCmtsCmStatusEntry 12 }
docsIfCmtsCmStatusSignalNoise OBJECT-TYPE
SYNTAX TenthdB
UNITS "TenthdB"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Signal/Noise ratio as perceived for upstream data from
this cable modem.
If the Signal/Noise is unknown, this object returns
a value of zero."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 4-1 and 4-2."
::= { docsIfCmtsCmStatusEntry 13 }
docsIfCmtsCmStatusMicroreflections OBJECT-TYPE
SYNTAX Integer32 (0..255)
UNITS "-dBc"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total microreflections, including in-channel response
as perceived on this interface, measured in dBc below
the signal level.
This object is not assumed to return an absolutely
accurate value, but it gives a rough indication
of microreflections received on this interface.
It is up to the implementer to provide information
as accurately as possible.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 4-1 and 4-2"
::= { docsIfCmtsCmStatusEntry 14 }
docsIfCmtsCmStatusExtUnerroreds OBJECT-TYPE
SYNTAX Counter64
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received without error from this cable modem.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.5."
::= { docsIfCmtsCmStatusEntry 15 }
docsIfCmtsCmStatusExtCorrecteds OBJECT-TYPE
SYNTAX Counter64
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received with correctable errors from this
cable modem.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.5."
::= { docsIfCmtsCmStatusEntry 16 }
docsIfCmtsCmStatusExtUncorrectables OBJECT-TYPE
SYNTAX Counter64
UNITS "codewords"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Codewords received with uncorrectable errors from this
cable modem.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.5."
::= { docsIfCmtsCmStatusEntry 17 }
ooh the next few are all about registration mode, modulation and addressing ๐ฆ the vibes are immaculate
docsIfCmtsCmStatusDocsisRegMode OBJECT-TYPE
SYNTAX DocsisQosVersion
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indication of whether the CM has registered using 1.0
Class of Service or 1.1 Quality of Service."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Annex G."
::= { docsIfCmtsCmStatusEntry 18 }
docsIfCmtsCmStatusModulationType OBJECT-TYPE
SYNTAX DocsisUpstreamType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates modulation type currently used by the CM. Since
this object specifically identifies PHY mode, the shared
type is not permitted. If the upstream channel is
unknown, this object returns a value of zero."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 8-19."
::= { docsIfCmtsCmStatusEntry 19 }
docsIfCmtsCmStatusInetAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of internet address of
docsIfCmtsCmStatusInetAddress. If the cable modem
internet address is unassigned or unknown, then the
value of this object is unknown(0)."
::= { docsIfCmtsCmStatusEntry 20 }
docsIfCmtsCmStatusInetAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Internet address of this cable modem. If the Cable
Modem has no Internet address assigned, or the Internet
address is unknown, the value of this object is the
zero-length OCTET STRING. If the cable modem has
multiple Internet addresses, this object returns the
Internet address associated with the Cable
(i.e., RF MAC) interface."
::= { docsIfCmtsCmStatusEntry 21 }
docsIfCmtsCmStatusValueLastUpdate OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime when docsIfCmtsCmStatusValue
was last updated."
::= { docsIfCmtsCmStatusEntry 22 }
docsIfCmtsCmStatusHighResolutionTimingOffset OBJECT-TYPE
SYNTAX Unsigned32 (0..4294967295)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A measure of the current round trip time for this CM.
Used for timing of CM upstream transmissions to ensure
synchronized arrivals at the CMTS. Units are in terms
of (6.25 microseconds/(64*256)). Returns zero if the value
is unknown.
This is the high resolution version of object
docsIfCmtsCmStatusTimingOffset, for channels requiring
finer resolution."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Section 6.2.17."
::= { docsIfCmtsCmStatusEntry 23 }
next up is the CMTS Service Table ๐ธ it's the start of the upstream service queue stuff
--
-- The CMTS Service Table.
--
docsIfCmtsServiceTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmtsServiceEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes the attributes of upstream service queues
in a Cable Modem Termination System."
::= { docsIfCmtsObjects 4 }
Okay bestie, we're deep in the MIB definitions now ๐ง Here's the upstream bandwidth service queue table, the docsIfCmtsServiceEntry row and its columns, all exactly as written. ๐
docsIfCmtsServiceEntry OBJECT-TYPE
SYNTAX DocsIfCmtsServiceEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes the attributes of a single upstream bandwidth
service queue.
Entries in this table exist for each ifEntry with an
ifType of docsCableMaclayer(127), and for each service
queue (Service ID) within this MAC layer.
Entries in this table are created with the creation of
individual Service IDs by the MAC layer and removed
when a Service ID is removed."
INDEX { ifIndex, docsIfCmtsServiceId }
::= { docsIfCmtsServiceTable 1 }
DocsIfCmtsServiceEntry ::= SEQUENCE {
docsIfCmtsServiceId Integer32,
docsIfCmtsServiceCmStatusIndex Integer32, -- deprecated
docsIfCmtsServiceAdminStatus INTEGER,
docsIfCmtsServiceQosProfile Integer32,
docsIfCmtsServiceCreateTime TimeStamp,
docsIfCmtsServiceInOctets Counter32,
docsIfCmtsServiceInPackets Counter32,
docsIfCmtsServiceNewCmStatusIndex Integer32
}
So each row here is a single service queue, and it's indexed by the ifIndex plus the Service ID. Rows get created when the MAC layer makes a Service ID and get removed when that ID goes away. Iconic lifecycle, honestly ๐ญโจ
docsIfCmtsServiceId OBJECT-TYPE
SYNTAX Integer32 (1..16383)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Identifies a service queue for upstream bandwidth. The
attributes of this service queue are shared between the
Cable Modem and the Cable Modem Termination System.
The CMTS allocates upstream bandwidth to this service
queue based on requests from the CM and on the class of
service associated with this queue."
::= { docsIfCmtsServiceEntry 1 }
docsIfCmtsServiceCmStatusIndex OBJECT-TYPE
SYNTAX Integer32 (0..65535)
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"Pointer to an entry in docsIfCmtsCmStatusTable identifying
the cable modem using this Service Queue. If multiple
cable modems are using this Service Queue, the value of
this object is zero.
This object has been deprecated and replaced by
docsIfCmtsServiceNewCmStatusIndex, to fix a mismatch
of the value range with respect to docsIfCmtsCmStatusIndex
(1..2147483647)."
::= { docsIfCmtsServiceEntry 2 }
docsIfCmtsServiceAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
enabled(1),
disabled(2),
destroyed(3) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Allows a service class for a particular modem to be
suppressed, (re-)enabled, or deleted altogether."
::= { docsIfCmtsServiceEntry 3 }
docsIfCmtsServiceQosProfile OBJECT-TYPE
SYNTAX Integer32 (0..16383)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The index in docsIfQosProfileTable describing the quality
of service attributes associated with this particular
service. If no associated docsIfQosProfileTable entry
exists, this object returns a value of zero."
::= { docsIfCmtsServiceEntry 4 }
docsIfCmtsServiceCreateTime OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime when this entry was created."
::= { docsIfCmtsServiceEntry 5 }
docsIfCmtsServiceInOctets OBJECT-TYPE
SYNTAX Counter32
UNITS "Bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The cumulative number of Packet Data octets received
on this Service ID. The count does not include the
size of the Cable MAC header.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsServiceEntry 6 }
docsIfCmtsServiceInPackets OBJECT-TYPE
SYNTAX Counter32
UNITS "packets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The cumulative number of Packet Data packets received
on this Service ID.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsServiceEntry 7 }
docsIfCmtsServiceNewCmStatusIndex OBJECT-TYPE
SYNTAX Integer32 (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Pointer (via docsIfCmtsCmStatusIndex) to an entry in
docsIfCmtsCmStatusTable identifying the cable modem
using this Service Queue. If multiple cable modems are
using this Service Queue, the value of this object is
zero."
::= { docsIfCmtsServiceEntry 8 }
Heads up, the docsIfCmtsServiceCmStatusIndex column is deprecated ๐ Its replacement, docsIfCmtsServiceNewCmStatusIndex, exists because the old one's value range didn't match docsIfCmtsCmStatusIndex. Fixing that mismatch is a whole glow-up ๐
Next up is the modulation profile table. Its entries can be shared by multiple upstream channels, and each channel gets a modulation profile for every docsIfModIntervalUsageCode value.
--
-- The following table provides upstream channel modulation profiles.
-- Entries in this table can be
-- re-used by one or more upstream channels. An upstream channel
-- will have a modulation profile for each value of
-- docsIfModIntervalUsageCode.
--
docsIfCmtsModulationTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmtsModulationEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes a modulation profile associated with one or more
upstream channels."
::= { docsIfCmtsObjects 5 }
docsIfCmtsModulationEntry OBJECT-TYPE
SYNTAX DocsIfCmtsModulationEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes a modulation profile for an Interval Usage Code
for one or more upstream channels.
Entries in this table are created by the operator.
Initial default entries MAY be created at system
initialization time, which could report a value of
'permanent' or 'readOnly' for docsIfCmtsModStorageType.
A CMTS MAY reject the creation of additional Interval
Usage Codes for a modulation profile being defined at
Initialization time.
No individual objects have to be specified in order
to create an entry in this table.
Note that some objects do not have DEFVAL clauses
but do have calculated defaults and need not be specified
during row creation."
INDEX { docsIfCmtsModIndex, docsIfCmtsModIntervalUsageCode}
::= { docsIfCmtsModulationTable 1 }
DocsIfCmtsModulationEntry ::= SEQUENCE {
docsIfCmtsModIndex Integer32,
docsIfCmtsModIntervalUsageCode INTEGER,
docsIfCmtsModControl RowStatus,
docsIfCmtsModType INTEGER,
docsIfCmtsModPreambleLen Integer32,
docsIfCmtsModDifferentialEncoding TruthValue,
docsIfCmtsModFECErrorCorrection Integer32,
docsIfCmtsModFECCodewordLength Integer32,
docsIfCmtsModScramblerSeed Integer32,
docsIfCmtsModMaxBurstSize Integer32,
docsIfCmtsModGuardTimeSize Unsigned32,
docsIfCmtsModLastCodewordShortened TruthValue,
docsIfCmtsModScrambler TruthValue,
docsIfCmtsModByteInterleaverDepth Unsigned32,
docsIfCmtsModByteInterleaverBlockSize Unsigned32,
docsIfCmtsModPreambleType INTEGER,
docsIfCmtsModTcmErrorCorrectionOn TruthValue,
docsIfCmtsModScdmaInterleaverStepSize Unsigned32,
docsIfCmtsModScdmaSpreaderEnable TruthValue,
docsIfCmtsModScdmaSubframeCodes Unsigned32,
docsIfCmtsModChannelType DocsisUpstreamType,
docsIfCmtsModStorageType StorageType
}
docsIfCmtsModIndex OBJECT-TYPE
SYNTAX Integer32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An index into the Channel Modulation table representing
a group of Interval Usage Codes, all associated with the
same channel."
::= { docsIfCmtsModulationEntry 1 }
docsIfCmtsModIntervalUsageCode OBJECT-TYPE
SYNTAX INTEGER {
request(1),
requestData(2),
initialRanging(3),
periodicRanging(4),
shortData(5),
longData(6),
advPhyShortData(9),
advPhyLongData(10),
ugs(11)
}
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An index into the Channel Modulation table that, when
grouped with other Interval Usage Codes, fully
instantiates all modulation sets for a given upstream
channel."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 8-20."
::= { docsIfCmtsModulationEntry 2 }
docsIfCmtsModControl OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Controls and reflects the status of rows in this table.
There is no restriction on the changing of values in this
table while their associated rows are active, with the
exception of:
1. If a modulation profile is being referenced by one
or more upstream channels, an attempt to set the value
of docsIfCmtsModChannelType returns an
'inconsistentValue' error.
2. If a modulation profile is being referenced by one
or more upstream channels, an attempt to set
docsIfCmtsModControl to destroy(6) or notInService(2)
returns an 'inconsistentValue' error."
::= { docsIfCmtsModulationEntry 3 }
docsIfCmtsModType OBJECT-TYPE
SYNTAX INTEGER {
other(1),
qpsk(2),
qam16(3),
qam8(4),
qam32(5),
qam64(6),
qam128(7)
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The modulation type used on this channel. Returns
other(1) if the modulation type is not
qpsk, qam16, qam8, qam32, qam64, or qam128.
Type qam128 is used for SCDMA channels only.
See the reference for the modulation profiles
implied by different modulation types."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { qpsk }
::= { docsIfCmtsModulationEntry 4 }
The vibe check on docsIfCmtsModControl: you can't just change things willy-nilly once a profile is in use. If a channel is referencing it, changing docsIfCmtsModChannelType throws an inconsistentValue error, and so does setting it to destroy(6) or notInService(2) ๐ Not allowed, babe ๐
โโ๏ธ
Okay bestie, the modulation profile table is still serving ๐ Every object here has its own job, so I'm keeping the MIB definitions exactly as written. Get ready for the DEFVAL drama and the bit-order plot twist at the end ๐ฅ
docsIfCmtsModPreambleLen OBJECT-TYPE
SYNTAX Integer32 (0..1536)
UNITS "bits"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The preamble length for this modulation profile in bits.
Default value is the minimum needed by the implementation
at the CMTS for the given modulation profile."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
::= { docsIfCmtsModulationEntry 5 }
docsIfCmtsModDifferentialEncoding OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Specifies whether or not differential encoding is used
on this channel."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { false }
::= { docsIfCmtsModulationEntry 6 }
docsIfCmtsModFECErrorCorrection OBJECT-TYPE
SYNTAX Integer32 (0..16)
UNITS "Bytes"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The number of correctable errored bytes (t) used in
forward error correction code. The value of 0 indicates
that no correction is employed. The number of check bytes
appended will be twice this value."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { 0 }
::= { docsIfCmtsModulationEntry 7 }
docsIfCmtsModFECCodewordLength OBJECT-TYPE
SYNTAX Integer32 (1..255)
UNITS "Bytes"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The number of data bytes (k) in the forward error
correction codeword.
This object is not used if docsIfCmtsModFECErrorCorrection
is zero."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { 32 }
::= { docsIfCmtsModulationEntry 8 }
docsIfCmtsModScramblerSeed OBJECT-TYPE
SYNTAX Integer32 (0..32767)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The 15-bit seed value for the scrambler polynomial."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 8-19."
DEFVAL { 0 }
::= { docsIfCmtsModulationEntry 9 }
docsIfCmtsModMaxBurstSize OBJECT-TYPE
SYNTAX Integer32 (0..255)
UNITS "mini-slots"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The maximum number of mini-slots that can be transmitted
during this channel's burst time. Returns zero if the
burst length is bounded by the allocation MAP rather than
by this profile.
Default value is 0, except for shortData, where it is 8."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 8-19."
::= { docsIfCmtsModulationEntry 10 }
docsIfCmtsModGuardTimeSize OBJECT-TYPE
SYNTAX Unsigned32
UNITS "Symbol-times"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of symbol-times that MUST follow the end of
this channel's burst. Default value is the minimum time
needed by the implementation for this modulation profile."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
::= { docsIfCmtsModulationEntry 11 }
docsIfCmtsModLastCodewordShortened OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Indicates whether the last FEC codeword is truncated."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { true }
::= { docsIfCmtsModulationEntry 12 }
docsIfCmtsModScrambler OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Indicates whether the scrambler is employed."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { false }
::= { docsIfCmtsModulationEntry 13 }
docsIfCmtsModByteInterleaverDepth OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"ATDMA Byte Interleaver Depth (Ir). This object returns 1
for non-ATDMA profiles."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { 1 }
::= { docsIfCmtsModulationEntry 14 }
docsIfCmtsModByteInterleaverBlockSize OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"ATDMA Byte Interleaver Block size (Br). This object
returns zero for non-ATDMA profiles "
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { 18 }
::= { docsIfCmtsModulationEntry 15 }
docsIfCmtsModPreambleType OBJECT-TYPE
SYNTAX INTEGER {
unknown(0),
qpsk0(1),
qpsk1(2)
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Preamble type for DOCSIS 2.0 bursts. The value
'unknown(0)' represents a row entry consisting only of
DOCSIS 1.x bursts"
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { qpsk0 }
::= { docsIfCmtsModulationEntry 16 }
docsIfCmtsModTcmErrorCorrectionOn OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Trellis Code Modulation (TCM) On/Off. This value returns
false for non-S-CDMA profiles."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { false }
::= { docsIfCmtsModulationEntry 17 }
docsIfCmtsModScdmaInterleaverStepSize OBJECT-TYPE
SYNTAX Unsigned32 (0 | 1..32)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
" S-CDMA Interleaver step size. This value returns zero
for non-S-CDMA profiles."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
DEFVAL { 1 }
::= { docsIfCmtsModulationEntry 18 }
docsIfCmtsModScdmaSpreaderEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-create
STATUS current
DESCRIPTION
" S-CDMA spreader. This value returns false for non-S-CDMA
profiles. Default value for IUC 3 and 4 is OFF; for
all other IUCs it is ON."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Tables 6-7, and 8-19."
::= { docsIfCmtsModulationEntry 19 }
docsIfCmtsModScdmaSubframeCodes OBJECT-TYPE
SYNTAX Unsigned32 (0 | 1..128)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
" S-CDMA sub-frame size. This value returns zero
for non-S-CDMA profiles."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 6-7, and 8-19."
DEFVAL { 1 }
::= { docsIfCmtsModulationEntry 20 }
docsIfCmtsModChannelType OBJECT-TYPE
SYNTAX DocsisUpstreamType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Describes the modulation channel type for this modulation
entry.
All the active entries in a modulation profile (that is all
active entries that share a common docsIfCmtsModIndex)
MUST have the same value of docsIfCmtsModChannelType."
REFERENCE
"Data-Over-Cable Service Interface Specifications: Radio
Frequency Interface Specification SP-RFIv2.0-I10-051209,
Table 8-19."
DEFVAL { tdma }
::= { docsIfCmtsModulationEntry 21 }
docsIfCmtsModStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The storage type for this conceptual row.
Entries with this object set to permanent(4)
do not require write operations for read-write
objects."
DEFVAL { nonVolatile }
::= { docsIfCmtsModulationEntry 22 }
docsIfCmtsQosProfilePermissions OBJECT-TYPE
SYNTAX BITS {
createByManagement(0),
updateByManagement(1),
createByModems(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object specifies permitted methods of creating
entries in docsIfQosProfileTable.
createByManagement(0) is set if entries can be created
using SNMP. updateByManagement(1) is set if updating
entries using SNMP is permitted. createByModems(2)
is set if entries can be created based on information
in REG-REQ MAC messages received from cable modems.
Information in this object is only applicable if
docsIfQosProfileTable is implemented as read-create.
Otherwise, this object is implemented as read-only
and returns createByModems(2).
Either createByManagement(0) or updateByManagement(1)
MUST be set when writing to this object.
Note that BITS objects are encoded most significant bit
first. For example, if bit 2 is set, the value of this
object is the octet string '20'H."
::= { docsIfCmtsObjects 6 }
That's the modulation profile crew wrapped up โจ Next up, the rest of the definitions keep coming ๐ฆ
docsIfCmtsMacToCmTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmtsMacToCmEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This is a table to provide a quick access index into the
docsIfCmtsCmStatusTable. There is exactly one row in this
table for each row in the docsIfCmtsCmStatusTable. In
general, the management station SHOULD use this table only
to get a pointer into the docsIfCmtsCmStatusTable (which
corresponds to the CM's RF interface MAC address) and
SHOULD not iterate (e.g., GetNext through) this table."
::= { docsIfCmtsObjects 7 }
docsIfCmtsMacToCmEntry OBJECT-TYPE
SYNTAX DocsIfCmtsMacToCmEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A row in the docsIfCmtsMacToCmTable.
An entry in this table exists for each cable modem
that is connected to the CMTS implementing this table."
INDEX { docsIfCmtsCmMac }
::= {docsIfCmtsMacToCmTable 1 }
DocsIfCmtsMacToCmEntry ::= SEQUENCE {
docsIfCmtsCmMac MacAddress,
docsIfCmtsCmPtr Integer32
}
docsIfCmtsCmMac OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The RF side MAC address for the referenced CM (e.g., the
interface on the CM that has docsCableMacLayer(127) as
its ifType)."
::= { docsIfCmtsMacToCmEntry 1 }
docsIfCmtsCmPtr OBJECT-TYPE
SYNTAX Integer32 (1..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"An row index into docsIfCmtsCmStatusTable. When queried
with the correct instance value (e.g., a CM's MAC address),
returns the index in docsIfCmtsCmStatusTable that
represents that CM."
::= { docsIfCmtsMacToCmEntry 2 }
Okay bestie, so this next bit is the lookup table ๐ง It's basically a fast-track index: every cable modem gets one row, keyed by its RF-side MAC address, and that row just points you to the right spot in the docsIfCmtsCmStatusTable. The spec is pretty clear that the management station should use it just to grab that pointer and shouldn't go iterating through the whole thing ๐ Main character energy is knowing when not to scroll, periodt ๐
Real talk, the CM's RF interface MAC is the key here, so it's giving "look up by address, get your index, move on" ๐ฆ
docsIfCmtsChannelUtilizationInterval OBJECT-TYPE
SYNTAX Integer32 (0..86400)
UNITS "seconds"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The time interval in seconds over which the channel
utilization index is calculated. All upstream/downstream
channels use the same
docsIfCmtsChannelUtilizationInterval.
Setting a value of zero disables utilization reporting.
A channel utilization index is calculated over a fixed
window applying to the most recent
docsIfCmtsChannelUtilizationInterval. It would therefore
be prudent to use a relatively short
docsIfCmtsChannelUtilizationInterval.
It is a vendor decision whether to reset the timer when
docsIfCmtsChannelUtilizationInterval is changed during a
utilization sampling period."
::= { docsIfCmtsObjects 8 }
docsIfCmtsChannelUtilizationTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmtsChannelUtilizationEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Reports utilization statistics for attached upstream and
downstream physical channels."
::= { docsIfCmtsObjects 9 }
docsIfCmtsChannelUtilizationEntry OBJECT-TYPE
SYNTAX DocsIfCmtsChannelUtilizationEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Utilization statistics for a single upstream or downstream
physical channel. An entry exists in this table for each
ifEntry with an ifType equal to
docsCableDownstream (128)
or docsCableUpstream (129)."
INDEX { ifIndex, docsIfCmtsChannelUtIfType,
docsIfCmtsChannelUtId }
::= { docsIfCmtsChannelUtilizationTable 1 }
DocsIfCmtsChannelUtilizationEntry ::= SEQUENCE {
docsIfCmtsChannelUtIfType IANAifType,
docsIfCmtsChannelUtId Integer32,
docsIfCmtsChannelUtUtilization Integer32
}
docsIfCmtsChannelUtIfType OBJECT-TYPE
SYNTAX IANAifType
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The secondary index into this table. Indicates the IANA
interface type associated with this physical channel.
Only docsCableDownstream (128) and
docsCableUpstream (129) are valid."
::= { docsIfCmtsChannelUtilizationEntry 1 }
docsIfCmtsChannelUtId OBJECT-TYPE
SYNTAX Integer32 (0..255)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The tertiary index into this table. Indicates the CMTS
identifier for this physical channel."
::= { docsIfCmtsChannelUtilizationEntry 2 }
docsIfCmtsChannelUtUtilization OBJECT-TYPE
SYNTAX Integer32 (0..100)
UNITS "percent"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The calculated and truncated utilization index for this
physical upstream or downstream channel, accurate as of
the most recent docsIfCmtsChannelUtilizationInterval.
Upstream Channel Utilization Index:
The upstream channel utilization index is expressed as a
percentage of mini-slots utilized on the physical channel,
regardless of burst type. For an Initial Maintenance
region, the mini-slots for the complete region are
considered utilized if the CMTS received an upstream
burst within the region from any CM on the physical
channel. For contention REQ and REQ/DATA regions, the
mini-slots for a transmission opportunity within the
region are considered utilized if the CMTS received an
upstream burst within the opportunity from any CM on the
physical channel. For all other regions, utilized
mini-slots are those in which the CMTS granted
bandwidth to any unicast SID on the physical channel.
For an upstream interface that has multiple logical
upstream channels enabled, the utilization index is a
weighted sum of utilization indices for the logical
channels. The weight for each utilization index is the
percentage of upstream mini-slots allocated for the
corresponding logical channel.
Example:
If 75% of bandwidth is allocated to the first logical
channel and 25% to the second, and the utilization
indices for each are 60 and 40, respectively, the
utilization index for the upstream physical channel is
(60 * 0.75) + (40 * 0.25) = 55. This figure
applies to the most recent utilization interval.
Downstream Channel Utilization Index:
The downstream channel utilization index is a percentage
expressing the ratio between bytes used to transmit data
versus the total number of bytes transmitted in the raw
bandwidth of the MPEG channel. As with the upstream
utilization index, the calculated value represents
the most recent utilization interval.
Formula:
Downstream utilization index =
(100 * (data bytes / raw bytes))
Definitions:
Data bytes: Number of bytes transmitted as data in the
docsIfCmtsChannelUtilizationInterval.
Identical to docsIfCmtsDownChannelCtrUsed
Bytes measured over the utilization
interval.
Raw bandwidth: Total number of bytes available for
transmitting data, not including bytes
used for headers and other overhead.
Raw bytes: (raw bandwidth *
docsIfCmtsChannelUtilizationInterval).
Identical to docsIfCmtsDownChannelCtrTotal
Bytes measured over the utilization
interval."
::= { docsIfCmtsChannelUtilizationEntry 3 }
Okay this part is where the utilization stuff lives ๐ Basically it's a percentage showing how busy each upstream or downstream channel was over the most recent sampling window, which is super handy for capacity planning, incident digging, and keeping your high value QoS in check โจ
The window itself is set by docsIfCmtsChannelUtilizationInterval, which is measured in seconds, and setting it to zero turns utilization reporting off ๐ The spec also says it's wise to keep that interval fairly short, and that whether the timer resets when you change it mid-sample is up to the vendor ๐
The calculation details are all spelled out in the description of docsIfCmtsChannelUtUtilization above ๐ Upstream gets a mini-slot-based index (with a weighted sum if there are multiple logical channels), and downstream is just data bytes over raw bytes, times one hundred. Real ones know the math is the whole vibe ๐งฎ
docsIfCmtsDownChannelCounterTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmtsDownChannelCounterEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is implemented at the CMTS to collect
downstream channel statistics for utilization
calculations."
::= { docsIfCmtsObjects 10 }
docsIfCmtsDownChannelCounterEntry OBJECT-TYPE
SYNTAX DocsIfCmtsDownChannelCounterEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry provides a list of traffic counters for a single
downstream channel.
An entry in this table exists for each ifEntry with an
ifType of docsCableDownstream(128)."
INDEX { ifIndex }
::= { docsIfCmtsDownChannelCounterTable 1 }
DocsIfCmtsDownChannelCounterEntry ::= SEQUENCE {
docsIfCmtsDownChnlCtrId Integer32,
docsIfCmtsDownChnlCtrTotalBytes Counter32,
docsIfCmtsDownChnlCtrUsedBytes Counter32,
docsIfCmtsDownChnlCtrExtTotalBytes Counter64,
docsIfCmtsDownChnlCtrExtUsedBytes Counter64
}
docsIfCmtsDownChnlCtrId OBJECT-TYPE
SYNTAX Integer32 (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Cable Modem Termination System identification
of the downstream channel within this particular MAC
interface. If the interface is down, the object returns
the most current value. If the downstream channel ID is
unknown, this object returns a value of 0."
::= { docsIfCmtsDownChannelCounterEntry 1 }
Last bit for now: if you want to do your own math on downstream usage, you can poll these counters directly instead of relying on the utilization table ๐ The 32-bit counters are only there so older SNMPv1 managers can still read them, since they can't handle the 64-bit ones ๐
Okay bestie, the downstream counters are done and now we're getting into the upstream ones ๐ฆ These are how the CMTS keeps score on upstream mini-slots, and the 32-bit versions are there for old SNMPv1 managers ๐
docsIfCmtsDownChnlCtrTotalBytes OBJECT-TYPE
SYNTAX Counter32
UNITS "Bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"At the CMTS, the total number of bytes in the Payload
portion of MPEG Packets (i.e., not including MPEG header
or pointer_field) transported by this downstream channel.
This is the 32-bit version of
docsIfCmtsDownChnlCtrExtTotalBytes, included to provide
back compatibility with SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsDownChannelCounterEntry 2 }
docsIfCmtsDownChnlCtrUsedBytes OBJECT-TYPE
SYNTAX Counter32
UNITS "Bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"At the CMTS, the total number of DOCSIS data bytes
transported by this downstream channel.
The number of data bytes is defined as the total number
of bytes transported in DOCSIS payloads minus the number
of stuff bytes transported in DOCSIS payloads.
This is the 32-bit version of
docsIfCmtsDownChnlCtrExtUsedBytes, included to provide
back compatibility with SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsDownChannelCounterEntry 3 }
docsIfCmtsDownChnlCtrExtTotalBytes OBJECT-TYPE
SYNTAX Counter64
UNITS "Bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"At the CMTS, the total number of bytes in the Payload
portion of MPEG Packets (i.e., not including MPEG header
or pointer_field) transported by this downstream
channel.
This is the 64-bit version of
docsIfCmtsDownChnlCtrTotalBytes and will not be
accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsDownChannelCounterEntry 4 }
docsIfCmtsDownChnlCtrExtUsedBytes OBJECT-TYPE
SYNTAX Counter64
UNITS "Bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"At the CMTS, the total number of DOCSIS data bytes
transported by this downstream channel. The number
of data bytes is defined as the total number of bytes
transported in DOCSIS payloads minus the number of
stuff bytes transported in DOCSIS payloads.
This is the 64-bit version of
docsIfCmtsDownChnlCtrUsedBytes and will not be accessible
to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsDownChannelCounterEntry 5 }
Now the upstream table, which is the real main character of this batch ๐ Read the comments in here, they lay out which objects are must-haves and which ones are the bonus extras ๐ธ
-- The following table provides operators with input data appropriate
-- for calculating upstream channel utilization, and for determining
-- the traffic characteristics of upstream channels. Operators may
-- use the docsIfCmtsChannelUtilizationTable or perform their own
-- polling of the docsIfCmtsUpChannelCounterTable objects for
-- utilization determination.
-- The first four 32 and 64 objects in this table are mandatory.
-- Vendors may choose to implement the remaining optional objects to
-- provide operators with finer characterization of upstream channel
-- traffic patterns. The 32-bit counter objects are included to
-- provide backward compatibility with SNMPv1 managers, which cannot
-- access 64-bit counter objects.
docsIfCmtsUpChannelCounterTable OBJECT-TYPE
SYNTAX SEQUENCE OF DocsIfCmtsUpChannelCounterEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is implemented at the CMTS to provide upstream
channel statistics appropriate for channel utilization
calculations."
::= { docsIfCmtsObjects 11 }
docsIfCmtsUpChannelCounterEntry OBJECT-TYPE
SYNTAX DocsIfCmtsUpChannelCounterEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"List of traffic statistics for a single upstream channel.
For DOCSIS 2.0 CMTSs, an entry in this table
exists for each ifEntry with an ifType of
docsCableUpstreamChannel (205).
For DOCSIS 1.x CMTSs, an entry in this table
exists for each ifEntry with an ifType of
docsCableUpstream (129)."
INDEX { ifIndex }
::= { docsIfCmtsUpChannelCounterTable 1 }
DocsIfCmtsUpChannelCounterEntry ::= SEQUENCE {
docsIfCmtsUpChnlCtrId Integer32,
docsIfCmtsUpChnlCtrTotalMslots Counter32,
docsIfCmtsUpChnlCtrUcastGrantedMslots Counter32,
docsIfCmtsUpChnlCtrTotalCntnMslots Counter32,
docsIfCmtsUpChnlCtrUsedCntnMslots Counter32,
docsIfCmtsUpChnlCtrExtTotalMslots Counter64,
docsIfCmtsUpChnlCtrExtUcastGrantedMslots Counter64,
docsIfCmtsUpChnlCtrExtTotalCntnMslots Counter64,
docsIfCmtsUpChnlCtrExtUsedCntnMslots Counter64,
docsIfCmtsUpChnlCtrCollCntnMslots Counter32,
docsIfCmtsUpChnlCtrTotalCntnReqMslots Counter32,
docsIfCmtsUpChnlCtrUsedCntnReqMslots Counter32,
docsIfCmtsUpChnlCtrCollCntnReqMslots Counter32,
docsIfCmtsUpChnlCtrTotalCntnReqDataMslots Counter32,
docsIfCmtsUpChnlCtrUsedCntnReqDataMslots Counter32,
docsIfCmtsUpChnlCtrCollCntnReqDataMslots Counter32,
docsIfCmtsUpChnlCtrTotalCntnInitMaintMslots Counter32,
docsIfCmtsUpChnlCtrUsedCntnInitMaintMslots Counter32,
docsIfCmtsUpChnlCtrCollCntnInitMaintMslots Counter32,
docsIfCmtsUpChnlCtrExtCollCntnMslots Counter64,
docsIfCmtsUpChnlCtrExtTotalCntnReqMslots Counter64,
docsIfCmtsUpChnlCtrExtUsedCntnReqMslots Counter64,
docsIfCmtsUpChnlCtrExtCollCntnReqMslots Counter64,
docsIfCmtsUpChnlCtrExtTotalCntnReqDataMslots Counter64,
docsIfCmtsUpChnlCtrExtUsedCntnReqDataMslots Counter64,
docsIfCmtsUpChnlCtrExtCollCntnReqDataMslots Counter64,
docsIfCmtsUpChnlCtrExtTotalCntnInitMaintMslots Counter64,
docsIfCmtsUpChnlCtrExtUsedCntnInitMaintMslots Counter64,
docsIfCmtsUpChnlCtrExtCollCntnInitMaintMslots Counter64
}
docsIfCmtsUpChnlCtrId OBJECT-TYPE
SYNTAX Integer32 (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The CMTS identification of the upstream channel."
::= { docsIfCmtsUpChannelCounterEntry 1 }
docsIfCmtsUpChnlCtrTotalMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of all mini-slots
defined for this upstream logical channel. This count
includes all IUCs and SIDs, even those allocated to the
NULL SID for a 2.0 logical channel that is inactive. This
is the 32-bit version of docsIfCmtsUpChnlCtrExtTotalMslots
and is included for back compatibility with SNMPv1
managers. Support for this object is mandatory.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 2 }
docsIfCmtsUpChnlCtrUcastGrantedMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of unicast
granted mini-slots on the upstream logical channel,
regardless of burst type. Unicast granted mini-slots are
those in which the CMTS assigned bandwidth to any unicast
SID on the logical channel. However, this object does not
include minis-lots for reserved IUCs, or grants to SIDs
designated as meaning 'no CM'. This is the 32-bit version
of docsIfCmtsUpChnlCtrExtUcastGrantedMslots, and is
included for back compatibility with SNMPv1 managers.
Support for this object is mandatory.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 3 }
docsIfCmtsUpChnlCtrTotalCntnMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
mini-slots defined for this upstream logical channel. This
count includes all mini-slots assigned to a broadcast or
multicast SID on the logical channel. This is the 32-bit
version of docsIfCmtsUpChnlCtrExtTotalCntnMslots, and is
included for back compatibility with SNMPv1 managers.
Support for this object is mandatory.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 4 }
docsIfCmtsUpChnlCtrUsedCntnMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
mini-slots utilized on the upstream logical channel. For
contention regions, utilized mini-slots are those in which
the CMTS correctly received an upstream burst from any CM
on the upstream logical channel. This is the 32-bit
version of docsIfCmtsUpChnlCtrExtUsedCntnMslots and is
included for back compatibility with SNMPv1 managers.
Support for this object is mandatory.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 5 }
okay bestie, we're still deep in the MIB definitions ๐ฆ these are the upstream mini-slot counters for each logical channel, both the 64-bit Counter64 versions and the 32-bit Counter32 ones that SNMPv1 managers can still read ๐
docsIfCmtsUpChnlCtrExtTotalMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of all mini-slots
defined for this upstream logical channel. This count
includes all IUCs and SIDs, even those allocated to the
NULL SID for a 2.0 logical channel that is inactive. This
is the 64-bit version of docsIfCmtsUpChnlCtrTotalMslots
and will not be accessible to SNMPv1 managers.
Support for this object is mandatory.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 6 }
docsIfCmtsUpChnlCtrExtUcastGrantedMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of unicast
granted mini-slots on the upstream logical channel,
regardless of burst type. Unicast granted mini-slots are
those in which the CMTS assigned bandwidth to any unicast
SID on the logical channel. However, this object does not
include mini-slots for reserved IUCs, or grants to SIDs
designated as meaning 'no CM'. This is the 64-bit version
of docsIfCmtsUpChnlCtrUcastGrantedMslots and will not be
accessible to SNMPv1 managers.
Support for this object is mandatory.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 7 }
docsIfCmtsUpChnlCtrExtTotalCntnMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
mini-slots defined for this upstream logical channel. This
count includes all mini-slots assigned to a broadcast or
multicast SID on the logical channel. This is the 64-bit
version of docsIfCmtsUpChnlCtrTotalCntnMslots and will
not be accessible to SNMPv1 managers.
Support for this object is mandatory.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 8 }
docsIfCmtsUpChnlCtrExtUsedCntnMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
mini-slots utilized on the upstream logical channel. For
contention regions, utilized mini-slots are those in which
the CMTS correctly received an upstream burst from any CM
on the upstream logical channel. This is the 64-bit
version of docsIfCmtsUpChnlCtrUsedCntnMslots and will not
be accessible to SNMPv1 managers.
Support for this object is mandatory.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 9 }
docsIfCmtsUpChnlCtrCollCntnMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
mini-slots subjected to collisions on the upstream logical
channel. For contention regions, these are the mini-slots
applicable to bursts that the CMTS detected but could not
correctly receive. This is the 32-bit version of
docsIfCmtsUpChnlCtrExtCollCntnMslots and is included for
back compatibility with SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 10 }
docsIfCmtsUpChnlCtrTotalCntnReqMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request mini-slots defined for this upstream logical
channel. This count includes all mini-slots for IUC1
assigned to a broadcast or multicast SID on the logical
channel. This is the 32-bit version of
docsIfCmtsUpChnlCtrExtTotalCntnReqMslots and is included
for back compatibility with SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 11 }
docsIfCmtsUpChnlCtrUsedCntnReqMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request mini-slots utilized on this upstream logical
channel. This count includes all contention mini-slots for
IUC1 applicable to bursts that the CMTS correctly
received. This is the 32-bit version of
docsIfCmtsUpChnlCtrExtUsedCntnReqMslots and is included
for back compatibility with SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 12 }
docsIfCmtsUpChnlCtrCollCntnReqMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request mini-slots subjected to collisions on this upstream
logical channel. This includes all contention mini-slots
for IUC1 applicable to bursts that the CMTS detected but
could not correctly receive. This is the 32-bit version of
docsIfCmtsUpChnlCtrExtCollCntnReqMslots and is included
for back compatibility with SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 13 }
docsIfCmtsUpChnlCtrTotalCntnReqDataMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request data mini-slots defined for this upstream logical
channel. This count includes all mini-slots for IUC2
assigned to a broadcast or multicast SID on the logical
channel. This is the 32-bit version of
docsIfCmtsUpChnlCtrExtTotalCntnReqDataMslots and is
included for back compatibility with SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 14 }
docsIfCmtsUpChnlCtrUsedCntnReqDataMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request data mini-slots utilized on this upstream logical
channel. This includes all contention mini-slots for IUC2
applicable to bursts that the CMTS correctly received.
This is the 32-bit version of
docsIfCmtsUpChnlCtrExtUsedCntnReqDataMslots and is
included for back compatibility with SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 15 }
docsIfCmtsUpChnlCtrCollCntnReqDataMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request data mini-slots subjected to collisions on this
upstream logical channel. This includes all contention
mini-slots for IUC2 applicable to bursts that the CMTS
detected, but could not correctly receive. This is the
32-bit version of
docsIfCmtsUpChnlCtrExtCollCntnReqDataMslots and is
included for back compatibility with SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 16 }
docsIfCmtsUpChnlCtrTotalCntnInitMaintMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
initial maintenance mini-slots defined for this upstream
logical channel. This includes all mini-slots for IUC3
assigned to a broadcast or multicast SID on the logical
channel. This is the 32-bit version of
docsIfCmtsUpChnlCtrExtTotalCntnInitMaintMslots
and is included for back compatibility with SNMPv1
managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 17 }
okay so this part is all about the upstream counters on the CMTS, and they're giving main character energy ๐โจ
docsIfCmtsUpChnlCtrUsedCntnInitMaintMslots OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
initial maintenance mini-slots utilized on this upstream
logical channel. This includes all contention mini-slots
for IUC3 applicable to bursts that the CMTS correctly
received. This is the 32-bit version of
docsIfCmtsUpChnlCtrExtUsedCntnInitMaintMslots
and is included for back compatibility with SNMPv1
managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 18 }
docsIfCmtsUpChnlCtrCollCntnInitMaintMslots OBJECT-TYPE
SYNTAX Counter32
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
initial maintenance mini-slots subjected to collisions on
this upstream logical channel. This includes all
contention mini-slots for IUC3 applicable to bursts that
the CMTS detected, but could not correctly receive.
This is the 32-bit version of
docsIfCmtsUpChnlCtrExtCollCntnInitMaintMslots
and is included for back compatibility with SNMPv1
managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 19 }
docsIfCmtsUpChnlCtrExtCollCntnMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of collision
contention mini-slots on the upstream logical channel.
For contention regions, these are the mini-slots applicable
to bursts that the CMTS detected, but could not correctly
receive. This is the 64-bit version of
docsIfCmtsUpChnlCtrCollCntnMslots and will not be
accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 20 }
docsIfCmtsUpChnlCtrExtTotalCntnReqMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request mini-slots defined for this upstream logical
channel. This count includes all mini-slots for IUC1
assigned to a broadcast or multicast SID on the logical
channel. This is the 64-bit version of
docsIfCmtsUpChnlCtrTotalCntnReqMslots and will not be
accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 21 }
docsIfCmtsUpChnlCtrExtUsedCntnReqMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request mini-slots utilized on this upstream logical
channel. This count includes all contention mini-slots for
IUC1 applicable to bursts that the CMTS correctly
received. This is the 64-bit version of
docsIfCmtsUpChnlCtrUsedCntnReqMslots and will not be
accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 22 }
docsIfCmtsUpChnlCtrExtCollCntnReqMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request mini-slots subjected to collisions on this upstream
logical channel. This includes all contention mini-slots
for IUC1 applicable to bursts that the CMTS detected,
but could not correctly receive. This is the 64-bit
version of docsIfCmtsUpChnlCtrCollCntnReqMslots and will
not be accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 23 }
docsIfCmtsUpChnlCtrExtTotalCntnReqDataMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request data mini-slots defined for this upstream logical
channel. This count includes all mini-slots for IUC2
assigned to a broadcast or multicast SID on the logical
channel. This is the 64-bit version of
docsIfCmtsUpChnlCtrTotalCntnReqDataMslots and will not be
accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 24 }
docsIfCmtsUpChnlCtrExtUsedCntnReqDataMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request data mini-slots utilized on this upstream logical
channel. This includes all contention mini-slots for IUC2
applicable to bursts that the CMTS correctly received.
This is the 64-bit version of
docsIfCmtsUpChnlCtrUsedCntnReqDataMslots and will not be
accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 25 }
docsIfCmtsUpChnlCtrExtCollCntnReqDataMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
request data mini-slots subjected to collisions on this
upstream logical channel. This includes all contention
mini-slots for IUC2 applicable to bursts that the CMTS
detected, but could not correctly receive. This is the
64-bit version of
docsIfCmtsUpChnlCtrCollCntnReqDataMslots
and will not be accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 26 }
docsIfCmtsUpChnlCtrExtTotalCntnInitMaintMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of initial
maintenance mini-slots defined for this upstream logical
channel. This count includes all mini-slots for IUC3
assigned to a broadcast or multicast SID on the logical
channel. This is the 64-bit version of
docsIfCmtsUpChnlCtrTotalCntnInitMaintMslots
and will not be accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 27 }
docsIfCmtsUpChnlCtrExtUsedCntnInitMaintMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of initial
maintenance mini-slots utilized on this upstream logical
channel. This includes all contention mini-slots for IUC3
applicable to bursts that the CMTS correctly received.
This is the 64-bit version of
docsIfCmtsUpChnlCtrUsedCntnInitMaintMslots
and will not be accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 28 }
docsIfCmtsUpChnlCtrExtCollCntnInitMaintMslots OBJECT-TYPE
SYNTAX Counter64
UNITS "mini-slots"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current count, from CMTS initialization, of contention
initial maintenance mini-slots subjected to collisions on
this upstream logical channel. This includes all
contention mini-slots for IUC3 applicable to bursts that
the CMTS detected, but could not correctly receive.
This is the 64-bit version of
docsIfCmtsUpChnlCtrCollCntnInitMaintMslots and will not
be accessible to SNMPv1 managers.
Discontinuities in the value of this counter can occur
at reinitialization of the managed system, and at other
times as indicated by the value of
ifCounterDiscontinuityTime for the associated ifIndex."
::= { docsIfCmtsUpChannelCounterEntry 29 }
--
-- notification group is for future extension.
--
docsIfNotification OBJECT IDENTIFIER ::= { docsIfMib 2 }
--
-- MIB Compliance statements.
--
--
-- Conformance definitions
--
docsIfConformance OBJECT IDENTIFIER ::= { docsIfMib 3 }
docsIfCompliances OBJECT IDENTIFIER ::= { docsIfConformance 1 }
docsIfGroups OBJECT IDENTIFIER ::= { docsIfConformance 2 }
okay bestie, we're now in the compliance statements for DOCSIS 1.x and 2.0 devices ๐โจ
docsIfBasicCompliance MODULE-COMPLIANCE
STATUS deprecated
DESCRIPTION
"The compliance statement for devices that implement
DOCSIS 1.x compliant Radio Frequency Interfaces."
MODULE -- docsIfMib
-- unconditionally mandatory groups
MANDATORY-GROUPS {
docsIfBasicGroup
}
-- conditionally mandatory group
GROUP docsIfCmGroup
DESCRIPTION
"This group is implemented only in cable modems, not in
cable modem termination systems."
-- conditionally mandatory group
GROUP docsIfCmtsGroup
DESCRIPTION
"This group is implemented only in cable modem termination
systems, not in cable modems."
OBJECT docsIfDownChannelFrequency
WRITE-SYNTAX Integer32 (54000000..860000000)
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems. The values above are
appropriate for a cable plant using a Sub-Split channel
plan. If DOCSIS is extended to cover other types of
channel plans (and frequency allocations), this object
will be modified accordingly."
OBJECT docsIfDownChannelWidth
WRITE-SYNTAX Integer32 (6000000)
MIN-ACCESS read-only
DESCRIPTION
"It is important to implement this object as read-only.
In cable modems, this object is always implemented as
read-only. The above value is appropriate for cable
plants running under NTSC (National Television
Standards Committee) standards. If DOCSIS is extended to
work with other standards (e.g., European standards), this
object will be modified accordingly."
OBJECT docsIfDownChannelModulation
WRITE-SYNTAX INTEGER {
qam64 (3),
qam256 (4)
}
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfDownChannelInterleave
WRITE-SYNTAX INTEGER {
taps8Increment16(3),
taps16Increment8(4),
taps32Increment4(5),
taps64Increment2(6),
taps128Increment1(7)
}
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfDownChannelPower
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelFrequency
WRITE-SYNTAX Integer32 (5000000..42000000)
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems. The values above are
appropriate for a cable plant using a Sub-Split channel
plan. If DOCSIS is extended to cover other types of
channel plans (and frequency allocations), this object
will be modified accordingly."
OBJECT docsIfUpChannelWidth
WRITE-SYNTAX Integer32 (200000..3200000)
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems. The above value is appropriate
for cable plants running under NTSC (National Television
Standards Committee) standards. If DOCSIS is extended to
work with other standards (e.g., European standards), this
object will be modified accordingly."
OBJECT docsIfUpChannelModulationProfile
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelSlotSize
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfUpChannelRangingBackoffStart
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelRangingBackoffEnd
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelTxBackoffStart
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelTxBackoffEnd
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfQosProfPriority
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfMaxUpBandwidth
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfGuarUpBandwidth
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfMaxDownBandwidth
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfMaxTxBurst
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfBaselinePrivacy
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfStatus
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfCmtsServiceAdminStatus
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsSyncInterval
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsUcdInterval
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsInsertInterval
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsInvitedRangingAttempts
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsQosProfilePermissions
WRITE-SYNTAX BITS {
createByManagement(0),
updateByManagement(1)
}
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsModType
WRITE-SYNTAX INTEGER {
qpsk (2),
qam16 (3)
}
DESCRIPTION
"A management station MAY only set 16QAM or QPSK modulation,
but others might be possible, based on device
configuration."
OBJECT docsIfCmtsModPreambleLen
SYNTAX Integer32 (0..1024)
DESCRIPTION
"The range of the values for this MODULE-COMPLIANCE
is 0..1024."
OBJECT docsIfCmtsModFECErrorCorrection
SYNTAX Integer32 (0..10)
DESCRIPTION
"The range of the values for this MODULE-COMPLIANCE
is 0..10."
::= { docsIfCompliances 1 }
docsIfBasicComplianceV2 MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for devices that implement
DOCSIS 2.0 Radio Frequency Interfaces."
MODULE -- docsIfMib
-- unconditionally mandatory groups
MANDATORY-GROUPS {
docsIfBasicGroupV2
}
-- conditionally mandatory group
GROUP docsIfCmGroupV2
DESCRIPTION
"This group is implemented only in cable modems, not in
cable modem termination systems."
-- conditionally mandatory group
GROUP docsIfCmtsGroupV2
DESCRIPTION
"This group is implemented only in cable modem termination
systems, not in cable modems."
OBJECT docsIfDownChannelFrequency
WRITE-SYNTAX Integer32 (47000000..862000000)
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems.
A range of 54MHz to 860MHz is appropriate for a cable
plant using a North American Sub-Split channel plan.
The spectrum range has been expanded to accommodate
a lower edge of 47MHz and an upper edge of 862MHz
for some European channel plans.
If DOCSIS is extended to cover other types of channel
plans (and frequency allocations), this object will be
modified accordingly."
OBJECT docsIfDownChannelWidth
WRITE-SYNTAX Integer32 (6000000 | 8000000)
MIN-ACCESS read-only
DESCRIPTION
"It is important to implement this object as read-only.
In cable modems, this object is always implemented as
read-only. The value of 6 MHz is appropriate for cable
plants running under NTSC (National Television
Standards Committee) standards. The value of 8 MHz is
appropriate for cable plants running under ETSI
standards. For other regional standards, this
object will be modified accordingly."
OBJECT docsIfDownChannelModulation
WRITE-SYNTAX INTEGER {
qam64 (3),
qam256 (4)
}
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfDownChannelInterleave
WRITE-SYNTAX INTEGER {
taps8Increment16(3),
taps16Increment8(4),
taps32Increment4(5),
taps64Increment2(6),
taps128Increment1(7),
taps12increment17(8)
}
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfDownChannelPower
MIN-ACCESS read-only
DESCRIPTION
"Read-write in cable modem termination systems;
read-only in cable modems."
okay bestie, this part is where the MIB gets into the compliance statements and object groups ๐ each OBJECT block says whether an object is read-create or read-only on a CM vs a CMTS, and the SCDMA code range is the big MUST-level rule in here ๐ฆ
OBJECT docsIfUpChannelFrequency
WRITE-SYNTAX Integer32 (5000000..65000000)
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems.
A range of 5MHz to 42MHz is appropriate for a cable
plant using a North American Sub-Split channel plan.
The spectrum range has been expanded to accommodate
an upper edge of 65MHz for some European channel plans.
If DOCSIS is extended to cover other types of channel
plans (and frequency allocations), this object will
be modified accordingly."
OBJECT docsIfUpChannelWidth
WRITE-SYNTAX Integer32 (200000..6400000)
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems,
read-only in cable modems. The above value is appropriate
for cable plants running under NTSC (National Television
Standards Committee) standards. If DOCSIS is extended to
work with other standards (e.g., European standards), this
object will be modified accordingly."
OBJECT docsIfUpChannelModulationProfile
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelSlotSize
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfUpChannelRangingBackoffStart
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelRangingBackoffEnd
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelTxBackoffStart
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelTxBackoffEnd
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelScdmaActiveCodes
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems.
The number of active codes when SCDMA is in use MUST range
from 64 to 128 and MUST be a non-Prime value.
Providing this range allows for the following features
and capabilities:
1) Power management in S-CDMA spreader-on frames
(with a 3 dB spread).
2) Avoidance of code 0.
3) Flexible mini-slot sizes with and without the use of
code 0."
OBJECT docsIfUpChannelScdmaCodesPerSlot
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelScdmaFrameSize
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelScdmaHoppingSeed
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelCloneFrom
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelUpdate
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfUpChannelStatus
MIN-ACCESS read-only
DESCRIPTION
"Read-create in Cable Modem Termination Systems;
read-only in Cable Modems.
Entries associated to physical interfaces only support
the read-only value 'active'."
OBJECT docsIfUpChannelPreEqEnable
MIN-ACCESS read-only
DESCRIPTION
"Read-create in cable modem termination systems;
read-only in cable modems."
OBJECT docsIfQosProfPriority
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfMaxUpBandwidth
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfGuarUpBandwidth
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfMaxDownBandwidth
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfBaselinePrivacy
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfStatus
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfQosProfMaxTransmitBurst
MIN-ACCESS read-only
DESCRIPTION
"This object is always read-only in cable modems.
It is compliant to implement this object as read-only
in cable modem termination systems."
OBJECT docsIfCmRangingTimeout
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmStatusModulationType
SYNTAX INTEGER {
unknown(0),
tdma(1),
atdma(2),
scdma(3)
}
DESCRIPTION
"CM does not use both modulation burst profiles of a
'tdmAndAtdma' ChannelType; therefore, 'tdmAndAtdma'is
not supported."
OBJECT docsIfCmtsServiceAdminStatus
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsSyncInterval
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsUcdInterval
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsInsertInterval
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsInvitedRangingAttempts
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsQosProfilePermissions
WRITE-SYNTAX BITS {
createByManagement(0),
updateByManagement(1)
}
MIN-ACCESS read-only
DESCRIPTION
"It is compliant to implement this object as read-only."
OBJECT docsIfCmtsModType
WRITE-SYNTAX INTEGER {
qpsk(2),
qam16(3),
qam64(6)
}
DESCRIPTION
"A management station MAY only set 64QAM, 16QAM, or QPSK
modulation for Time or Code division Multiple Access,
but others might be possible based on device
configuration."
OBJECT docsIfCmtsCmStatusModulationType
SYNTAX INTEGER {
unknown(0),
tdma(1),
atdma(2),
scdma(3)
}
DESCRIPTION
"CM does not use both modulation burst profiles of a
'tdmAndAtdma' ChannelType; therefore, 'tdmAndAtdma'is
not supported."
::= { docsIfCompliances 2 }
docsIfBasicGroup OBJECT-GROUP
OBJECTS {
docsIfDownChannelId,
docsIfDownChannelFrequency,
docsIfDownChannelWidth,
docsIfDownChannelModulation,
docsIfDownChannelInterleave,
docsIfDownChannelPower,
docsIfUpChannelId,
docsIfUpChannelFrequency,
docsIfUpChannelWidth,
docsIfUpChannelModulationProfile,
docsIfUpChannelSlotSize,
docsIfUpChannelTxTimingOffset,
docsIfUpChannelRangingBackoffStart,
docsIfUpChannelRangingBackoffEnd,
docsIfUpChannelTxBackoffStart,
docsIfUpChannelTxBackoffEnd,
docsIfQosProfPriority,
docsIfQosProfMaxUpBandwidth,
docsIfQosProfGuarUpBandwidth,
docsIfQosProfMaxDownBandwidth,
docsIfQosProfMaxTxBurst,
docsIfQosProfBaselinePrivacy,
docsIfQosProfStatus,
docsIfSigQIncludesContention,
docsIfSigQUnerroreds,
docsIfSigQCorrecteds,
docsIfSigQUncorrectables,
docsIfSigQSignalNoise,
docsIfSigQMicroreflections,
docsIfSigQEqualizationData
}
STATUS deprecated
DESCRIPTION
"Group of objects implemented in both cable modems and
cable modem termination systems."
::= { docsIfGroups 1 }
docsIfCmGroup OBJECT-GROUP
OBJECTS {
docsIfCmCmtsAddress,
docsIfCmCapabilities,
docsIfCmRangingTimeout,
docsIfCmStatusValue,
docsIfCmStatusCode,
docsIfCmStatusTxPower,
docsIfCmStatusResets,
docsIfCmStatusLostSyncs,
docsIfCmStatusInvalidMaps,
docsIfCmStatusInvalidUcds,
docsIfCmStatusInvalidRangingResponses,
docsIfCmStatusInvalidRegistrationResponses,
docsIfCmStatusT1Timeouts,
docsIfCmStatusT2Timeouts,
docsIfCmStatusT3Timeouts,
docsIfCmStatusT4Timeouts,
docsIfCmStatusRangingAborteds,
docsIfCmServiceQosProfile,
docsIfCmServiceTxSlotsImmed,
docsIfCmServiceTxSlotsDed,
docsIfCmServiceTxRetries,
docsIfCmServiceTxExceededs,
docsIfCmServiceRqRetries,
docsIfCmServiceRqExceededs
}
STATUS deprecated
DESCRIPTION
"Group of objects implemented in cable modems."
::= { docsIfGroups 2 }
The groups are where the MIB sorts its objects by what each device type has to implement, so here's the rest of the list ๐ง๐
docsIfCmtsGroup OBJECT-GROUP
OBJECTS {
docsIfCmtsCapabilities,
docsIfCmtsSyncInterval,
docsIfCmtsUcdInterval,
docsIfCmtsMaxServiceIds,
docsIfCmtsInvitedRangingAttempts,
docsIfCmtsInsertInterval,
docsIfCmtsStatusInvalidRangeReqs,
docsIfCmtsStatusRangingAborteds,
docsIfCmtsStatusInvalidRegReqs,
docsIfCmtsStatusFailedRegReqs,
docsIfCmtsStatusInvalidDataReqs,
docsIfCmtsStatusT5Timeouts,
docsIfCmtsCmStatusMacAddress,
docsIfCmtsCmStatusIpAddress,
docsIfCmtsCmStatusDownChannelIfIndex,
docsIfCmtsCmStatusUpChannelIfIndex,
docsIfCmtsCmStatusRxPower,
docsIfCmtsCmStatusTimingOffset,
docsIfCmtsCmStatusEqualizationData,
docsIfCmtsCmStatusValue,
docsIfCmtsCmStatusUnerroreds,
docsIfCmtsCmStatusCorrecteds,
docsIfCmtsCmStatusUncorrectables,
docsIfCmtsCmStatusSignalNoise,
docsIfCmtsCmStatusMicroreflections,
docsIfCmtsServiceCmStatusIndex,
docsIfCmtsServiceAdminStatus,
docsIfCmtsServiceQosProfile,
docsIfCmtsServiceCreateTime,
docsIfCmtsServiceInOctets,
docsIfCmtsServiceInPackets,
docsIfCmtsModType,
docsIfCmtsModControl,
docsIfCmtsModPreambleLen,
docsIfCmtsModDifferentialEncoding,
docsIfCmtsModFECErrorCorrection,
docsIfCmtsModFECCodewordLength,
docsIfCmtsModScramblerSeed,
docsIfCmtsModMaxBurstSize,
docsIfCmtsModGuardTimeSize,
docsIfCmtsModLastCodewordShortened,
docsIfCmtsModScrambler,
docsIfCmtsQosProfilePermissions,
docsIfCmtsCmPtr
}
STATUS deprecated
DESCRIPTION
"Group of objects implemented in Cable Modem Termination
Systems."
::= { docsIfGroups 3 }
-- obsolete group
-- RFC 2670 already had a obsolete group, even though RFC2670
-- was the first version of this MIB Module.
docsIfObsoleteGroup OBJECT-GROUP
OBJECTS {
docsIfCmRangingRespTimeout,
docsIfCmtsInsertionInterval
}
STATUS obsolete
DESCRIPTION
"Group of objects obsoleted."
::= { docsIfGroups 4 }
docsIfBasicGroupV2 OBJECT-GROUP
OBJECTS {
docsIfDownChannelId,
docsIfDownChannelFrequency,
docsIfDownChannelWidth,
docsIfDownChannelModulation,
docsIfDownChannelInterleave,
docsIfDownChannelPower,
docsIfDownChannelAnnex,
docsIfUpChannelId,
docsIfUpChannelFrequency,
docsIfUpChannelWidth,
docsIfUpChannelModulationProfile,
docsIfUpChannelSlotSize,
docsIfUpChannelTxTimingOffset,
docsIfUpChannelRangingBackoffStart,
docsIfUpChannelRangingBackoffEnd,
docsIfUpChannelTxBackoffStart,
docsIfUpChannelTxBackoffEnd,
docsIfUpChannelScdmaActiveCodes,
docsIfUpChannelScdmaCodesPerSlot,
docsIfUpChannelScdmaFrameSize,
docsIfUpChannelScdmaHoppingSeed,
docsIfUpChannelType,
docsIfUpChannelCloneFrom,
docsIfUpChannelUpdate,
docsIfUpChannelStatus,
docsIfUpChannelPreEqEnable,
docsIfQosProfPriority,
docsIfQosProfMaxUpBandwidth,
docsIfQosProfGuarUpBandwidth,
docsIfQosProfMaxDownBandwidth,
docsIfQosProfBaselinePrivacy,
docsIfQosProfStatus,
docsIfQosProfMaxTransmitBurst,
docsIfSigQIncludesContention,
docsIfSigQUnerroreds,
docsIfSigQCorrecteds,
docsIfSigQUncorrectables,
docsIfSigQSignalNoise,
docsIfSigQMicroreflections,
docsIfSigQExtUnerroreds,
docsIfSigQExtCorrecteds,
docsIfSigQExtUncorrectables,
docsIfDocsisBaseCapability
}
STATUS current
DESCRIPTION
"Group of objects implemented in both cable modems and
cable modem termination systems."
::= { docsIfGroups 5 }
docsIfCmGroupV2 OBJECT-GROUP
OBJECTS {
docsIfCmCmtsAddress,
docsIfCmCapabilities,
docsIfCmRangingTimeout,
docsIfCmStatusValue,
docsIfCmStatusCode,
docsIfCmStatusTxPower,
docsIfCmStatusResets,
docsIfCmStatusLostSyncs,
docsIfCmStatusInvalidMaps,
docsIfCmStatusInvalidUcds,
docsIfCmStatusInvalidRangingResponses,
docsIfCmStatusInvalidRegistrationResponses,
docsIfCmStatusT1Timeouts,
docsIfCmStatusT2Timeouts,
docsIfCmStatusT3Timeouts,
docsIfCmStatusT4Timeouts,
docsIfCmStatusRangingAborteds,
docsIfCmStatusDocsisOperMode,
docsIfCmStatusModulationType,
docsIfCmStatusEqualizationData,
docsIfCmStatusUCCs,
docsIfCmStatusUCCFails,
docsIfCmServiceQosProfile,
docsIfCmServiceTxSlotsImmed,
docsIfCmServiceTxSlotsDed,
docsIfCmServiceTxRetries,
docsIfCmServiceTxExceededs,
docsIfCmServiceRqRetries,
docsIfCmServiceRqExceededs,
docsIfCmServiceExtTxSlotsImmed,
docsIfCmServiceExtTxSlotsDed,
docsIfSigQEqualizationData
}
STATUS current
DESCRIPTION
"Group of objects implemented in cable modems."
::= { docsIfGroups 6 }
docsIfCmtsGroupV2 OBJECT-GROUP
OBJECTS {
docsIfCmtsCapabilities,
docsIfCmtsSyncInterval,
docsIfCmtsUcdInterval,
docsIfCmtsMaxServiceIds,
docsIfCmtsInvitedRangingAttempts,
docsIfCmtsInsertInterval,
docsIfCmtsMacStorageType,
docsIfCmtsStatusInvalidRangeReqs,
docsIfCmtsStatusRangingAborteds,
docsIfCmtsStatusInvalidRegReqs,
docsIfCmtsStatusFailedRegReqs,
docsIfCmtsStatusInvalidDataReqs,
docsIfCmtsStatusT5Timeouts,
docsIfCmtsCmStatusMacAddress,
docsIfCmtsCmStatusDownChannelIfIndex,
docsIfCmtsCmStatusUpChannelIfIndex,
docsIfCmtsCmStatusRxPower,
docsIfCmtsCmStatusTimingOffset,
docsIfCmtsCmStatusEqualizationData,
docsIfCmtsCmStatusValue,
docsIfCmtsCmStatusUnerroreds,
docsIfCmtsCmStatusCorrecteds,
docsIfCmtsCmStatusUncorrectables,
docsIfCmtsCmStatusSignalNoise,
docsIfCmtsCmStatusMicroreflections,
docsIfCmtsCmStatusExtUnerroreds,
docsIfCmtsCmStatusExtCorrecteds,
docsIfCmtsCmStatusExtUncorrectables,
docsIfCmtsCmStatusDocsisRegMode,
docsIfCmtsCmStatusModulationType,
docsIfCmtsCmStatusInetAddressType,
docsIfCmtsCmStatusInetAddress,
docsIfCmtsCmStatusValueLastUpdate,
docsIfCmtsCmStatusHighResolutionTimingOffset,
docsIfCmtsServiceAdminStatus,
docsIfCmtsServiceQosProfile,
docsIfCmtsServiceCreateTime,
docsIfCmtsServiceInOctets,
docsIfCmtsServiceInPackets,
docsIfCmtsServiceNewCmStatusIndex,
docsIfCmtsModType,
docsIfCmtsModControl,
docsIfCmtsModPreambleLen,
docsIfCmtsModDifferentialEncoding,
docsIfCmtsModFECErrorCorrection,
docsIfCmtsModFECCodewordLength,
docsIfCmtsModScramblerSeed,
docsIfCmtsModMaxBurstSize,
docsIfCmtsModGuardTimeSize,
docsIfCmtsModLastCodewordShortened,
docsIfCmtsModScrambler,
docsIfCmtsModByteInterleaverDepth,
docsIfCmtsModByteInterleaverBlockSize,
docsIfCmtsModPreambleType,
docsIfCmtsModTcmErrorCorrectionOn,
docsIfCmtsModScdmaInterleaverStepSize,
docsIfCmtsModScdmaSpreaderEnable,
docsIfCmtsModScdmaSubframeCodes,
docsIfCmtsModChannelType,
docsIfCmtsModStorageType,
docsIfCmtsQosProfilePermissions,
docsIfCmtsCmPtr,
docsIfCmtsChannelUtilizationInterval,
docsIfCmtsChannelUtUtilization,
docsIfCmtsDownChnlCtrId,
docsIfCmtsDownChnlCtrTotalBytes,
docsIfCmtsDownChnlCtrUsedBytes,
docsIfCmtsDownChnlCtrExtTotalBytes,
docsIfCmtsDownChnlCtrExtUsedBytes,
docsIfCmtsUpChnlCtrId,
docsIfCmtsUpChnlCtrTotalMslots,
docsIfCmtsUpChnlCtrUcastGrantedMslots,
docsIfCmtsUpChnlCtrTotalCntnMslots,
docsIfCmtsUpChnlCtrUsedCntnMslots,
docsIfCmtsUpChnlCtrExtTotalMslots,
docsIfCmtsUpChnlCtrExtUcastGrantedMslots,
docsIfCmtsUpChnlCtrExtTotalCntnMslots,
docsIfCmtsUpChnlCtrExtUsedCntnMslots,
docsIfCmtsUpChnlCtrCollCntnMslots,
docsIfCmtsUpChnlCtrTotalCntnReqMslots,
docsIfCmtsUpChnlCtrUsedCntnReqMslots,
docsIfCmtsUpChnlCtrCollCntnReqMslots,
docsIfCmtsUpChnlCtrTotalCntnReqDataMslots,
docsIfCmtsUpChnlCtrUsedCntnReqDataMslots,
docsIfCmtsUpChnlCtrCollCntnReqDataMslots,
docsIfCmtsUpChnlCtrTotalCntnInitMaintMslots,
docsIfCmtsUpChnlCtrUsedCntnInitMaintMslots,
docsIfCmtsUpChnlCtrCollCntnInitMaintMslots,
docsIfCmtsUpChnlCtrExtCollCntnMslots,
docsIfCmtsUpChnlCtrExtTotalCntnReqMslots,
docsIfCmtsUpChnlCtrExtUsedCntnReqMslots,
docsIfCmtsUpChnlCtrExtCollCntnReqMslots,
docsIfCmtsUpChnlCtrExtTotalCntnReqDataMslots,
docsIfCmtsUpChnlCtrExtUsedCntnReqDataMslots,
docsIfCmtsUpChnlCtrExtCollCntnReqDataMslots,
docsIfCmtsUpChnlCtrExtTotalCntnInitMaintMslots,
docsIfCmtsUpChnlCtrExtUsedCntnInitMaintMslots,
docsIfCmtsUpChnlCtrExtCollCntnInitMaintMslots,
docsIfDownChannelStorageType,
docsIfQosProfStorageType
}
STATUS current
DESCRIPTION
"Group of objects implemented in Cable Modem Termination
Systems."
::= { docsIfGroups 7 }
END
5. Revision History โจ
5.1. Scope ๐
okay so this MIB module was built to cover DOCSIS 2.0 devices and what their systems can actually do ๐ซถ It's an update to RFC 2670 [RFC2670], and it also brings in the DOCSIS 2.0 [RFI2.0] and the Euro-DOCSIS specification requirements [EN-300-429]. the whole vibe is upgrade with receipts ๐
5.2. Extension ๐ฆ
we kept every MIB object exactly as RFC 2670 [RFC2670] defined it, no drama ๐ some objects got new siblings with the same functionality but more room, going from 32 to 64 bits ๐ for those, both the original 32 bit objects and the new 64 bit objects must be implemented. so don't skip either one, bestie ๐
6. Security Considerations ๐
Okay bestie, this MIB is all about metropolitan public internet access ๐, so if someone messes with these objects the wrong way, it can cause denial of service for a lot of end-users ๐ญ. Not a vibe.
Lots of the objects in here have a MAX-ACCESS of read-write or read-create โ๏ธ. Those can be sensitive or vulnerable depending on the network. If you allow SET operations in a non-secure environment without proper protection, it can really mess up network operations ๐.
The CMTS is basically the controller for most of the DOCSIS RFI Interface parameters ๐, so write access to the CMTS MIB objects could absolutely ruin an end-user's services.
On the CM side, the only read-write object in this MIB is docsIfCmRangingTimeout ๐. If someone SETs it maliciously, it probably won't be a major service degradation problem. The rest of the CM-required objects are read-only, either by definition or because of compliance statements ๐ซถ.
The CMTS is still the controller for most DOCSIS RFI Interface parameters, so here are the CMTS vulnerabilities:
- Objects in the docsIfBasicGroupv2 can cause a denial of service if they get SET maliciously ๐ค. The big ones are SETs to objects in docsIfDownstreamChannelTable, docsIfUpstreamChannelTable, docsIfCmtsModulationTable, and docsIfQosProfileTable (the last one only together with docsIfCmtsQosProfilePermissions). Those can negatively alter the physical and link layer parameters of upstream and downstream channels ๐ก.
- The object docsIfCmtsServiceAdminStatus in the docsIfCmtsGroupv2 group is a big deal too. If an attacker SETs it to 'disabled' or 'destroyed', it will interrupt the service of the corresponding cable modem ๐ซ.
Some readable objects (anything with a MAX-ACCESS other than not-accessible) can also be sensitive or vulnerable in some networks ๐. So it's important to control even GET and/or NOTIFY access to them, and possibly even encrypt their values when they travel over the network via SNMP ๐. Here are the sensitivity considerations:
- Reading the objects in docsIfCmStatusTable (CM), docsIfSignalQualityTable (CM/CMTS), and the CMTS tables docsIfCmtsCmStatusTable, docsIfCmtsChannelUtilizationTable, docsIfCmtsDownChannelCounterTable, and docsIfCmtsUpChannelCounterTable could reveal how cable modems are distributed across upstream and downstream channels, plus how they're performing ๐. Attackers could use that to get into a different tiered service offer ๐. And docsIfCmtsCmStatusTable also holds the MAC and IP addresses of the cable modems, which can be used for theft of service ๐ฅท.
SNMP versions before SNMPv3 didn't have adequate security ๐. Even if the network itself is secure (for example, by using IPSec), there's still no control over who on that secure network gets to access and GET/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 ๐โจ.
Also, deploying SNMP versions before SNMPv3 is NOT RECOMMENDED ๐ โโ๏ธ. Instead, it is RECOMMENDED to deploy SNMPv3 and turn on cryptographic security. It's then the customer or operator's job to make sure the SNMP entity that gives access to this MIB module is configured so only the principals (users) with legitimate rights can GET or SET (change/create/delete) those objects ๐๐ .
7. Management Interoperability of DOCSIS 1.0, 1.1, and 2.0 ๐
Okay so the MIB module in this document updates RFC 2670 [RFC2670] ๐, mainly to handle the management requirements of the DOCSIS RF Interface for DOCSIS 2.0 [ITU-T_J.122] ๐ฆ. RFC 2670 is where the DOCSIS RF Interface management requirements for DOCSIS 1.0 and DOCSIS 1.1 live ๐ธ.
For Class of Service (DOCSIS 1.0), the management requirements that pertain to RFC 2670 are the same as this document's update ๐. They're contained in the tables docsIfQosProfileTable, docsIfCmServiceTable, and docsIfCmtsServiceTable โจ.
DOCSIS 1.1 and DOCSIS 2.0 Quality of Service management requirements are defined in the DOCSIS management specifications [OSSI1.1] and [OSSI2.0], respectively ๐.
8. References ๐
8.1. Normative References
[EN-300-429]European Telecommunications Standard Institute, "ETSI Standard EN 300 429, Version 1.2.1: Digital Video Broadcasting (DVB), Framing structure, channel coding and modulation for cable systems", April 1998.[IANA]Internet Assigned Numbers Authority, "Internet Assigned Numbers Authority", October 2005,<http://www.iana.org/assignments/ianaiftype-mib/>.[ITU-T_J.112]Telecommunication Standardization Sector of International Telecommunications Union, "Transmission Systems for Interactive Cable Television Services, Annex B.", March 2001,<http://www.itu.int/ITU-T/studygroups/com09/>.[ITU-T_J.122]Telecommunication Standardization Sector of International Telecommunications Union, "Second-Generation Transmission Systems for Interactive Cable Television Services.", December 2002,<http://www.itu.int/ITU-T/studygroups/com09/>.[ITU-T_J.83]Telecommunication Standardization Sector of International Telecommunications Union, "ITU-T Recommendation J.83(4/97), Digital multi-programme systems for television sound and data services for cable distribution.", April 1997,<http://www.itu.int/ITU-T/studygroups/com09/>.[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.[RFC4001]Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, "Textual Conventions for Internet Network Addresses", RFC 4001, February 2005.[RFI1.1]CableLabs, "Data-Over-Cable Service Interface Specifications: Radio Frequency Interface Specification SP-RFIv1.1-C01-050907", September 2005,<http://www.cablemodem.com/specifications/>.[RFI2.0]CableLabs, "Data-Over-Cable Service Interface Specifications: Radio Frequency Interface Specification SP-RFIv2.0-I09-050812", August 2005,<http://www.cablemodem.com/specifications/>.
8.2. Informative References
[BPI]SCTE Data Standards Subcommittee, "Data-Over-Cable Service Interface Specifications: DOCSIS 1.0 Baseline Privacy Interface Specification SCTE 22-2 2002", 2002,<http://www.scte.org/standards/>.[BPIPLUS]CableLabs, "Data-Over-Cable Service Interface Specifications: Baseline Privacy Plus Interface Specification SP-BPI+-I12-050812", August 2005,<http://www.cablemodem.com/specifications/>.[OSSI1.1]CableLabs, "Data-Over-Cable Service Interface Specifications: Operations Support System Interface Specification SP-OSSIv1.1-C01-050907", September 2005,<http://www.cablemodem.com/specifications/>.[OSSI2.0]CableLabs, "Data-Over-Cable Service Interface Specifications: Operations Support System Interface Specification SP-OSSIv2.0-I09-050812", September 2005,<http://www.cablemodem.com/specifications/>.[Proakis00]McGraw-Hill, "Digital Communications, 4th Edition", 2000.[RFC2670]St. Johns, M., "Radio Frequency (RF) Interface Management Information Base for MCNS/DOCSIS compliant RF interfaces", RFC 2670, August 1999.[RFC3410]Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.[RFI1.0]SCTE Data Standards Subcommittee, "Data-Over-Cable Service Interface Specifications: DOCSIS 1.0 Radio Frequency Interface Specification SCTE 22-1 2002", 2002,<http://www.scte.org/standards/>.
Authors' Addresses ๐
David Raftus
ATI Technologies
340 Terry Fox Drive, Suite 202
Ottawa, Ontario
Canada
Phone: +1 613 592 1052 ext.222
EMail: david.raftus@ati.com
Eduardo Cardona
Cable Television Laboratories, Inc.
858 Coal Creek Circle
Louisville, CO 80020
USA
Phone: +1 303 661 3375
EMail: e.cardona@cablelabs.com
Full Copyright Statement ยฉ๏ธ
Copyright (C) The Internet Society (2006) ๐.
Here's the legal text, kept exactly as written:
This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. 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 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 ๐ง
So the IETF doesn't take a position on whether any Intellectual Property Rights (or other rights) that someone might claim for this tech are valid or in scope ๐คทโโ๏ธ. It also doesn't say whether a license would be available, and it hasn't checked for any rights itself. If you want the rules around rights in RFC documents, look at BCP 78 and BCP 79 ๐.
Copies of IPR disclosures sent to the IETF Secretariat, any assurances of licenses that will be available, and the results of any attempt to get a general license or permission for implementers or users are all on the IETF online IPR repository at http://www.ietf.org/ipr ๐.
The IETF also invites anyone to flag copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard ๐. Send that info to the IETF at ietf-ipr@ietf.org ๐.
Acknowledgement โจ
okay bestie, last stop ๐ the RFC Editor function gets its funding from the IETF Administrative Support Activity (IASA) ๐ so that's who keeps the lights on for the people running the RFC Editor. no cap, that's the whole thing ๐ซถ๐ธ
๐ฆ where this page comes from
- ietf: rfc4546 2006-06
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms