EZ5 MIB Catalog

CISCO-CABLE-SPECTRUM-MIB

2011-04-08

This is the MIB Module for Cable Spectrum Management for DOCSIS-compliant Cable Modem Termination Systems (CMTS). Spectrum management is a software/hardware feature provided in the CMTS so that the CMTS may sense both downstream and upstream plant impairments, report them to a management entity, and automatically mitigate them where possible. The CMTS directly senses upstream transmission errors.It may also indirectly monitor the condition of the plant by keeping a record of modem state changes. It is desireable to perform these functions without reducing throughput or latency and without creating additional packet overhead on the RF plant. The purpose of cable Spectrum Management is to prevent long term service interruptions caused by upstream noise events in the cable plant. It is also used for fault management and trouble shooting the cable network. When modems are detected to go on-line and off-line by flap detectors, the cable operators can look at the flap list and spectrum tables to determine the possible causes.

Download CISCO-CABLE-SPECTRUM-MIB.txt Open CISCO-CABLE-SPECTRUM-MIB.txt in a new tab

SCALARS (9) · TABLES (9) · TRAPS (2)

Scalars (9)

NameOID
ccsFlapListMaxSize1.3.6.1.4.1.9.9.114.1.1.1
ccsFlapListCurrentSize1.3.6.1.4.1.9.9.114.1.1.2
ccsFlapAging1.3.6.1.4.1.9.9.114.1.1.3
ccsFlapInsertionTime1.3.6.1.4.1.9.9.114.1.1.4
ccsFlapPowerAdjustThreshold1.3.6.1.4.1.9.9.114.1.1.6
ccsFlapMissThreshold1.3.6.1.4.1.9.9.114.1.1.7
ccsFlapResetAll1.3.6.1.4.1.9.9.114.1.1.8
ccsFlapClearAll1.3.6.1.4.1.9.9.114.1.1.9
ccsFlapLastClearTime1.3.6.1.4.1.9.9.114.1.1.10

Tables (9)

NameOID
ccsFlapTable1.3.6.1.4.1.9.9.114.1.1.5
ccsCmFlapTable1.3.6.1.4.1.9.9.114.1.1.11
ccsSpectrumRequestTable1.3.6.1.4.1.9.9.114.1.2.1
ccsSpectrumDataTable1.3.6.1.4.1.9.9.114.1.2.2
ccsSNRRequestTable1.3.6.1.4.1.9.9.114.1.2.3
ccsUpInSpecGroupTable1.3.6.1.4.1.9.9.114.1.2.4
ccsUpInFiberNodeTable1.3.6.1.4.1.9.9.114.1.2.5
ccsUpSpecMgmtTable1.3.6.1.4.1.9.9.114.1.3.1
ccsSpecGroupFreqTable1.3.6.1.4.1.9.9.114.1.3.2

Traps (2)

NameOID
ccsHoppingNotification(deprecated)1.3.6.1.4.1.9.9.114.2.0.1
ccsSpecMgmtNotification1.3.6.1.4.1.9.9.114.2.0.2

END OF TOC

Scalar details

ccsFlapListMaxSize

1.3.6.1.4.1.9.9.114.1.1.1

Integer32 (1..65536) · modems

The maximum number of flapped modem entries (ccsCmFlapEntry) per Cable downstream interface that can be reported in the ccsCmFlapTable. If the Cable downstream interface has more flapped modems than the ccsFlapListMaxSize, some of the flapped modems will not be shown in the ccsCmFlapTable. In this case, the users may want to increase the ccsFlapMaxSize.

ccsFlapListCurrentSize

1.3.6.1.4.1.9.9.114.1.1.2

Gauge32 (0..65536) · modems

The total number of flapped modem entries (ccsCmFlapEntry) that reported in the ccsCmFlapTable. The maximum value will be ccsFlapListMaxSize * <no of downstreams>.

ccsFlapAging

1.3.6.1.4.1.9.9.114.1.1.3

Integer32 (1..86400) · minutes

The flap entry aging threshold. Periodically, the aging process scans through the flap list and removes the cable modems that have not flapped for that many minutes.

ccsFlapInsertionTime

1.3.6.1.4.1.9.9.114.1.1.4

Integer32 (60..86400) · seconds

The insertion-time is an empirically derived, worst-case number of seconds which the cable modem requires to complete registration. The time taken by cable modems to complete their registration is measured by the cable operators and this information helps to determine the insertion time. If the cable modem has not completed the registration stage within this insertion-time setting, the cable modem will be inserted into the flap-list.

ccsFlapPowerAdjustThreshold

1.3.6.1.4.1.9.9.114.1.1.6

Integer32 (1..10) · db

The power adjust threshold. When the power of the modem is adjusted beyond this threshold, the modem will be inserted into the flap-list.

ccsFlapMissThreshold

1.3.6.1.4.1.9.9.114.1.1.7

Unsigned32 (1..12)

Per modem miss threshold which triggers polling flap detector. When the number of times a cable modem does not acknowledge a MAC-layer keepalive message from a cable modem card exceeds the miss threshold, the cable modem is placed in the flap list.

ccsFlapResetAll

1.3.6.1.4.1.9.9.114.1.1.8

TruthValue1 = true2 = falseRepresents a boolean value. · Integer32

Setting this object to true(1) causes ccsFlapInsertionFailNum, ccsFlapHitNum, ccsFlapMissNum, ccsFlapCrcErrorNum, ccsFlapPowerAdjustmentNum and ccsFlapTotalNum objects of each entry in ccsFlapTable to be started from zero. Reading this object always returns false(2).

ccsFlapClearAll

1.3.6.1.4.1.9.9.114.1.1.9

TruthValue1 = true2 = falseRepresents a boolean value. · Integer32

Setting this object to true(1) removes all cable modems from flap-list and all the entries in the ccsFlapTable are destroyed. If a modem keeps flapping, the modem will be added again into the flap list and a new entry in the ccsFlapTable will be created. The newly created entry for that modem will have new value of ccsFlapCreateTime and all the statistical objects will be started from zero. Reading this object always returns false(2).

ccsFlapLastClearTime

1.3.6.1.4.1.9.9.114.1.1.10

DateAndTimeA date-time specification. field octets contents range ----- ------ -------- ----- 1 1-2 year* 0..65536 2 3 month 1..12 3 4 day 1..31 4 5 hour 0..23 5 6 minutes 0..59 6 7 seconds 0..60 (use 60 for leap-second) 7 8 deci-seconds 0..9 8 9 direction from UTC '+' / '-' 9 10 hours from UTC* 0..13 10 11 minutes from UTC 0..59 * Notes: - the value of year is in network-byte order - daylight saving time in New Zealand is +13 For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as: 1992-5-26,13:30:15.0,-4:0 Note that if only local time is known, then timezone information (fields 8-10) is not present. SIZE (8 | 11) · OCTET STRING · hint 2d-1d-1d,1d:1d:1d.1d,1a1d:1d

The last time that all the entries in the ccsFlapTable are destroyed. There are several ways to destroy all the entries in the ccsFlapTable. Setting the object ccsFlapClearAll to true is one way, and the other way is through Command Line Interface. This timestamp can be used to know when all the entries in the ccsFlapTable are destroyed. The special value of all '00'Hs indicates that the entries in the ccsFlapTable have never been destroyed.

Table details

ccsFlapTable

1.3.6.1.4.1.9.9.114.1.1.5

Index: ccsFlapMacAddr

This table keeps the records of modem state changes. It can be used to identify the problematic cable modems. An entry can be deleted from the table but can not be added to the table.

ccsFlapMacAddr

1.3.6.1.4.1.9.9.114.1.1.5.1.1

MacAddressRepresents an 802 MAC address represented in the `canonical' order defined by IEEE 802.1a, i.e., as if it were transmitted least significant bit first, even though 802.5 (in contrast to other 802.x protocols) requires MAC addresses to be transmitted most significant bit first. SIZE (6) · OCTET STRING · hint 1x:

MAC address of the Cable Modem's Cable interface which identifies a flap-list entry for a flapping Cable Modem.

ccsFlapUpstreamIfIndex

1.3.6.1.4.1.9.9.114.1.1.5.1.2

InterfaceIndexA unique value, greater than zero, for each interface or interface sub-layer in the managed system. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. (1..2147483647) · Integer32 · hint d

The ifIndex of the Cable upstream interface whose ifType is docsCableUpstream(129). The CMTS detects a flapping Cable Modem from its Cable upstream interface.

ccsFlapDownstreamIfIndex

1.3.6.1.4.1.9.9.114.1.1.5.1.3

InterfaceIndexA unique value, greater than zero, for each interface or interface sub-layer in the managed system. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. (1..2147483647) · Integer32 · hint d

The ifIndex of the Cable downstream interface whose ifType is docsCableDownstream(128).

ccsFlapInsertionFails

1.3.6.1.4.1.9.9.114.1.1.5.1.4

Counter32

Reference: Data over Cable Radio Frequency Interface specification, Section 7.2.

The number of times a Cable Modem registered more frequently than expected. Excessive registration is defined as the presence of a time span between two successive registration cycles which is less than a threshold span (ccsFlapInsertionTime). A Cable Modem may fail the ranging or registration process due to not being able to get an IP address. When the Cable Modem can not finish registration within the insertion time, it retries the process and sends the Initial Maintenance packet again. CMTS will receive the Initial Maintenance packet from the Cable Modem sooner than expected and the Cable Modem is considered a flapping modem. This count may indicate: Intermittent downstream sync loss, or DHCP or modem registration problems. The Flap Count (ccsFlapTotal) will be incremented when this counter is incremented. Discontinuites in the value of this counter can occur if this entry is removed from the table and then re-added, and are indicated by a change in the value of ccsFlapCreateTime.

ccsFlapHits

1.3.6.1.4.1.9.9.114.1.1.5.1.5

Counter32

The number of times the CMTS receives the Ranging request from the Cable Modem. The CMTS issues a Station Maintenance transmit opportunity at a typical rate of once every 10 seconds and waits for a Ranging request from the Cable Modem.If the CMTS receives a Ranging request then the Hit count will be increased by 1 If the FlapTotal count is high,both Hits and Misses counts are high, and other counters are relatively low then the flapping is probably caused by the modem going up and down. The Hits and Misses counts are keep-alive polling statistics. The Hits count should be much greater than the Misses count Discontinuites in the value of this counter can occur if this entry is removed from the table and then re-added, and are indicated by a change in the value of ccsFlapCreateTime.

ccsFlapMisses

1.3.6.1.4.1.9.9.114.1.1.5.1.6

Counter32

The number of times the CMTS misses the Ranging request from the Cable Modem. The CMTS issues a Station Maintenance packet every 10 seconds and waits for a Ranging request from the Cable Modem. If the CMTS misses a Ranging request within 25 msec then the Misses count will be incremented. If ccsFlapTotal is high, Hits and Misses are high but ccsFlapPowerAdjustments and ccsFlapInsertionFails are low then the flapping is probably caused by the modem going up and down. Miss counts can indicate: Intermittent upstream, Laser clipping, or Noise bursts. Laser clipping can happen if the signal power is too high when the upstream electrical signal is converted to an optical signal. When it happens the more input produces less output, until finally there is no more increase in output. This phenomena is called laser clipping. Discontinuites in the value of this counter can occur if this entry is removed from the table and then re-added, and are indicated by a change in the value of ccsFlapCreateTime.

ccsFlapCrcErrors

1.3.6.1.4.1.9.9.114.1.1.5.1.7

Counter32

The number of times the CMTS upstream receiver flagged a packet with a CRC error. If ccsFlapCrcErrors is high, it indicates the cable upstream may have high noise level. The modem may not be flapping yet but it may be a potential problem. This count can indicate: Intermittent upstream, Laser clipping, or Noise bursts. Laser clipping can happen if the signal power is too high when the upstream electrical signal is converted to an optical signal. When it happens the more input produces less output, until finally there is no more increase in output. This phenomena is called laser clipping. Discontinuites in the value of this counter can occur if this entry is removed from the table and then re-added, and are indicated by a change in the value of ccsFlapCreateTime.

ccsFlapPowerAdjustments

1.3.6.1.4.1.9.9.114.1.1.5.1.8

Counter32

Reference: Data over Cable Radio Frequency Interface specification, Section 7.2.

The number of times the Cable Modem upstream transmit power is adjusted during station maintenance. When the adjustment is greater than the power adjustment threshold the counter will be incremented. The power adjustment threshold is chosen in an implementation-dependent manner. The Flap Count (ccsFlapTotal) will be incremented when this counter is incremented. If ccsFlapTotal is high, ccsFlapPowerAdjustments is high but the Hits and Misses are low and ccsFlapInsertionFails are low then the flapping is probably caused by an improper transmit power level setting at the modem end. This count can indicate: Amplifier degradation, Poor connections, or Wind, moisture, or temperature sensitivity. Discontinuites in the value of this counter can occur if this entry is removed from the table and then re-added, and are indicated by a change in the value of ccsFlapCreateTime.

ccsFlapTotal

1.3.6.1.4.1.9.9.114.1.1.5.1.9

Counter32

Reference: Data over Cable Radio Frequency Interface specification, Appendix B.

Whenever the Cable Modem passes flap detection, then the flap counter is increased. There are 3 flap detectors defined: (1) When ccsFlapInsertionFails is increased the Flap count will be increased. (2) When the CMTS receives a Miss followed by a Hit then the Flap count will be increased. (3) When ccsFlapPowerAdjustments is increased the Flap count will be increased. Discontinuites in the value of this counter can occur if this entry is removed from the table and then re-added, and are indicated by a change in the value of ccsFlapCreateTime.

ccsFlapLastFlapTime

1.3.6.1.4.1.9.9.114.1.1.5.1.10

DateAndTimeA date-time specification. field octets contents range ----- ------ -------- ----- 1 1-2 year* 0..65536 2 3 month 1..12 3 4 day 1..31 4 5 hour 0..23 5 6 minutes 0..59 6 7 seconds 0..60 (use 60 for leap-second) 7 8 deci-seconds 0..9 8 9 direction from UTC '+' / '-' 9 10 hours from UTC* 0..13 10 11 minutes from UTC 0..59 * Notes: - the value of year is in network-byte order - daylight saving time in New Zealand is +13 For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as: 1992-5-26,13:30:15.0,-4:0 Note that if only local time is known, then timezone information (fields 8-10) is not present. SIZE (8 | 11) · OCTET STRING · hint 2d-1d-1d,1d:1d:1d.1d,1a1d:1d

The flap time is set whenever the Cable Modem triggers a flap detector.

ccsFlapCreateTime

1.3.6.1.4.1.9.9.114.1.1.5.1.11

DateAndTimeA date-time specification. field octets contents range ----- ------ -------- ----- 1 1-2 year* 0..65536 2 3 month 1..12 3 4 day 1..31 4 5 hour 0..23 5 6 minutes 0..59 6 7 seconds 0..60 (use 60 for leap-second) 7 8 deci-seconds 0..9 8 9 direction from UTC '+' / '-' 9 10 hours from UTC* 0..13 10 11 minutes from UTC 0..59 * Notes: - the value of year is in network-byte order - daylight saving time in New Zealand is +13 For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as: 1992-5-26,13:30:15.0,-4:0 Note that if only local time is known, then timezone information (fields 8-10) is not present. SIZE (8 | 11) · OCTET STRING · hint 2d-1d-1d,1d:1d:1d.1d,1a1d:1d

The time that this entry was added to the table. If an entry is removed and then later re-added, there may be a discontinuity in the counters associated with this entry. This timestamp can be used to detect those discontinuities.

ccsFlapRowStatus

1.3.6.1.4.1.9.9.114.1.1.5.1.12

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

Controls and reflects the status of rows in this table. When a cable modem triggers a flap detector, if an entry does not already exist for this cable modem, and ccsFlapListCurrentSize is less than ccsFlapListMaxSize, then an entry will be created in this table. The new instance of this object will be set to active(1). All flapping modems have the status of active(1). Active entries are removed from the table after they have not triggered any additional flap detectors for the period of time defined in ccsFlapAging. Alternatively, setting this instance to destroy(6) will remove the entry immediately. createAndGo(4) and createAndWait(5) are not supported.

ccsFlapInsertionFailNum

1.3.6.1.4.1.9.9.114.1.1.5.1.13

Unsigned32

The number of times a Cable Modem registered more frequently than expected. Excessive registration is defined as the presence of a time span between two successive registration cycles which is less than a threshold span (ccsFlapInsertionTime). A Cable Modem may fail the ranging or registration process due to not being able to get an IP address. When the Cable Modem can not finish registration within the insertion time, it retries the process and sends the Initial Maintenance packet again. CMTS will receive the Initial Maintenance packet from the Cable Modem sooner than expected and the Cable Modem is considered a flapping modem. This object may indicate: Intermittent downstream sync loss, or DHCP or modem registration problems. The Flap number (ccsFlapTotalNum) will be incremented when this object is incremented. This object is going to replace the object ccsFlapInsertionFails and the value of this object can be reset to zero if this entry is removed from the table and then re-added, or if a user resets all the statistical objects for this entry. The value of the object ccsFlapLastResetTime indicates the last reset time.

ccsFlapHitNum

1.3.6.1.4.1.9.9.114.1.1.5.1.14

Unsigned32

The number of times the CMTS receives the Ranging request from the Cable Modem. The CMTS issues a Station Maintenance transmit opportunity at a typical rate of once every 10 seconds and waits for a Ranging request from the Cable Modem. If the CMTS receives a Ranging request then the Hit number will be increased by 1 If the FlapTotal object is high, both Hit and Miss objects are high, and other statistical objects are relatively low then the flapping is probably caused by the modem going up and down. The Hit and Miss objects keep-alive polling statistics. The Hit object should be much greater than the Misses count. This object is going to replace the object ccsFlapHits and the value of this object can be reset to zero if this entry is removed from the table and then re-added, or if an user resets all the statistical objects for this entry. The value of the object ccsFlapLastResetTime indicates the last reset time.

ccsFlapMissNum

1.3.6.1.4.1.9.9.114.1.1.5.1.15

Unsigned32

The number of times the CMTS misses the Ranging request from the Cable Modem. The CMTS issues a Station Maintenance packet every 10 seconds and waits for a Ranging request from the Cable Modem. If the CMTS misses a Ranging request within 25 msec then the Miss Object will be incremented. If ccsFlapTotalNum is high, Hit and Miss are high but ccsFlapPowerAdjustmentNum and ccsFlapInsertionFailNum are low then the flapping is probably caused by the modem going up and down. Miss object can indicate: Intermittent upstream, Laser clipping, or Noise bursts. Laser clipping can happen if the signal power is too high when the upstream electrical signal is converted to an optical signal. When it happens the more input produces less output, until finally there is no more increase in output. This phenomena is called laser clipping. This object is going to replace the object ccsFlapMisses and the value of this object can be reset to zero if this entry is removed from the table and then re-added, or if an user resets all the statistical objects for this entry. The value of the object ccsFlapLastResetTime indicates the last reset time.

ccsFlapCrcErrorNum

1.3.6.1.4.1.9.9.114.1.1.5.1.16

Unsigned32

The number of times the CMTS upstream receiver flagged a packet with a CRC error. If ccsFlapCrcErrorNum is high, it indicates the cable upstream may have high noise level. The modem may not be flapping yet but it may be a potential problem. This object can indicate: Intermittent upstream, Laser clipping, or Noise bursts. Laser clipping can happen if the signal power is too high when the upstream electrical signal is converted to an optical signal. When it happens the more input produces less output, until finally there is no more increase in output. This phenomena is called laser clipping. This object is going to replace the object ccsFlapCrcErrors and the value of this object can be reset to zero if this entry is removed from the table and then re-added, or if a user resets all the statistical objects for this entry. The value of the object ccsFlapLastResetTime indicates the last reset time.

ccsFlapPowerAdjustmentNum

1.3.6.1.4.1.9.9.114.1.1.5.1.17

Unsigned32

The number of times the Cable Modem upstream transmit power is adjusted during station maintenance. When the adjustment is greater than the power adjustment threshold the number will be incremented. The power adjustment threshold is chosen in an implementation-dependent manner The Flap number (ccsFlapTotalNum) will be incremented when this object is incremented. If ccsFlapTotalNum is high, ccsFlapPowerAdjustmentNum is high but the Hit and Miss are low and ccsFlapInsertionFailNum are low then the flapping is probably caused by an improper transmit power level setting at the modem end. This object can indicate: Amplifier degradation, Poor connections, or Wind, moisture, or temperature sensitivity. This object is going to replace the object ccsFlapPowerAdjustments and the value of this object can be reset to zero if this entry is removed from the table and then re-added, or if a user resets all the statistical objects for this entry. The value of the object ccsFlapLastResetTime indicates the last reset time.

ccsFlapTotalNum

1.3.6.1.4.1.9.9.114.1.1.5.1.18

Unsigned32

Whenever the Cable Modem passes flap detection, then the flap number is increased. There are 3 flap detectors defined: (1) When ccsFlapInsertionFailNum is increased the Flap number will be increased. (2) When the CMTS receives a Miss followed by a Hit then the Flap number will be increased. (3) When ccsFlapPowerAdjustmentNum is increased the Flap number will be increased. This object is going to replace the object ccsFlapTotal and the value of this object can be reset to zero if this entry is removed from the table and then re-added, or if an user resets all the statistical objects for this entry. The value of the object ccsFlapLastResetTime indicates the last reset time.

ccsFlapResetNow

1.3.6.1.4.1.9.9.114.1.1.5.1.19

TruthValue1 = true2 = falseRepresents a boolean value. · Integer32

Setting this object to true(1) will set the following objects of this entry to 0: ccsFlapInsertionFailsNum, ccsFlapHitsNum, ccsFlapMissesNum, ccsFlapCrcErrorsNum, ccsFlapPowerAdjustmentsNum and ccsFlapTotalNum. Setting this object to true does not destroy the entry, so the ccsFlapCreateTime will be unchanged. Reading this object always returns false(2).

ccsFlapLastResetTime

1.3.6.1.4.1.9.9.114.1.1.5.1.20

DateAndTimeA date-time specification. field octets contents range ----- ------ -------- ----- 1 1-2 year* 0..65536 2 3 month 1..12 3 4 day 1..31 4 5 hour 0..23 5 6 minutes 0..59 6 7 seconds 0..60 (use 60 for leap-second) 7 8 deci-seconds 0..9 8 9 direction from UTC '+' / '-' 9 10 hours from UTC* 0..13 10 11 minutes from UTC 0..59 * Notes: - the value of year is in network-byte order - daylight saving time in New Zealand is +13 For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as: 1992-5-26,13:30:15.0,-4:0 Note that if only local time is known, then timezone information (fields 8-10) is not present. SIZE (8 | 11) · OCTET STRING · hint 2d-1d-1d,1d:1d:1d.1d,1a1d:1d

The last time that all the statistical objects of this entry are started from zero. There are several ways to restart the the statistical objects from zero. Setting the object ccsFlapResetNow or ccsFlapResetAll to true via SNMP is one way and and the other way is via command Line Interface. This timestamp can be used to know the last time the statistical objects are started from zero. The special value of all '00'Hs indicates that these statistical objects of this entry in the ccsFlapTable have never been reset.

ccsCmFlapTable

1.3.6.1.4.1.9.9.114.1.1.11

Index: ccsCmFlapDownstreamIfIndex · ccsCmFlapUpstreamIfIndex · ccsCmFlapMacAddr

This table keeps the records of modem state changes, so it can be used to identify the problematic cable modems. An entry per modem is added to the table automatically by the system when it detects any state changes to the modem. Therefore, it can be deleted but can not be added by the management system.

ccsCmFlapDownstreamIfIndex

1.3.6.1.4.1.9.9.114.1.1.11.1.1

InterfaceIndexA unique value, greater than zero, for each interface or interface sub-layer in the managed system. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. (1..2147483647) · Integer32 · hint d

The ifIndex of the Cable downstream interface whose ifType is docsCableDownstream(128).

ccsCmFlapUpstreamIfIndex

1.3.6.1.4.1.9.9.114.1.1.11.1.2

InterfaceIndexA unique value, greater than zero, for each interface or interface sub-layer in the managed system. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. (1..2147483647) · Integer32 · hint d

The ifIndex of the Cable upstream interface whose ifType is docsCableUpstream(129). The CMTS detects a flapping Cable Modem from its Cable upstream interface.

ccsCmFlapMacAddr

1.3.6.1.4.1.9.9.114.1.1.11.1.3

MacAddressRepresents an 802 MAC address represented in the `canonical' order defined by IEEE 802.1a, i.e., as if it were transmitted least significant bit first, even though 802.5 (in contrast to other 802.x protocols) requires MAC addresses to be transmitted most significant bit first. SIZE (6) · OCTET STRING · hint 1x:

MAC address of the Cable Modem's Cable interface which identifies a flapping Cable Modem.

ccsCmFlapLastFlapTime

1.3.6.1.4.1.9.9.114.1.1.11.1.4

DateAndTimeA date-time specification. field octets contents range ----- ------ -------- ----- 1 1-2 year* 0..65536 2 3 month 1..12 3 4 day 1..31 4 5 hour 0..23 5 6 minutes 0..59 6 7 seconds 0..60 (use 60 for leap-second) 7 8 deci-seconds 0..9 8 9 direction from UTC '+' / '-' 9 10 hours from UTC* 0..13 10 11 minutes from UTC 0..59 * Notes: - the value of year is in network-byte order - daylight saving time in New Zealand is +13 For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as: 1992-5-26,13:30:15.0,-4:0 Note that if only local time is known, then timezone information (fields 8-10) is not present. SIZE (8 | 11) · OCTET STRING · hint 2d-1d-1d,1d:1d:1d.1d,1a1d:1d

The flap time is set whenever the Cable Modem triggers a flap detector.

ccsCmFlapCreateTime

1.3.6.1.4.1.9.9.114.1.1.11.1.5

DateAndTimeA date-time specification. field octets contents range ----- ------ -------- ----- 1 1-2 year* 0..65536 2 3 month 1..12 3 4 day 1..31 4 5 hour 0..23 5 6 minutes 0..59 6 7 seconds 0..60 (use 60 for leap-second) 7 8 deci-seconds 0..9 8 9 direction from UTC '+' / '-' 9 10 hours from UTC* 0..13 10 11 minutes from UTC 0..59 * Notes: - the value of year is in network-byte order - daylight saving time in New Zealand is +13 For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as: 1992-5-26,13:30:15.0,-4:0 Note that if only local time is known, then timezone information (fields 8-10) is not present. SIZE (8 | 11) · OCTET STRING · hint 2d-1d-1d,1d:1d:1d.1d,1a1d:1d

The time that this entry was added to the table. If an entry is removed and then later re-added, there may be a discontinuity in the counters associated with this entry. This timestamp can be used to detect those discontinuities.

ccsCmFlapInsertionFailNum

1.3.6.1.4.1.9.9.114.1.1.11.1.6

Unsigned32

The number of times a Cable Modem registered more frequently than expected. Excessive registration is defined as the presence of a time span between two successive registration cycles which is less than a threshold span (ccsFlapInsertionTime). A Cable Modem may fail the ranging or registration process due to not being able to get an IP address. When the Cable Modem can not finish registration within the insertion time, it retries the process and sends the Initial Maintenance packet again. CMTS will receive the Initial Maintenance packet from the Cable Modem sooner than expected and the Cable Modem is considered a flapping modem. This object may indicate: Intermittent downstream sync loss, or DHCP or modem registration problems. The Flap number (ccsCmFlapTotalNum) will be incremented when this object is incremented. The value of this object can be reset to zero if this entry is removed from the table and then re-added, or if the ccsCmFlapResetNow object was set to true(1). The value of the object ccsCmFlapLastResetTime indicates the last reset time.

ccsCmFlapHitNum

1.3.6.1.4.1.9.9.114.1.1.11.1.7

Unsigned32

The number of times the CMTS receives the Ranging request from the Cable Modem. The CMTS issues a Station Maintenance transmit opportunity at a typical rate of once every 10 seconds and waits for a Ranging request from the Cable Modem. If the CMTS receives a Ranging request then the Hit number will be increased by 1 If the FlapTotal object is high, both Hit and Miss objects are high, and other statistical objects are relatively low then the flapping is probably caused by the modem going up and down. The Hit and Miss objects keep-alive polling statistics. The Hit object should be much greater than the Misses count. The value of this object can be reset to zero if this entry is removed from the table and then re-added, or if the ccsCmFlapResetNow object was set to true(1). The value of the object ccsCmFlapLastResetTime indicates the last reset time.

ccsCmFlapMissNum

1.3.6.1.4.1.9.9.114.1.1.11.1.8

Unsigned32

The number of times the CMTS misses the Ranging request from the Cable Modem. The CMTS issues a Station Maintenance packet every 10 seconds and waits for a Ranging request from the Cable Modem. If the CMTS misses a Ranging request within 25 msec then the Miss Object will be incremented. If ccsCmFlapTotalNum is high, Hit and Miss are high but ccsCmFlapPowerAdjustmentNum and ccsCmFlapInsertionFailNum are low then the flapping is probably caused by the modem going up and down. Miss object can indicate: Intermittent upstream, Laser clipping, or Noise bursts. Laser clipping can happen if the signal power is too high when the upstream electrical signal is converted to an optical signal. When it happens the more input produces less output, until finally there is no more increase in output. This phenomena is called laser clipping. The value of this object can be reset to zero if this entry is removed from the table and then re-added, or if the ccsCmFlapResetNow object was set to true(1). The value of the object ccsCmFlapLastResetTime indicates the last reset time.

ccsCmFlapCrcErrorNum

1.3.6.1.4.1.9.9.114.1.1.11.1.9

Unsigned32

The number of times the CMTS upstream receiver flagged a packet with a CRC error. If ccsCmFlapCrcErrorNum is high, it indicates the cable upstream may have high noise level. The modem may not be flapping yet but it may be a potential problem. This object can indicate: Intermittent upstream, Laser clipping, or Noise bursts. Laser clipping can happen if the signal power is too high when the upstream electrical signal is converted to an optical signal. When it happens the more input produces less output, until finally there is no more increase in output. This phenomena is called laser clipping. The value of this object can be reset to zero if this entry is removed from the table and then re-added, or if the ccsCmFlapResetNow object was set to true(1). The value of the object ccsCmFlapLastResetTime indicates the last reset time.

ccsCmFlapPowerAdjustmentNum

1.3.6.1.4.1.9.9.114.1.1.11.1.10

Unsigned32

The number of times the Cable Modem upstream transmit power is adjusted during station maintenance. When the adjustment is greater than the power adjustment threshold the number will be incremented. The power adjustment threshold is chosen in an implementation-dependent manner The Flap number (ccsCmFlapTotalNum) will be incremented when this object is incremented. If ccsCmFlapTotalNum is high, ccsCmFlapPowerAdjustmentNum is high but the Hit and Miss are low and ccsCmFlapInsertionFailNum are low then the flapping is probably caused by an improper transmit power level setting at the modem end. This object can indicate: Amplifier degradation, Poor connections, or Wind, moisture, or temperature sensitivity. The value of this object can be reset to zero if this entry is removed from the table and then re-added, or if the ccsCmFlapResetNow object was set to true(1). The value of the object ccsCmFlapLastResetTime indicates the last reset time.

ccsCmFlapTotalNum

1.3.6.1.4.1.9.9.114.1.1.11.1.11

Unsigned32

Whenever the Cable Modem passes flap detection, then the flap number is increased. There are 3 flap detectors defined: (1) When ccsCmFlapInsertionFailNum is increased the Flap number will be increased. (2) When the CMTS receives a Miss followed by a Hit then the Flap number will be increased. (3) When ccsCmFlapPowerAdjustmentNum is increased the Flap number will be increased. The value of this object can be reset to zero if this entry is removed from the table and then re-added, or if the ccsCmFlapResetNow object was set to true(1). The value of the object ccsCmFlapLastResetTime indicates the last reset time.

ccsCmFlapResetNow

1.3.6.1.4.1.9.9.114.1.1.11.1.12

TruthValue1 = true2 = falseRepresents a boolean value. · Integer32

Setting this object to true(1) will set the value of certain objects in this table to 0 and does not destroy the entry, so the ccsCmFlapCreateTime will be unchanged. Reading this object always returns false(2).

ccsCmFlapLastResetTime

1.3.6.1.4.1.9.9.114.1.1.11.1.13

DateAndTimeA date-time specification. field octets contents range ----- ------ -------- ----- 1 1-2 year* 0..65536 2 3 month 1..12 3 4 day 1..31 4 5 hour 0..23 5 6 minutes 0..59 6 7 seconds 0..60 (use 60 for leap-second) 7 8 deci-seconds 0..9 8 9 direction from UTC '+' / '-' 9 10 hours from UTC* 0..13 10 11 minutes from UTC 0..59 * Notes: - the value of year is in network-byte order - daylight saving time in New Zealand is +13 For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as: 1992-5-26,13:30:15.0,-4:0 Note that if only local time is known, then timezone information (fields 8-10) is not present. SIZE (8 | 11) · OCTET STRING · hint 2d-1d-1d,1d:1d:1d.1d,1a1d:1d

The last time that all the statistical objects of this entry are started from zero. There are several ways to restart the the statistical objects from zero. Setting the object ccsCmFlapResetNow or ccsCmFlapResetAll to true via SNMP is one way and and the other way is via command Line Interface. This timestamp can be used to know the last time the statistical objects are started from zero. The special value of all '00'Hs indicates that these statistical objects of this entry in the ccsCmFlapTable have never been reset.

ccsCmFlapRowStatus

1.3.6.1.4.1.9.9.114.1.1.11.1.14

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

Controls and reflects the status of rows in this table. When a cable modem triggers a flap detector, if an entry does not already exist for this cable modem, an entry will be created in this table. The new instance of this object will be set to active(1). All flapping modems have the status of active(1). Active entries are removed from the table after they have not triggered any additional flap detectors for the period of time defined in ccsFlapAging. Alternatively, setting this instance to destroy(6) will remove the entry immediately. createAndGo(4) and createAndWait(5) are not supported.

ccsSpectrumRequestTable

1.3.6.1.4.1.9.9.114.1.2.1

Index: ccsSpectrumRequestIndex

This table contains the spectrum data requests. There are two types of request: background noise and SNR. Refer to ccsSpectrumRequestIfIndex and ccsSpectrumRequestMacAddr DESCRIPTIONS on how the type of request is determined.

ccsSpectrumRequestIndex

1.3.6.1.4.1.9.9.114.1.2.1.1.1

Integer32 (1..100)

An arbitrary integer to uniquely identify the entry.

ccsSpectrumRequestIfIndex

1.3.6.1.4.1.9.9.114.1.2.1.1.2

InterfaceIndexOrZeroThis textual convention is an extension of the InterfaceIndex convention. The latter defines a greater than zero value used to identify an interface or interface sub-layer in the managed system. This extension permits the additional value of zero. the value zero is object-specific and must therefore be defined as part of the description of any object which uses this syntax. Examples of the usage of zero might include situations where interface was unknown, or when none or all interfaces need to be referenced. (0..2147483647) · Integer32 · hint d

The ifIndex of a docsCableUpstream(129) interface. The background noise measurement is requested when ccsSpectrumRequestIfIndex is specified. The receiving power measurement is requested when ccsSpectrumRequestMacAddr is specified; In this case, ccsSpectrumRequestIfIndex is the ifIndex of the remote CM's upstream.

ccsSpectrumRequestMacAddr

1.3.6.1.4.1.9.9.114.1.2.1.1.3

MacAddressRepresents an 802 MAC address represented in the `canonical' order defined by IEEE 802.1a, i.e., as if it were transmitted least significant bit first, even though 802.5 (in contrast to other 802.x protocols) requires MAC addresses to be transmitted most significant bit first. SIZE (6) · OCTET STRING · hint 1x:

A MAC address that identifies a remote CM. The default value of 0000.0000.0000 indicates that the background noise will be measured for the upstream. In this case, ccsSpectrumRequestIfIndex must be specified. Other values indicate that the receiving power test is requested for the ccsSpectrumRequestMacAddr with CM signals.

ccsSpectrumRequestLowFreq

1.3.6.1.4.1.9.9.114.1.2.1.1.4

CCSFrequencyThis data type represents the frequency. The unit is in KHz. A range of 5000KHz to 42000KHz 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 65000KHz for some European channel plans. The spectrum range has been further expanded with DOCSIS 3.0 to an upper edge of 85000KHz.If DOCSIS is extended to cover other types of channel plans (and frequency allocations) this object will be modified accordingly. (5000..85000) · Integer32 · KHz

Start of frequency range. The ccsSpectrumRequestLowFreq is adjusted slightly to accurately represent the actual starting point of the frequency range. The adjustment is done as follows: aFactor = (center frequency - ccsSpectrumRequestLowFreq)/12K ccsSpectrumRequestLowFreq = center frequency - (aFactor * 12K) where 12K is the FFT's bin size.

ccsSpectrumRequestUpperFreq

1.3.6.1.4.1.9.9.114.1.2.1.1.5

CCSFrequencyThis data type represents the frequency. The unit is in KHz. A range of 5000KHz to 42000KHz 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 65000KHz for some European channel plans. The spectrum range has been further expanded with DOCSIS 3.0 to an upper edge of 85000KHz.If DOCSIS is extended to cover other types of channel plans (and frequency allocations) this object will be modified accordingly. (5000..85000) · Integer32 · KHz

End of frequency range. With the adjustment done to the ccsSpectrumRequestLowFreq, ccsSpectrumRequestUpperFreq will also be adjusted to the last frequency within the specified range divisible by the bin size. Refer to the ccsSpectrumRequestLowFreq DESCRIPTION for the adjustment calculation.

ccsSpectrumRequestResolution

1.3.6.1.4.1.9.9.114.1.2.1.1.6

Integer32 (12..37000) · KHz

A span between two frequencies. ccsSpectrumRequestResolution dictates the amount of receiving power data to be returned in ccsSpectrumDataTable. The finer the resolution, the more data returned. ccsSpectrumRequestResolution is adjusted to a value which is divisible by FFT's 12KHz bin size.

ccsSpectrumRequestOperation

1.3.6.1.4.1.9.9.114.1.2.1.1.7

CCSRequestOperation0 = none1 = start2 = abortThe CCSRequestOperation is used to control various spectrum tests. It has the following defined values: - 'none', initial value at row creation and also indicates test completion; - 'start', which is used to start the test; - 'abort', which is used to abort the test; · Integer32

The control that allows 'start' or 'abort' of the test. Since there is only 1 FFT engine running on the CMTS, 'start' changes ccsSpectrumRequestOperState to 'pending' state if the FFT is busy; Otherwise, it changes ccsSpectrumRequestOperState to 'running'. 'abort' changes ccsSpectrumRequestOperState to 'aborted' state. 'abort' is only allowed when ccsSpectrumRequestOperState is in 'pending' state. Only 'start' when request is to be started and 'abort' when request is to be aborted can be set by the user. It is set to 'none' only on completion of the request by the FFT engine. Note: The SNMP SET is rejected if ccsSpectrumRequestStatus is not 'active'.

ccsSpectrumRequestOperState

1.3.6.1.4.1.9.9.114.1.2.1.1.8

CCSRequestOperState0 = idle1 = pending2 = running3 = noError4 = aborted5 = notOnLine6 = invalidMac7 = timeOut8 = fftBusy9 = fftFailed10 = othersThe CCSRequestOperState is used to represent the current test status. It has the following defined values: - 'idle', which indicates the test has not been initiated; - 'pending', which indicates the test is in the pending queue; - 'running', which indicates the test is in process; - 'noError', which indicates the test has completed without error; - 'aborted', which indicates the test was stopped before the test was completed; - 'notOnLine', which indicates the Mac Address is not online; - 'invalidMac', which indicates the Mac Address is not valid; - 'timeOut', which indicates timeout has occurred while receiving data from DSP; - 'fftBusy', which indicates the FFT is busy; - 'fftFailed', which indicates the FFT is failed due to a hardware problem; - 'others', other errors; · Integer32

The operational state of the test. ccsSpectrumRequestIfIndex, ccsSpectrumRequestMacAddr, ccsSpectrumRequestUpperFreq, ccsSpectrumRequestLowFreq and ccsSpectrumRequestResolution cannot be changed when CCSRequestOperState is in the 'running' state. For a detailed description, see the CCSRequestOperState DESCRIPTION.

ccsSpectrumRequestStartTime

1.3.6.1.4.1.9.9.114.1.2.1.1.9

TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be defined in the description of any object defined using this type. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when the spectrum measurement operation starts.

ccsSpectrumRequestStoppedTime

1.3.6.1.4.1.9.9.114.1.2.1.1.10

TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be defined in the description of any object defined using this type. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when the spectrum measurement operation stops.

ccsSpectrumRequestStatus

1.3.6.1.4.1.9.9.114.1.2.1.1.11

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The control that allows modification, creation, and deletion of entries. For detailed rules, see the ccsSpectrumRequestEntry DESCRIPTION.

ccsSpectrumDataTable

1.3.6.1.4.1.9.9.114.1.2.2

Index: ccsSpectrumRequestIndex · ccsSpectrumDataFreq

This table contains the receiving power or background noise measurement based on the criteria that is set in the ccsSpectrumRequestEntry.

ccsSpectrumDataFreq

1.3.6.1.4.1.9.9.114.1.2.2.1.1

CCSMeasuredFrequencyThis data type represents the actual measured frequency. The unit is in KHz. (4000..85000) · Integer32 · KHz

ccsSpectrumDataPower measurement frequency. Due to the adjustment calculation the starting frequency range for the actual measured frequency if off comparing to the configured frequency. Refer to ccsSpectrumRequestLowFreq DESCRIPTIONS for the adjustment calculation.

ccsSpectrumDataPower

1.3.6.1.4.1.9.9.114.1.2.2.1.2

INTEGER (-50..50) · Integer32 · dBmV

The receiving power measured at the ccsSpectrumDataFreq.

ccsSNRRequestTable

1.3.6.1.4.1.9.9.114.1.2.3

Index: ccsSNRRequestIndex

A table of CNR requests.

ccsSNRRequestIndex

1.3.6.1.4.1.9.9.114.1.2.3.1.1

Integer32 (1..100)

An arbitrary integer to uniquely identify this entry.

ccsSNRRequestMacAddr

1.3.6.1.4.1.9.9.114.1.2.3.1.2

MacAddressRepresents an 802 MAC address represented in the `canonical' order defined by IEEE 802.1a, i.e., as if it were transmitted least significant bit first, even though 802.5 (in contrast to other 802.x protocols) requires MAC addresses to be transmitted most significant bit first. SIZE (6) · OCTET STRING · hint 1x:

A MAC address that identifies the remote online CM that the CNR measurement operation is being performed on.

ccsSNRRequestSNR

1.3.6.1.4.1.9.9.114.1.2.3.1.3

Integer32 (-100..100) · dB

A snap shot of the CNR value that is measured over the in-use band frequency. The ccsSNRRequestSNR is set to 0 when ccsSNRRequestOperState is in the 'running' state.

ccsSNRRequestOperation

1.3.6.1.4.1.9.9.114.1.2.3.1.4

CCSRequestOperation0 = none1 = start2 = abortThe CCSRequestOperation is used to control various spectrum tests. It has the following defined values: - 'none', initial value at row creation and also indicates test completion; - 'start', which is used to start the test; - 'abort', which is used to abort the test; · Integer32

The control that allows start or abort of the test. Since there is only 1 FFT engine running on the CMTS, 'start' changes ccsSNRRequestOperState to 'pending' state if the FFT is busy; Otherwise, it changes ccsSNRRequestOperState to 'running'. 'abort' changes ccsSNRRequestOperState to 'aborted' state. Only 'start' when request is to be started and 'abort' when request is to be aborted can be set by the user. It is set to 'none' only on completion of the request by the FFT engine.

ccsSNRRequestOperState

1.3.6.1.4.1.9.9.114.1.2.3.1.5

CCSRequestOperState0 = idle1 = pending2 = running3 = noError4 = aborted5 = notOnLine6 = invalidMac7 = timeOut8 = fftBusy9 = fftFailed10 = othersThe CCSRequestOperState is used to represent the current test status. It has the following defined values: - 'idle', which indicates the test has not been initiated; - 'pending', which indicates the test is in the pending queue; - 'running', which indicates the test is in process; - 'noError', which indicates the test has completed without error; - 'aborted', which indicates the test was stopped before the test was completed; - 'notOnLine', which indicates the Mac Address is not online; - 'invalidMac', which indicates the Mac Address is not valid; - 'timeOut', which indicates timeout has occurred while receiving data from DSP; - 'fftBusy', which indicates the FFT is busy; - 'fftFailed', which indicates the FFT is failed due to a hardware problem; - 'others', other errors; · Integer32

The operational state of the test. ccsSNRRequestMacAddr, cannot be changed when the ccsSNRRequestOperState is in the 'running' state.

ccsSNRRequestStartTime

1.3.6.1.4.1.9.9.114.1.2.3.1.6

TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be defined in the description of any object defined using this type. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when the CNR measurement operation starts.

ccsSNRRequestStoppedTime

1.3.6.1.4.1.9.9.114.1.2.3.1.7

TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be defined in the description of any object defined using this type. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when the CNR measurement operation stops.

ccsSNRRequestStatus

1.3.6.1.4.1.9.9.114.1.2.3.1.8

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The control that allows modification, creation, and deletion of entries. For detailed rules see the ccsSpectrumRequestEntry DESCRIPTION.

ccsUpInSpecGroupTable

1.3.6.1.4.1.9.9.114.1.2.4

Index: ccsSpecGroupNumber · ccsSpecGroupUpstreamIfIndex

This table contains the cable upstream interfaces assigned to a spectrum group. A spectrum group contains one or more fixed frequencies or frequency bands which can be assigned to cable upstream interfaces in the spectrum group.

ccsSpecGroupNumber

1.3.6.1.4.1.9.9.114.1.2.4.1.1

Unsigned32 (1..4294967295)

The spectrum group number. The value of the object is same as the value of ccsUpSpecMgmtSpecGroup object except value 0.

ccsSpecGroupUpstreamIfIndex

1.3.6.1.4.1.9.9.114.1.2.4.1.2

InterfaceIndexA unique value, greater than zero, for each interface or interface sub-layer in the managed system. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. (1..2147483647) · Integer32 · hint d

The ifIndex of the Cable upstream interface belonging to this Spectrum Group. The value of the corresponding instance of ifType is 'docsCableUpstream(129)'.

ccsSpecGroupUpstreamStorage

1.3.6.1.4.1.9.9.114.1.2.4.1.3

StorageType1 = other2 = volatile3 = nonVolatile4 = permanent5 = readOnlyDescribes the memory realization of a conceptual row. A row which is volatile(2) is lost upon reboot. A row which is either nonVolatile(3), permanent(4) or readOnly(5), is backed up by stable storage. A row which is permanent(4) can be changed but not deleted. A row which is readOnly(5) cannot be changed nor deleted. If the value of an object with this syntax is either permanent(4) or readOnly(5), it cannot be written. Conversely, if the value is either other(1), volatile(2) or nonVolatile(3), it cannot be modified to be permanent(4) or readOnly(5). (All illegal modifications result in a 'wrongValue' error.) Every usage of this textual convention is required to specify the columnar objects which a permanent(4) row must at a minimum allow to be writable. · Integer32

The storage type for this conceptual row.

ccsSpecGroupUpstreamRowStatus

1.3.6.1.4.1.9.9.114.1.2.4.1.4

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status for this conceptual row. This object is used for creating/deleting entries in ccsUpInSpecGroupTable.

ccsUpInFiberNodeTable

1.3.6.1.4.1.9.9.114.1.2.5

Index: ccsFiberNodeNumber · ccsFiberNodeUpstreamIfIndex

This table contains the cable upstream interfaces in a fiber-node.Each fiber-node uniquely represents an RF domain.Cable upstream interfaces in the same fiber-node are physically combined together into the same RF domain.

ccsFiberNodeNumber

1.3.6.1.4.1.9.9.114.1.2.5.1.1

Unsigned32 (1..4294967295)

The fiber-node number. The value of the object is same as the value of ccsUpSpecMgmtSharedSpectrum except value 0.

ccsFiberNodeUpstreamIfIndex

1.3.6.1.4.1.9.9.114.1.2.5.1.2

InterfaceIndexA unique value, greater than zero, for each interface or interface sub-layer in the managed system. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. (1..2147483647) · Integer32 · hint d

The ifIndex of the Cable upstream interface belonging to this Spectrum Group. The value of the corresponding instance of ifType is 'docsCableUpstream(129)'.

ccsFiberNodeUpstreamStorage

1.3.6.1.4.1.9.9.114.1.2.5.1.3

StorageType1 = other2 = volatile3 = nonVolatile4 = permanent5 = readOnlyDescribes the memory realization of a conceptual row. A row which is volatile(2) is lost upon reboot. A row which is either nonVolatile(3), permanent(4) or readOnly(5), is backed up by stable storage. A row which is permanent(4) can be changed but not deleted. A row which is readOnly(5) cannot be changed nor deleted. If the value of an object with this syntax is either permanent(4) or readOnly(5), it cannot be written. Conversely, if the value is either other(1), volatile(2) or nonVolatile(3), it cannot be modified to be permanent(4) or readOnly(5). (All illegal modifications result in a 'wrongValue' error.) Every usage of this textual convention is required to specify the columnar objects which a permanent(4) row must at a minimum allow to be writable. · Integer32

The storage type for this conceptual row.

ccsFiberNodeUpstreamRowStatus

1.3.6.1.4.1.9.9.114.1.2.5.1.4

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status for this conceptual row. This object is used for creating/deleting entries in ccsUpInFiberNodeTable.

ccsUpSpecMgmtTable

1.3.6.1.4.1.9.9.114.1.3.1

Index: ifIndex

This table contains the attributes of the cable upstream interfaces, ifType of docsCableUpstream(129), to be used for improving performance and proactive hopping. Proactive hopping is achieved by setting the SNR polling period over the in-use band without CM signals.

from IF-MIB

ifIndex

InterfaceIndexA unique value, greater than zero, for each interface or interface sub-layer in the managed system. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. (1..2147483647) · Integer32 · hint d

A unique value, greater than zero, for each interface. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re- initialization.

ccsUpSpecMgmtHopPriority

1.3.6.1.4.1.9.9.114.1.3.1.1.1

INTEGER0 = frqModChannel1 = frqChannelMod2 = modFrqChannel3 = modChannelFrq4 = channelFrqMod5 = channelModFrq · Integer32

A preference priority for changing the frequency, modulation, or channel width supporting the automatic switching of the modulation scheme when the channel becomes noisy. The default priority is frequency, modulation, and channel width. With the default preference, the frequency is changed if there is a clean band available. If there's no clean band available, the modulation is changed. And if the clean band is still not available, the bandwidth is reduced until an acceptable band is found or a minimum bandwidth of 200KHz.

ccsUpSpecMgmtSnrThres1

1.3.6.1.4.1.9.9.114.1.3.1.1.2

Integer32 (0 | 5..35) · dB

The Signal to Noise (SNR) threshold. This object is applicable for modulation profile 1. When the CMTS detects that the SNR goes lower than ccsUpSpecMgmtSnrThres1, it switches to profile 2. Therefore, ccsUpSpecMgmtSnrThres1 should be larger than ccsUpSpecMgmtSnrThres2. A value 0 indicates to bypass the threshold check.

ccsUpSpecMgmtSnrThres2

1.3.6.1.4.1.9.9.114.1.3.1.1.3

Integer32 (0 | 5..35) · dB

The Signal to Noise (SNR) threshold. This object is applicable for modulation profile 2. Refer to ccsUpSpecMgmtCriteria on how ccsUpSpecMgmtSnrThres2 can trigger a change in frequency, modulation or channel width. A value 0 indicates to bypass the threshold check. Note: The SNMP SET is rejected if both ccsUpSpecMgmtSnrThres1, ccsUpSpecMgmtSnrThres2 are non-zero and ccsUpSpecMgmtSnrThres2 is higher than ccsUpSpecMgmtSnrThres1.

ccsUpSpecMgmtFecCorrectThres1

1.3.6.1.4.1.9.9.114.1.3.1.1.4

Integer32 (0 | 1..30)

The Forward Error Correction (FEC) correctable count threshold. This object is applicable for profile 1. A value 0 indicates to bypass the threshold check. When CMTS detects that FEC correctable count goes higher than ccsUpSpecMgmtFecCorrectThres1, it switch to Profile 2. Therefore, ccsUpSpecMgmtFecCorrectThres1 should be smaller than ccsUpSpecMgmtFecCorrectThres2.

ccsUpSpecMgmtFecCorrectThres2

1.3.6.1.4.1.9.9.114.1.3.1.1.5

Integer32 (1..20)

The FEC correctable count threshold. This object is applicable for profile 2. When CMTS detects that FEC correctable count goes higher than ccsUpSpecMgmtFecCorrectThres2, modulation change can occur, depending on the type of ccsUpSpecMgmtHopPriority. Note: SNMP SET will be rejected if ccsUpSpecMgmtFecCorrectThres2 is lower than ccsUpSpecMgmtFecCorrectThres1.

ccsUpSpecMgmtFecUnCorrectThres1

1.3.6.1.4.1.9.9.114.1.3.1.1.6

Integer32 (0 | 1..30)

The FEC uncorrectable count threshold. This object is applicable for modulation profile 1. A value 0 indicates to bypass the threshold check. When CMTS detects that FEC uncorrectable count goes higher than ccsUpSpecMgmtFecUnCorrectThres1, it switches to Profile 2. Therefore, ccsUpSpecMgmtFecUnCorrectThres1 should be smaller than ccsUpSpecMgmtFecUnCorrectThres2.

ccsUpSpecMgmtFecUnCorrectThres2

1.3.6.1.4.1.9.9.114.1.3.1.1.7

Integer32 (0 | 1..30)

The FEC uncorrectable count threshold. This object is applicable for modulation profile 2. A value 0 indicates to bypass the threshold check. Refer to ccsUpSpecMgmtCriteria on how ccsUpSpecMgmtFecUnCorrectThres2 can trigger a change in frequency, modulation or channel width. Note: SNMP SET is rejected if ccsUpSpecMgmtFecUnCorrectThres2 is lower than ccsUpSpecMgmtFecUnCorrectThres1.

ccsUpSpecMgmtSnrPollPeriod

1.3.6.1.4.1.9.9.114.1.3.1.1.8

Integer32 (500..25000) · msec

A period between SNR pollings. The SNR is collected from the Fast Fourier Transform (FFT) measurement over the in-use band when there is no CM signals. When the CMTS detects that SNR doesn't meet ccsUpSpecMgmtSnrThres1 or ccsUpSpecMgmtSnrThres2, a possible hopping occurs, depending on the type of ccsUpSpecMgmtHopPriority.

ccsUpSpecMgmtHopCondition

1.3.6.1.4.1.9.9.114.1.3.1.1.9

INTEGER0 = snr1 = stationMaintainenceMiss2 = others · Integer32

A condition that triggers hopping. The SNR condition occurs when SNR does not meet the ccsUpSpecMgmtSnrThres1 or ccsUpSpecMgmtSnrThres2. The stationMaintainenceMiss condition occurs when the percentage of offline CMs is reached.

ccsUpSpecMgmtFromCenterFreq

1.3.6.1.4.1.9.9.114.1.3.1.1.10

Unsigned32 (0 | 5000..65000) · KHz

Center frequency before hopping occurs. A value 0 indicates that the interface has no frequency assigned.

ccsUpSpecMgmtToCenterFreq

1.3.6.1.4.1.9.9.114.1.3.1.1.11

Unsigned32 (0 | 5000..65000) · KHz

Current center frequency. A value 0 indicates that the interface has no frequency assigned.

ccsUpSpecMgmtFromBandWidth

1.3.6.1.4.1.9.9.114.1.3.1.1.12

Unsigned32 (200 | 400 | 800 | 1600 | 3200 | 6400) · KHz

Bandwidth before hopping occurs.

ccsUpSpecMgmtToBandWidth

1.3.6.1.4.1.9.9.114.1.3.1.1.13

Unsigned32 (200 | 400 | 800 | 1600 | 3200 | 6400) · KHz

Current bandwidth.

ccsUpSpecMgmtFromModProfile

1.3.6.1.4.1.9.9.114.1.3.1.1.14

Integer32 (1..2147483647)

Modulation profile index before hopping occurs. It is the index identical to the docsIfModIndex in the docsIfCmtsModulationTable. For the detailed descriptions, see the docsIfCmtsModulationTable and docsIfCmtsModIndex DESCRIPTIONS.

ccsUpSpecMgmtToModProfile

1.3.6.1.4.1.9.9.114.1.3.1.1.15

Integer32 (1..2147483647)

The current modulation profile index. It is the index identical to the docsIfModIndex in the docsIfCmtsModulationTable. For the detailed descriptions, see the docsIfCmtsModulationTable and docsIfCmtsModIndex DESCRIPTIONS.

ccsUpSpecMgmtSNR

1.3.6.1.4.1.9.9.114.1.3.1.1.16

Integer32 (-100..100) · dB

Current SNR. A value -99 indicates the system detected no modem on line, and a value of -100 indicates the system was unable to retrieve the SNR value.

ccsUpSpecMgmtUpperBoundFreq

1.3.6.1.4.1.9.9.114.1.3.1.1.17

CCSFrequencyThis data type represents the frequency. The unit is in KHz. A range of 5000KHz to 42000KHz 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 65000KHz for some European channel plans. The spectrum range has been further expanded with DOCSIS 3.0 to an upper edge of 85000KHz.If DOCSIS is extended to cover other types of channel plans (and frequency allocations) this object will be modified accordingly. (5000..85000) · Integer32 · KHz

Upper bound frequency that the upstream supports.

ccsUpSpecMgmtCnrThres1

1.3.6.1.4.1.9.9.114.1.3.1.1.18

Integer32 (0 | 5..35) · dB

The Carrier to Noise (CNR) threshold. This object is applicable for modulation profile 1. When the CMTS detects that the CNR goes lower than ccsUpSpecMgmtCnrThres1, it switches to profile 2. Therefore, ccsUpSpecMgmtCnrThres1 should be larger than ccsUpSpecMgmtCnrThres2. A value 0 indicates to bypass the threshold check.

ccsUpSpecMgmtCnrThres2

1.3.6.1.4.1.9.9.114.1.3.1.1.19

Integer32 (0 | 5..35) · dB

The Carrier to Noise (CNR) threshold. This object is applicable for modulation profile 2. Refer to ccsUpSpecMgmtCriteria on how ccsUpSpecMgmtCnrThres2 can trigger a change in frequency, modulation or channel width. A value 0 indicates to bypass the threshold check. Note: The SNMP SET is rejected if both ccsUpSpecMgmtCnrThres1, ccsUpSpecMgmtCnrThres2 are non-zero and ccsUpSpecMgmtCnrThres2 is higher than ccsUpSpecMgmtCnrThres1.

ccsUpSpecMgmtCNR

1.3.6.1.4.1.9.9.114.1.3.1.1.20

Integer32 (-100..100) · dB

Current CNR. A value -99 indicates the system detected no modem on line, and a value of -100 indicates the system was unable to retrieve the CNR value.

ccsUpSpecMgmtMissedMaintMsgThres

1.3.6.1.4.1.9.9.114.1.3.1.1.21

Integer32 (0..100)

The missed maintenance message threshold in percentage. A value 0 indicates that the interface has no spectrum group assigned. i.e. ccsUpSpecMgmtSpecGroup equals 0.

ccsUpSpecMgmtHopPeriod

1.3.6.1.4.1.9.9.114.1.3.1.1.22

Integer32 (0 | 1..3600) · seconds

The minimum time between frequency hops in seconds. A value 0 indicates that the interface has no spectrum group assigned. i.e. ccsUpSpecMgmtSpecGroup equals to 0.

ccsUpSpecMgmtCriteria

1.3.6.1.4.1.9.9.114.1.3.1.1.23

BITS

Defines the criteria that trigger a change in frequency hopping, modulation or channel width. Depending on the type of linecards, the criteria are slightly different: For the linecards that have no Hardware Based Spectrum Management capability like the uBR-MC1xC, change in modulation or frequency occurs in the following criteria: 1) Change from modulation profile 1 to modulation profile 2 would occur when CMTS detects the SNR that goes below the threshold and either corr FEC or uncorr FEC is above the threshold. In this case, snrBelowThres and either corrFecAboveThres or uncorrFecAboveThres bits will get set. 2) Change from modulation profile 2 to modulation profile 1 would occur when CMTS detects the SNR goes above the threshold+3 and both corr FEC and uncorr FEC are below the threshold. In this case, snrAboveThres and corrFecBelowThres and uncorrFecBelowThres bits will get set. 3) Change in frequency or frequency hopping would occur when CMTS detects no active modem on the link. In this case, noActiveModem bit will get set accordingly. For the linecards that have the Hardware Based Spectrum Management capability, change in frequency, modulation or channel width occurs in the following criteria: 1) when CMTS detects the SNR or CNR goes below the threshold and either corr FEC or uncorr FEC is above the threshold. In this case, either snrBelowThres or cnrBelowThres and either corrFecAboveThres or uncorrFecAboveThres bits will get set. 2) when CMTS detects the SNR or CNR goes above the threshold + 3 and both corr FEC and uncorr FEC are below the threshold. In this case, either snrAboveThres or cnrAboveThres and both corrFecBelowThres and uncorrFecBelowThres bits will get set. 3) when CMTS detects no active modem on the link or uncorr FEC is above ccsUpSpecMgmtFecUnCorrectThres2. In this case noActiveModem or uncorrFecAboveSecondThres bit will get set accordingly. Note: The order of frequency, modulation or channel width changes for the advanced spectrum management linecards will be determined based on the selection of the ccsUpSpecMgmtHopPriority.

ccsUpSpecMgmtSpecGroup

1.3.6.1.4.1.9.9.114.1.3.1.1.24

Unsigned32

The spectrum group assigned to the upstream. The value of 0 for the object indicates that the upstream has no spectrum group assigned.

ccsUpSpecMgmtSharedSpectrum

1.3.6.1.4.1.9.9.114.1.3.1.1.25

Unsigned32

The fiber-node assigned to the upstreams. Upstreams having same fiber-node number indicates that they physically combine together into same RF domain and must have unique frequency assigned. The value of 0 for the object indicates that the upstream is not physically combine with any others.

ccsSpecGroupFreqTable

1.3.6.1.4.1.9.9.114.1.3.2

Index: ccsSpecGroupNumber · ccsSpecGroupFreqIndex

This table contains the frequency and band configuration of the spectrum group.

ccsSpecGroupFreqIndex

1.3.6.1.4.1.9.9.114.1.3.2.1.1

Unsigned32 (1..4294967295)

An arbitrary index to uniquely identify frequencies or bands configured in spectrum group.

ccsSpecGroupFreqType

1.3.6.1.4.1.9.9.114.1.3.2.1.2

INTEGER1 = centerFreq2 = bandFreq · Integer32

The type of the frequency configured in spectrum group. This is a mandatory object and can be modified when the row is active. If the value of centerFreq(1) is specified, the values of the corresponding instance of ccsSpecGroupFreqLower and csSpecGroupFreqUpper object must be identical. If the value of bandFreq(2) is specified, the values of the corresponding instance of ccsSpecGroupFreqLower and csSpecGroupFreqUpper must be unique.

ccsSpecGroupFreqLower

1.3.6.1.4.1.9.9.114.1.3.2.1.3

Integer32 (0..1000000000) · Hz

The lower frequency configured in spectrum group. This is a mandatory object and can be modified when the row is active. To configure a band frequency in the spectrum group, the value of this object must be lower than the value of the corresponding instance of ccsSpecGroupFreqUpper. To configure a fixed center frequency in the spectrum group, the value of this object must be equal to the value of the corresponding instance of ccsSpecGroupFreqUpper.

ccsSpecGroupFreqUpper

1.3.6.1.4.1.9.9.114.1.3.2.1.4

Integer32 (0..1000000000) · Hz

The upper frequency configured in spectrum group. This is a mandatory object and can be modified when the row is active. To configure a band frequency in the spectrum group, the value of this object must be greater than the value of the corresponding instance of ccsSpecGroupFreqLower. To configure a fixed center frequency in the spectrum group, the value of this object must be equal to the value of the corresponding instance of ccsSpecGroupFreqLower.

ccsSpecGroupStorage

1.3.6.1.4.1.9.9.114.1.3.2.1.5

StorageType1 = other2 = volatile3 = nonVolatile4 = permanent5 = readOnlyDescribes the memory realization of a conceptual row. A row which is volatile(2) is lost upon reboot. A row which is either nonVolatile(3), permanent(4) or readOnly(5), is backed up by stable storage. A row which is permanent(4) can be changed but not deleted. A row which is readOnly(5) cannot be changed nor deleted. If the value of an object with this syntax is either permanent(4) or readOnly(5), it cannot be written. Conversely, if the value is either other(1), volatile(2) or nonVolatile(3), it cannot be modified to be permanent(4) or readOnly(5). (All illegal modifications result in a 'wrongValue' error.) Every usage of this textual convention is required to specify the columnar objects which a permanent(4) row must at a minimum allow to be writable. · Integer32

The storage type for this conceptual row.

ccsSpecGroupRowStatus

1.3.6.1.4.1.9.9.114.1.3.2.1.6

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this conceptual row. This object is used for creating/deleting entries in ccsSpecGroupFreqTable. A conceptual row may not be created via SNMP without explicitly setting the value of ccsSpecGroupRowStatus to createAndGo(4). A conceptual row can not have the status of active(1) until proper values have been assigned to the mandatory objects ccsSpecGroupFreqType, ccsSpecGroupFreqLower, and ccsSpecGroupFreqUpper. A conceptual row may be modified or deleted any time. If the frequency represents by the row has been assigned to a cable upstream interface, modifying or deleting such row would cause the cable upstream interface frequency reassignment.

Trap details

ccsHoppingNotification

1.3.6.1.4.1.9.9.114.2.0.1

A notification is sent when there's a change in frequency (hopping), modulation, or profile. In the case of frequency hopping, ccsUpSpecMgmtHopCondition would indicate whether SNR or modemOffline that caused the hopping.

ccsUpSpecMgmtHopCondition

1.3.6.1.4.1.9.9.114.1.3.1.1.9

INTEGER0 = snr1 = stationMaintainenceMiss2 = others · Integer32

A condition that triggers hopping. The SNR condition occurs when SNR does not meet the ccsUpSpecMgmtSnrThres1 or ccsUpSpecMgmtSnrThres2. The stationMaintainenceMiss condition occurs when the percentage of offline CMs is reached.

ccsUpSpecMgmtFromCenterFreq

1.3.6.1.4.1.9.9.114.1.3.1.1.10

Unsigned32 (0 | 5000..65000) · KHz

Center frequency before hopping occurs. A value 0 indicates that the interface has no frequency assigned.

ccsUpSpecMgmtToCenterFreq

1.3.6.1.4.1.9.9.114.1.3.1.1.11

Unsigned32 (0 | 5000..65000) · KHz

Current center frequency. A value 0 indicates that the interface has no frequency assigned.

ccsUpSpecMgmtFromBandWidth

1.3.6.1.4.1.9.9.114.1.3.1.1.12

Unsigned32 (200 | 400 | 800 | 1600 | 3200 | 6400) · KHz

Bandwidth before hopping occurs.

ccsUpSpecMgmtToBandWidth

1.3.6.1.4.1.9.9.114.1.3.1.1.13

Unsigned32 (200 | 400 | 800 | 1600 | 3200 | 6400) · KHz

Current bandwidth.

ccsUpSpecMgmtFromModProfile

1.3.6.1.4.1.9.9.114.1.3.1.1.14

Integer32 (1..2147483647)

Modulation profile index before hopping occurs. It is the index identical to the docsIfModIndex in the docsIfCmtsModulationTable. For the detailed descriptions, see the docsIfCmtsModulationTable and docsIfCmtsModIndex DESCRIPTIONS.

ccsUpSpecMgmtToModProfile

1.3.6.1.4.1.9.9.114.1.3.1.1.15

Integer32 (1..2147483647)

The current modulation profile index. It is the index identical to the docsIfModIndex in the docsIfCmtsModulationTable. For the detailed descriptions, see the docsIfCmtsModulationTable and docsIfCmtsModIndex DESCRIPTIONS.

ccsSpecMgmtNotification

1.3.6.1.4.1.9.9.114.2.0.2

A notification is sent when there's a change in frequency hopping, modulation, or profile. ccsUpSpecMgmtCriteria is used to indicate the cause(s).

ccsUpSpecMgmtCriteria

1.3.6.1.4.1.9.9.114.1.3.1.1.23

BITS

Defines the criteria that trigger a change in frequency hopping, modulation or channel width. Depending on the type of linecards, the criteria are slightly different: For the linecards that have no Hardware Based Spectrum Management capability like the uBR-MC1xC, change in modulation or frequency occurs in the following criteria: 1) Change from modulation profile 1 to modulation profile 2 would occur when CMTS detects the SNR that goes below the threshold and either corr FEC or uncorr FEC is above the threshold. In this case, snrBelowThres and either corrFecAboveThres or uncorrFecAboveThres bits will get set. 2) Change from modulation profile 2 to modulation profile 1 would occur when CMTS detects the SNR goes above the threshold+3 and both corr FEC and uncorr FEC are below the threshold. In this case, snrAboveThres and corrFecBelowThres and uncorrFecBelowThres bits will get set. 3) Change in frequency or frequency hopping would occur when CMTS detects no active modem on the link. In this case, noActiveModem bit will get set accordingly. For the linecards that have the Hardware Based Spectrum Management capability, change in frequency, modulation or channel width occurs in the following criteria: 1) when CMTS detects the SNR or CNR goes below the threshold and either corr FEC or uncorr FEC is above the threshold. In this case, either snrBelowThres or cnrBelowThres and either corrFecAboveThres or uncorrFecAboveThres bits will get set. 2) when CMTS detects the SNR or CNR goes above the threshold + 3 and both corr FEC and uncorr FEC are below the threshold. In this case, either snrAboveThres or cnrAboveThres and both corrFecBelowThres and uncorrFecBelowThres bits will get set. 3) when CMTS detects no active modem on the link or uncorr FEC is above ccsUpSpecMgmtFecUnCorrectThres2. In this case noActiveModem or uncorrFecAboveSecondThres bit will get set accordingly. Note: The order of frequency, modulation or channel width changes for the advanced spectrum management linecards will be determined based on the selection of the ccsUpSpecMgmtHopPriority.

ccsUpSpecMgmtFromCenterFreq

1.3.6.1.4.1.9.9.114.1.3.1.1.10

Unsigned32 (0 | 5000..65000) · KHz

Center frequency before hopping occurs. A value 0 indicates that the interface has no frequency assigned.

ccsUpSpecMgmtToCenterFreq

1.3.6.1.4.1.9.9.114.1.3.1.1.11

Unsigned32 (0 | 5000..65000) · KHz

Current center frequency. A value 0 indicates that the interface has no frequency assigned.

ccsUpSpecMgmtFromBandWidth

1.3.6.1.4.1.9.9.114.1.3.1.1.12

Unsigned32 (200 | 400 | 800 | 1600 | 3200 | 6400) · KHz

Bandwidth before hopping occurs.

ccsUpSpecMgmtToBandWidth

1.3.6.1.4.1.9.9.114.1.3.1.1.13

Unsigned32 (200 | 400 | 800 | 1600 | 3200 | 6400) · KHz

Current bandwidth.

ccsUpSpecMgmtFromModProfile

1.3.6.1.4.1.9.9.114.1.3.1.1.14

Integer32 (1..2147483647)

Modulation profile index before hopping occurs. It is the index identical to the docsIfModIndex in the docsIfCmtsModulationTable. For the detailed descriptions, see the docsIfCmtsModulationTable and docsIfCmtsModIndex DESCRIPTIONS.

ccsUpSpecMgmtToModProfile

1.3.6.1.4.1.9.9.114.1.3.1.1.15

Integer32 (1..2147483647)

The current modulation profile index. It is the index identical to the docsIfModIndex in the docsIfCmtsModulationTable. For the detailed descriptions, see the docsIfCmtsModulationTable and docsIfCmtsModIndex DESCRIPTIONS.

↑ To TOC