-- -- ******************************************************************** -- CISCO-CABLE-QOS-MONITOR-MIB.my: -- Cisco Cable QoS Monitoring MIB file -- -- Jan 2003, Sunethra Jawahar -- Oct 2003, Gaurav Aggarwal -- -- Copyright (c) 2003, 2004 by Cisco Systems, Inc. -- All rights reserved. -- ******************************************************************** -- -- -- This is the MIB module for subscriber QoS monitoring for -- DOCSIS-compliant Cable Modem Termination Systems (CMTS). -- -- QoS Monitoring is a software feature provided in the CMTS so that -- the CMTS may identify subscribers who over consume resources -- based on their QoS parameters, report them to a management -- entity, and automatically mitigate the problem where possible. -- This is done by penalyzing the violating subscribers by changing -- their QoS parameters to enforced QoS parameters. -- -- The MIB allows to create enforce rules which are used to determine the -- over consumption of resources. The enforce rule contains monitoring -- and enforced QoS parameters. -- -- The MIB also provides a unified view of all over-consuming subscribers. -- -- CISCO-CABLE-QOS-MONITOR-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, NOTIFICATION-TYPE FROM SNMPv2-SMI TEXTUAL-CONVENTION, TruthValue, MacAddress, RowStatus, DisplayString, DateAndTime FROM SNMPv2-TC OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP FROM SNMPv2-CONF ifIndex FROM IF-MIB ciscoMgmt FROM CISCO-SMI; ciscoCableQosMonitorMIB MODULE-IDENTITY LAST-UPDATED "200402200000Z" ORGANIZATION "Cisco Systems, Inc." CONTACT-INFO " Cisco Systems Customer Service Postal: Cisco Systems 170 West Tasman Drive San Jose, CA 95134 U.S.A. Phone: +1 800 553-NETS E-mail: cs-ubr@cisco.com" DESCRIPTION "This is the MIB module for subscriber QoS monitoring for DOCSIS-compliant Cable Modem Termination Systems (CMTS). Several subscriber behavior can be monitored: 1. When the subscriber requests for more resources than as defined by its QoS parameter set. In this case, though requested for more rate-limiting happens in the CMTS, hence, the subscriber will get only as much resources as defined by its registered QoS parameter set. In this mib, QoS parameter set refers to QoS profiles for 1.0 modems and refer to service class names for 1.1 and 2.0 modems. 2. When the subscriber continuously utilizes the resources to the upper limit or very near to the upper limit as defined by its QoS parameter set. 3. When the subscriber sometimes or never utilizes the resources as defined by the upper limit of the QoS parameter set. In the first two cases, we need to monitor the subscribers as upstream/downstream is a shared medium, and if all subscribers start consuming resources as per their peak rate, or a percentage of it, CMTS will be hard pressed for resources. So, even though such subscribers are using resources within the limits as defined by their QoS parameter set, from the CMTS point of view, they are over consuming. Through out this MIB, we refer to this behavior of subscribers as over consumption of resources and such subscribers will be the violating subscribers. The subscriber QoS Monitoring is a software feature provided on the CMTS so that the CMTS may identify such subscribers who over consume resources based on their QoS parameter set, report them to a management entity, and automatically mitigate the problem where possible. This is done by penalizing the violating subscribers by changing their QoS parameter set to enforced QoS parameter set. The MIB allows to create enforce rules which are used to determine the over consumption of resources. The enforce rule contains monitoring and enforced QoS parameter set. The subscribers who over consume their bandwidth are flagged and NMS notified of all such violations. The MIB also provides a unified view of all over-consuming subscribers." REVISION "200402200000Z" DESCRIPTION "Added objects in ccqmCmtsEnforceRuleTable to support DOCSIS1.1, DOCSIS2.0 modems and peak/off-peak monitoring. The objects are: ccqmCmtsEnfRuleAvgRate, ccqmCmtsEnfRuleDocsVer, ccqmCmtsEnfRuleRegSerClassName, ccqmCmtsEnfRuleEnfSerClassName, ccqmCmtsEnfRuleMonType, ccqmCmtsEnfRuleFirstPeakTime, ccqmCmtsEnfRuleFirstDuration, ccqmCmtsEnfRuleFirstAvgRate, ccqmCmtsEnfRuleSecondPeakTime, ccqmCmtsEnfRuleSecondDuration, ccqmCmtsEnfRuleSecondAvgRate, ccqmCmtsEnfRuleOffPeakDuration, ccqmCmtsEnfRuleOffPeakAvgRate Added ccqmCmtsIfBwUtilTable to provide thresholds for downstream/upstream bandwidth utilization. Removed ccqmCmtsEnfRuleByteCount which was obsoleted." REVISION "200304030000Z" DESCRIPTION "Changed ranges of few objects." REVISION "200303040000Z" DESCRIPTION "Initial version of this MIB module." ::= { ciscoMgmt 341 } CCQMRuleDirection ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The CCQMRuleDirection is used to indicate the direction to which the enforce rule applies to. It has the following defined values: - 'upstream', is used for an enforce rule in the direction from subscriber to CMTS - 'downstream', is used for an enforce rule in the direction from CMTS to the subscriber. - 'bidirection', which can mean neither upstream or downstream but a combined enforce rule. " SYNTAX INTEGER { upstream(1), downstream(2), bidirection(3) } ciscoCableQosMonitorMIBObjects OBJECT IDENTIFIER ::= { ciscoCableQosMonitorMIB 1 } ccqmEnforceRuleObjects OBJECT IDENTIFIER ::= { ciscoCableQosMonitorMIBObjects 1 } ccqmRuleViolateObjects OBJECT IDENTIFIER ::= { ciscoCableQosMonitorMIBObjects 2 } ccqmRuleIfBwUtilObjects OBJECT IDENTIFIER ::= { ciscoCableQosMonitorMIBObjects 3 } -- -- Cmts Qos Enforce Rule Table -- -- CMTS maintains a list of QoS enforce rules. -- These enforce rules define : -- 1) Criteria for identifying violating subscribers: -- This criteria could be as simple as bytes transmitted over -- the last monitoring duration and checked at a rate equal -- to the sample rate. -- In the sliding window concept used, the monitoring duration -- is the size of the window. This window slides by an amount -- that is equal to the sample rate. At every sample rate the bytes -- transmitted in the time equal to a monitoring duration is -- checked. If this is found to be larger than the byte count which -- is calculated by multiplying the defined average rate by the -- monitoring duration limit per monitoring duration, the subscriber -- is flagged as over consuming or violating the enforce rule. -- Else the monitoring will continue. -- For example let the monitoring duration be 360 minutes and sample -- rate be 30 minutes. If the average rate is 2kbits/sec, so -- the total byte count for the monitoring duration would be -- 5.4Mbytes then every 30 minutes we check if the bytes -- transmitted in the last 360 minutes exceeded 5.4Mbytes. If so, -- the subscriber is over consuming. -- -- |< Monitoring duration >| -- -- |S rate | -- |___________________________| -- |____________________________| -- |_____________________________| -- |______________________________| -- X X X X X X X -- -- X -> Check made to see if byte count is exceeded. -- S rate -> Sample rate -- -- 2) Registered and Enforced QoS parameter set: -- Enforce rules have a one to one mapping to QoS profiles -- (for 1.0 modems) and service class names (for 1.1 and 2.0 modems) -- that subscribers have registered with. Through out the mib -- QoS parameter set refers to QoS profiles for 1.0 modems -- and they refer to service class names for 1.1 and 2.0 modems. If -- subscribers are found to violate parameters as defined by -- their Registered Qos parameter set then the Enforced QoS -- parameter set will be enforced on such subscribers. The rule -- can be configured such that the enforcement happens automatically -- or based on some manual settings by NMS. -- 3) Penalty Period: -- This defines the time period for which the Enforced Qos -- parameter set will be applicable. The registered QoS -- parameter set will be restored when the penalty period -- expires again based on whether automation was desired. -- ccqmCmtsEnforceRuleTable OBJECT-TYPE SYNTAX SEQUENCE OF CcqmCmtsEnforceRuleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the attributes of the QoS enforce rules present on the CMTS. These enforce rules define the criteria for identifying subscribers who over consume resources. This could be as simple as bytes transmitted over the last monitoring duration and checked at a rate equal to the sample rate. In the sliding window concept used, the monitoring duration is the size of the window. This window slides by an amount that is equal to the sample rate. At every sample rate the bytes transmitted in the time equal to a monitoring duration is checked. If this is found to be larger than the threshold limit which is calculated by multiplying the defined average rate by the monitoring duration per monitoring duration, the subscriber is flagged as over consuming. Else the monitoring will continue. For example let the monitoring duration be 360 minutes and sample rate be 30 minutes. If the average rate is 2kbits/sec then every 30 minutes we check if the bytes transmitted in the last 360 minutes exceeded 5.4Mbytes bytes. If so, the subscriber is over consuming. The enforce rule has a one to one mapping to QoS profiles in case of DOCSIS1.0 (and DOCSIS1.0+ modems) and to service class names in case of DOCSIS1.1 and DOCSIS2.0 modems. It defines the registered QoS parameter set and an enforced QoS parameter set be applied if found to be violating the registered QoS parameter set. The enforce rule also defines a penalty period for which the enforced QoS parameter set will be applied. The registered QoS parameter set will be restored when the penalty period expires. The monitoring can be of two types: 1) Legacy/Basic monitoring: There is only one threshold and one monitoring-duration and the monitoring-duration can be more than one day and within a day there is no distinction among hours as peak or offpeak hours. An example would be: monitoring duration : 2 days Average rate : 2kbits/sec 2) Peak-offPeak monitoring: A maximum of two peak durations can be defined with in a day and the remaining hours are treated as off-peak and the monitoring will happen during these offpeak hours if the offpeak duration and threhold are defined. The monitoring-duration and threshold for all three, first peak, second peak and offpeak can be different. Here, the monitoring duration for any of the peaks or offpeak cannot be more than a day. An example when both peaks and offpeak are defined is: First peak: monitoring duration: Between 6am to 9am i.e., 3hours Average rate : 2kbits/sec Second peak: monitoring duration: Between 6pm to 10pm i.e., 4hrs Average rate : 3kbits/sec Off peak: Remaining hours in the day i.e., 12 midnight to 6:00am, 9am to 6pm and 10pm to 12mignight. monitoring duration: 2 hours Average rate : 1kbits/sec." ::= { ccqmEnforceRuleObjects 1 } ccqmCmtsEnforceRuleEntry OBJECT-TYPE SYNTAX CcqmCmtsEnforceRuleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A set of attributes of a enforce rule on the CMTS. One entry exists for each QoS enforce rule. It is indexed by ccqmCmtsEnfRuleName as each enforce rule is associated with a unique name. The user can define the legacy/basic monitoring as: Suppose, the duration is 2 hours and the average rate is 2kbits/sec, so the following object would be need to set: ccqmCmtsEnfRuleMonType = 1 (Basic) ccqmCmtsEnfRuleMonDuration = 120 (minutes) ccqmCmtsEnfRuleAvgRate = 2 (kbits/sec) Consider the example of setting the following peak-offpeak monitoring: First peak time: Morning 6:00am to 9:00am. Average rate is 2kbits/sec. Second peak time: Evening 6:00pm to 10:00pm. Average rate is 3kbits/sec. Offpeak time: The remaining time i.e., 12:00 midnight to 6:00am and from 9:00am to 6:00pm and 10:00pm to 12:00 midnight would constitute the offpeak time. Let us assume the monitoring-duration is 2 hours and the average rate is 1kbits/sec. And so the relevant objects would look like: ccqmCmtsEnfRuleMonType = 2 (peakOffPeak) ccqmCmtsEnfRuleFirstPeakTime = 6 (0600 hours) ccqmCmtsEnfRuleFirstDuration = 180 min (3 hours) ccqmCmtsEnfRuleFirstAvgRate = 2 (kbits/sec) ccqmCmtsEnfRuleSecondPeakTime = 18 (1800 hours) ccqmCmtsEnfRuleSecondDuration = 240 min (4 hours) ccqmCmtsEnfRuleSecondAvgRate = 3 (kbits/sec) ccqmCmtsEnfRuleOffPeakDuration = 160 min (2 hours) ccqmCmtsEnfRuleOffPeakAvgRate = 1 (kbits/sec)." INDEX { ccqmCmtsEnfRuleName } ::= { ccqmCmtsEnforceRuleTable 1 } CcqmCmtsEnforceRuleEntry ::= SEQUENCE { ccqmCmtsEnfRuleName DisplayString, ccqmCmtsEnfRuleRegQoS Unsigned32, ccqmCmtsEnfRuleEnfQos Unsigned32, ccqmCmtsEnfRuleMonDuration Unsigned32, ccqmCmtsEnfRuleSampleRate Unsigned32, ccqmCmtsEnfRulePenaltyPeriod Unsigned32, ccqmCmtsEnfRuleByteCount Unsigned32, ccqmCmtsEnfRuleDirection CCQMRuleDirection, ccqmCmtsEnfRuleAutoEnforce TruthValue, ccqmCmtsEnfRuleRowStatus RowStatus, ccqmCmtsEnfRuleAvgRate Unsigned32, ccqmCmtsEnfRuleDocsVer INTEGER, ccqmCmtsEnfRuleRegSerClassName DisplayString, ccqmCmtsEnfRuleEnfSerClassName DisplayString, ccqmCmtsEnfRuleMonType INTEGER, ccqmCmtsEnfRuleFirstPeakTime Unsigned32, ccqmCmtsEnfRuleFirstDuration Unsigned32, ccqmCmtsEnfRuleFirstAvgRate Unsigned32, ccqmCmtsEnfRuleSecondPeakTime Unsigned32, ccqmCmtsEnfRuleSecondDuration Unsigned32, ccqmCmtsEnfRuleSecondAvgRate Unsigned32, ccqmCmtsEnfRuleOffPeakDuration Unsigned32, ccqmCmtsEnfRuleOffPeakAvgRate Unsigned32 } ccqmCmtsEnfRuleName OBJECT-TYPE SYNTAX DisplayString (SIZE(1..15)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The name of the enforce rule." ::= { ccqmCmtsEnforceRuleEntry 1 } ccqmCmtsEnfRuleRegQoS OBJECT-TYPE SYNTAX Unsigned32 (0..16383) MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents a pointer to the object describing the quality of service attributes associated with the registered service of the subscriber. For DOCSIS1.0 (DOCSIS1.0+) subscribers it is the index in the docsIfQosProfileTable. If no associated entry in docsIfQosProfileTable exists, this object returns a value of zero. Similarly this object can be set to 0 to indicate no entry in the docsIfQosProfileTable associated with this QoS profile. This object is applicable for DOCSIS1.0 (and DOCSIS1.0+) modems and it can be set only when ccqmCmtsEnfRuleDocsVer is set to docsis10(2). This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." REFERENCE "docsIfQosProfIndex from draft-ietf-ipcdn-docs-rfmibv2-05.txt" ::= { ccqmCmtsEnforceRuleEntry 2 } ccqmCmtsEnfRuleEnfQos OBJECT-TYPE SYNTAX Unsigned32 (0..16383) MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents a pointer to the object describing the quality of service attributes associated with the registered service of the subscriber. For DOCSIS1.0 (and DOCSIS1.0+) subscribers it is the index in the docsIfQosProfileTable. If no associated entry in docsIfQosProfileTable exists, this object returns a value of zero. Similarly this object can be set to 0 to indicate no entry in the docsIfQosProfileTable associated with this QoS profile. This object is applicable for DOCSIS1.0 (and DOCSIS1.0+) modems and it can be set only when ccqmCmtsEnfRuleDocsVer is set to docsis10(2). This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." REFERENCE "docsIfQosProfIndex from draft-ietf-ipcdn-docs-rfmibv2-05.txt" DEFVAL { 0 } ::= { ccqmCmtsEnforceRuleEntry 3 } ccqmCmtsEnfRuleMonDuration OBJECT-TYPE SYNTAX Unsigned32(10..44640) UNITS "minutes" MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the duration for which subscribers would be monitored to determine if they were over consuming resources. This object can be set only when ccqmCmtsEnfRuleMonType is set to basic(1). If peak-offpeak monitoring is enabled i.e., ccqmCmtsEnfRuleMonType and is set to peakOffPeak (2) this object when polled would return the duration value valid at that time of the day and 0 if no monitoring is taking place at that time. Both ccqmCmtsEnfRuleMonDuration and ccqmCmtsEnfRuleAvgRate need to be set before legacy/basic monitoring can be started. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." DEFVAL { 360 } ::= { ccqmCmtsEnforceRuleEntry 4 } ccqmCmtsEnfRuleSampleRate OBJECT-TYPE SYNTAX Unsigned32 UNITS "minutes" MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the interval at which a decision would be made to check if the subscriber over consumed his resources based on the subscriber usage in the past duration. Since the duration can range between 10 minutes to 30 days hence the range of sample rate would change accordingly too. Some empirical calculations for the same are: The maximum memory to be used per line card for STM is 10 MBytes. The maximum number of modems that can be supported is 6000 per line card. Now, per sample memory consumption is 8 bytes hence approximately, the maximum number of samples that can be allowed are 10 * 10 ^ 6 / (6 * 10 ^ 3 * 2 * 8) ~ 100 Hence, given the duration the sample rate would be calculated as duration / 100 = sample rate only if the duration happens to be more than 1440. For cases when the duration is less than 1440, the sample rate range would be between 10 to 30. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 5 } ccqmCmtsEnfRulePenaltyPeriod OBJECT-TYPE SYNTAX Unsigned32(1..10080) UNITS "minutes" MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the period in which the enforced QoS parameter set will be in effect from the time of detection. When the time as defined by this object expires, the registered QoS parameter set would be restored. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." DEFVAL { 10080 } ::= { ccqmCmtsEnforceRuleEntry 6 } ccqmCmtsEnfRuleByteCount OBJECT-TYPE SYNTAX Unsigned32 UNITS "1000 bytes" MAX-ACCESS read-create STATUS obsolete DESCRIPTION "The number of kbytes that the subscriber can transmit in the monitoring duration as indicated by ccqmCmtsEnfRuleMonDuration before being flagged as over consuming. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 7 } ccqmCmtsEnfRuleDirection OBJECT-TYPE SYNTAX CCQMRuleDirection MAX-ACCESS read-create STATUS current DESCRIPTION "Specifies if the average rate specified by ccqmCmtsEnfRuleAvgRate is for the upstream/downstream direction. Setting to bidirection(3) is not permitted. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 8 } ccqmCmtsEnfRuleAutoEnforce OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "If the ccqmCmtsEnfRuleAutoEnforce is TRUE, the enforced QoS parameter set as specified by ccqmCmtsEnfRuleEnfQos for DOCSIS1.0 (and DOCSIS1.0+) modems or ccqmCmtsEnfRuleEnfSerClassName for DOCSIS1.1 and DOCSIS2.0 modems will be automatically enforced when an over consuming subscriber is detected. Otherwise the change should be done manually. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." DEFVAL { false } ::= { ccqmCmtsEnforceRuleEntry 9 } ccqmCmtsEnfRuleRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The object controls and reflects the status of rows in this table. All row status values are supported. The status of the row needs to be changed from active(1) to notInService(2) in cases when any of the enforce rule objects need to be changed. If there is any monitoring associated with this enforce rule ongoing at this time, it as well as all the statistics collected over the sample rate and monitoring duration will be cleared when the row status is changed from active(1) to notInService(2). The monitoring will start again only when the row status is changed to active(1)." ::= { ccqmCmtsEnforceRuleEntry 10 } ccqmCmtsEnfRuleAvgRate OBJECT-TYPE SYNTAX Unsigned32 UNITS "kbits/sec" MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the rate at which the subscriber is allowed to consume for the monitoring duration. So, if this rate is defined to be 2kbits/sec and the monitoring duration is set to be 120 minutes, then every sample period the subscribers consumption in the last monitoring duration would be compared against 1.8Mbytes. This object can be set only when ccqmCmtsEnfRuleMonType is set to basic(1) else when polled it will return the rate valid at that time of the day and 0 if no monitoring is taking place at that time." ::= { ccqmCmtsEnforceRuleEntry 11 } ccqmCmtsEnfRuleDocsVer OBJECT-TYPE SYNTAX INTEGER { others(1), docsis10(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "This defines the DOCSIS version of the modems that the enforce rule would be applicable to. If it is set to docsis10(2) then only ccqmCmtsEnfRuleRegQoS and ccqmCmtsEnfRuleEnfQoS can be set and if previously ccqmCmtsEnfRuleRegSerClassName and ccqmCmtsEnfRuleEnfSerClassName were set, they will be reset to NULL and if it set to others(1) then only ccqmCmtsEnfRuleRegSerClassName and ccqmCmtsEnfRuleEnfSerClassName can be set and if previously ccqmCmtsEnfRuleRegQoS and ccqmCmtsEnfRuleEnfQoS were set they will be reset to 0." DEFVAL { docsis10 } ::= { ccqmCmtsEnforceRuleEntry 12 } ccqmCmtsEnfRuleRegSerClassName OBJECT-TYPE SYNTAX DisplayString (SIZE(1..16)) MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents a pointer to the object describing the quality of service attributes associated with the registered service of the subscriber. For DOCSIS1.1 and DOCSIS2.0 subscribers it is same as docsQosParamSetServiceClassName in docsQosParamSetTable. This object is applicable for DOCSIS1.1 and DOCSIS2.0 modems and it can be set only when ccqmCmtsEnfRuleDocsVer is set to others(1). This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 13 } ccqmCmtsEnfRuleEnfSerClassName OBJECT-TYPE SYNTAX DisplayString (SIZE(1..16)) MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents a pointer to the object describing the quality of service attributes associated with the registered service of the subscriber. For DOCSIS1.1 and DOCSIS2.0 subscribers it is same as docsQosParamSetServiceClassName in docsQosParamSetTable. This object is applicable only for DOCSIS1.1 modems and DOCSIS2.0 and it can be set only when ccqmCmtsEnfRuleDocsVer is set to others(1). This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 14 } ccqmCmtsEnfRuleMonType OBJECT-TYPE SYNTAX INTEGER { basic(1), peakOffPeak(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the monitoring type. If it is set to basic(1), then ccqmCmtsEnfRuleMonDuration and ccqmCmtsEnfRuleAvgRate are used to define the monitoring and if the peak-offpeak objects were set before, they will all be reset to 0 and if the user sets this object to peakOffPeak(2) the peak-offpeak objects are used to define the monitoring and ccqmCmtsEnfRuleMonDuration and ccqmCmtsEnfRuleAvgRate, if set before, will be reset to 0." DEFVAL { basic } ::= { ccqmCmtsEnforceRuleEntry 15 } ccqmCmtsEnfRuleFirstPeakTime OBJECT-TYPE SYNTAX Unsigned32(0..23) MAX-ACCESS read-create STATUS current DESCRIPTION "The user can define two peak times and the remaining hours will be treated as offpeak and the monitoring will happen for these offpeak hours if ccqmCmtsEnfRuleOffPeakDuration and ccqmCmtsEnfRuleOffPeakAvgRate are defined. The first peak parameters are defined using ccqmCmtsEnfRuleFirstPeakTime, ccqmCmtsEnfRuleFirstDuration and ccqmCmtsEnfRuleFirstAvgRate objects while the second peak parameters can be defined using ccqmCmtsEnfRuleSecondPeakTime, ccqmCmtsEnfRuleSecondDuration and ccqmCmtsEnfRuleSecondAvgRate. Each peak time has an associated average rate and a duration for which that average rate holds good. Defining the first peak is mandatory, though defining the second peak and offpeak is not mandatory. Both these peak times should be defined such that they don't overlap and the first peak time has to be an earlier time than the second peak time. User would need to use 24 hour clock for setting this. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 16 } ccqmCmtsEnfRuleFirstDuration OBJECT-TYPE SYNTAX Unsigned32(60..1440) UNITS "minutes" MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the duration for which the first peak time would be applicable. When ccqmCmtsEnfRuleMonDuration is polled during first peak, it will return this value. The ccqmCmtsEnfRuleFirstPeakTime has to be defined before defining this object else it will be taken to start from 0. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 17 } ccqmCmtsEnfRuleFirstAvgRate OBJECT-TYPE SYNTAX Unsigned32 UNITS "kbits/sec" MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the rate at which the subscriber is allowed to consume during the first peak duration. The ccqmCmtsEnfRuleFirstDuration has to be defined before defining this value. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 18 } ccqmCmtsEnfRuleSecondPeakTime OBJECT-TYPE SYNTAX Unsigned32(0..23) MAX-ACCESS read-create STATUS current DESCRIPTION "The user can define two peak times in a day. The second peak is defined using ccqmCmtsEnfRuleSecondPeakTime, ccqmCmtsEnfRuleSecondDuration and ccqmCmtsEnfRuleSecondThreshold objects while the first peak is defined using ccqmCmtsEnfRuleFirstPeakTime, ccqmCmtsEnfRuleFirstDuration and ccqmCmtsEnfRuleFirstDuration. For the remaining hours in the day, the off-peak monitoring would happen if both ccqmCmtsEnfRuleOffPeakDuration and ccqmCmtsEnfRuleOffPeakThreshold are defined. Defining the first peak is mandatory, though defining the second peak and offpeak is not mandatory. Both these peak times should be defined such that they don't overlap and the first peak time has to be an earlier time than the second peak time. ccqmCmtsEnfRuleSecondDuration can be set to 0 to indicate that the second peak monitoring no longer needs to be performed. The first peak has to be defined before defining the second peak time. User would need to use 24 hour clock for setting this. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 19 } ccqmCmtsEnfRuleSecondDuration OBJECT-TYPE SYNTAX Unsigned32(0..1380) UNITS "minutes" MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the duration for which the second peak time would be applicable. When ccqmCmtsEnfRuleMonDuration is polled during second peak, it will return this value. It can be set to 0 to indicate that the second peak monitoring no longer needs to be performed. The ccqmCmtsEnfRuleSecondPeakTime has to be defined before defining this object. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 20 } ccqmCmtsEnfRuleSecondAvgRate OBJECT-TYPE SYNTAX Unsigned32 UNITS "kbits/sec" MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the rate at which the subscriber is allowed to consume during the second peak duration. The ccqmCmtsEnfRuleSecondDuration has to be defined before defining this value. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 21 } ccqmCmtsEnfRuleOffPeakDuration OBJECT-TYPE SYNTAX Unsigned32(0..1380) UNITS "minutes" MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the monitoring-duration that would be applicable for the offpeak times of the day. The off peak times are the times during the day when none of the first peak and second peak times are defined. If this object is set, when ccqmCmtsEnfRuleMonDuration is polled during offpeak times, it would return this value. Since only defining the first peak is mandatory, and defining second peak and off peak are optional the monitoring combinations during the day could be: 1) Only first peak 2) First peak and second peak 3) First peak and off peak 4) All three i.e., first peak, second peak and off peak. It can be set to 0 to indicate that the offpeak monitoring no longer needs to be performed. The first peak parameters have to be defined before defining this object. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 22 } ccqmCmtsEnfRuleOffPeakAvgRate OBJECT-TYPE SYNTAX Unsigned32 UNITS "kbits/sec" MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the rate at which the subscriber is allowed to consume during the off-peak duration. The ccqmCmtsEnfRuleOffPeakDuration has to be defined before defining this value. This object cannot be changed when ccqmCmtsEnfRuleRowStatus is active(1)." ::= { ccqmCmtsEnforceRuleEntry 23 } -- -- ccqmEnfRuleViolateTable provides a snapshot of all the -- subscribers who violated their enforce rule over the -- monitoring period. -- -- A sliding window, the size of the monitoring duration -- is used. This window slides by an amount that is equal -- to the sample rate. At every sample rate the bytes -- transmitted in the time equal to a monitoring duration is -- checked. If this is found to be larger than the defined -- byte count limit per monitoring duration, the subscriber -- is flagged as over consuming or violating the enforce rule. -- -- This table will show all violating subscribers irrespective -- if they are associated with an enforced QoS parameter -- set or not. -- ccqmEnfRuleViolateTable OBJECT-TYPE SYNTAX SEQUENCE OF CcqmEnfRuleViolateEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains information of the subscribers who violated their enforce rule over the monitoring duration. In the sliding window concept used, the monitoring duration is the size of the window. This window slides by an amount that is equal to the sample rate. At every sample rate the bytes transmitted in the time equal to a monitoring duration is checked. If this is found to be larger than the defined byte count limit per monitoring duration, the subscriber is flagged as over consuming or to have violated his enforce rule. This table has entries for each of these violating subscribers. In case the violating subscriber has a enforced QoS parameter set, the QoS parameter set for such subscribers will be changed to the enforced QoS parameter set for the penalty time. When the penalty time expires, the subscriber gets his registered QoS parameter set restored and will no longer appear in this table but will be monitored. " ::= { ccqmRuleViolateObjects 2 } ccqmEnfRuleViolateEntry OBJECT-TYPE SYNTAX CcqmEnfRuleViolateEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A set of attributes of a subscriber who violated his enforce rule in the monitoring period. An entry in this table exists for each subscriber who over-consumed resources based on his configured QoS parameter set. However those subscribers who have an enforced QoS parameter set associated with their enforce rule, will be removed from this table once their penalty time expires. An entry in this table can exist for ifEntry with an ifType of docsCableMaclayer(127)." INDEX { ifIndex, ccqmEnfRuleViolateID } ::= { ccqmEnfRuleViolateTable 1 } CcqmEnfRuleViolateEntry ::= SEQUENCE { ccqmEnfRuleViolateID Unsigned32, ccqmEnfRuleViolateMacAddr MacAddress, ccqmEnfRuleViolateRuleName DisplayString, ccqmEnfRuleViolateByteCount Unsigned32, ccqmEnfRuleViolateLastDetectTime DateAndTime, ccqmEnfRuleViolatePenaltyExpTime DateAndTime } ccqmEnfRuleViolateID OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "An index assigned to the service flow by the CMTS. This represents an internal service flow ID." ::= { ccqmEnfRuleViolateEntry 1 } ccqmEnfRuleViolateMacAddr OBJECT-TYPE SYNTAX MacAddress MAX-ACCESS read-only STATUS current DESCRIPTION "MAC address of this subscriber. If the subscriber has multiple MAC addresses, this is the MAC address associated with the Cable interface." ::= { ccqmEnfRuleViolateEntry 2 } ccqmEnfRuleViolateRuleName OBJECT-TYPE SYNTAX DisplayString (SIZE(1..15)) MAX-ACCESS read-only STATUS current DESCRIPTION "A pointer to the enforce rule associated with this subscriber. It provides for referencing the enforce rule to determine the QoS monitoring parameters. This is same as ccqmCmtsEnfRuleName for the corresponding enforce rule in ccqmCmtsEnforceRuleTable." ::= { ccqmEnfRuleViolateEntry 3 } ccqmEnfRuleViolateByteCount OBJECT-TYPE SYNTAX Unsigned32 UNITS "kbytes" MAX-ACCESS read-only STATUS current DESCRIPTION "The total kbytes consumed by the subscriber in the monitoring duration as specified in the corresponding enforce rule object ccqmCmtsEnfRuleMonDuration. If the monitoring is restarted due to change in enforce rule or any other circumstance this count will be reset." ::= { ccqmEnfRuleViolateEntry 4 } ccqmEnfRuleViolateLastDetectTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "The time at which the subscriber was found to have violated his enforce rule and the time from which the enforced QoS parameter set, if any, was in effect. " ::= { ccqmEnfRuleViolateEntry 5 } ccqmEnfRuleViolatePenaltyExpTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "The time when the original QoS parameter set will be restored for this violating subscriber. If there was no enforced QoS parameter set configured for this subscriber this object returns 0." ::= { ccqmEnfRuleViolateEntry 6 } -- -- To provide additional level of control, user can set thresholds -- for downstream/upstream bandwidth utilization, and only when these -- thresholds are exceeded will the monitoring of modems (their -- appropriate service flows) will take place. So, for example, if the -- threshold for downstream bandwidth utilization is set at 90% and for -- upstream it is 80%, the primary downstream service flow for the -- modem attached to this downstream will take place when the load on -- the downstream exceeds 90% while for the upstream service flow it -- will be monitored if the load on the upstream bandwidth utilization -- to which the modem is associated with exceeds 80%. This threshold is -- the upper threshold, suppose the interface bandwidth utilization -- drops below this upper threshold, the monitoring would keep -- happening till it drops below another threshold which is the lower -- threshold. Thus, for the above case, for instance the monitoring -- for the downstream service flow would stop after the interface -- bandwidth utilization drops below 40% while the same for upstream -- could be 30%. This hysteresis is to take care of fluctuations in -- the load on the interface. -- ccqmCmtsIfBwUtilTable OBJECT-TYPE SYNTAX SEQUENCE OF CcqmCmtsIfBwUtilEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the attributes which define the bandwidth utilization thresholds for the upstream and downstream interfaces and when the load on these interfaces exceeds the upper threshold, the monitoring of the associated modems service flows starts, and it stops when the interface utilization drops below the lower threshold. For the monitoring to start, there should be appropriate enforce-rules defined. In case no thresholds are defined, by default the monitoring of modems would take place if the appropriate enforce-rules are present." ::= { ccqmRuleIfBwUtilObjects 1 } ccqmCmtsIfBwUtilEntry OBJECT-TYPE SYNTAX CcqmCmtsIfBwUtilEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A set of attributes to provide additional level of control for monitoring modems. It is indexed by the ifIndex of upstream/downstream interface, thus, only docsCableDownstreamInterface(128) and docsCableUpstreamInterface(129) are allowed to be configured." INDEX { ifIndex } ::= { ccqmCmtsIfBwUtilTable 1 } CcqmCmtsIfBwUtilEntry ::= SEQUENCE { ccqmCmtsIfBwUtilUpThreshold Unsigned32, ccqmCmtsIfBwUtilLoThreshold Unsigned32, ccqmCmtsIfBwUtilRowStatus RowStatus } ccqmCmtsIfBwUtilUpThreshold OBJECT-TYPE SYNTAX Unsigned32 (1..99) UNITS "percent" MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the upper threshold for the interface bandwidth utilization and when interface bandwidth utilization exceeds this threshold, monitoring of the appropriate modem's service flow will start if there is an asociated enforce-rule present. This object can't be set to a value lower than ccqmCmtsIfBwUtilLoThreshold." DEFVAL { 80 } ::= { ccqmCmtsIfBwUtilEntry 1 } ccqmCmtsIfBwUtilLoThreshold OBJECT-TYPE SYNTAX Unsigned32 (1..99) UNITS "percent" MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the lower threshold for the interface bandwidth utilization and when interface bandwidth utilization drops below this threshold, the monitoring of the appropriate modem's service flow will stop. This object can't be set to a value higher than ccqmCmtsIfBwUtilUpThreshold." DEFVAL { 40 } ::= { ccqmCmtsIfBwUtilEntry 2 } ccqmCmtsIfBwUtilRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The object controls and reflects the status of rows in this table. create-and-wait is not supported. The objects can be changed even when the row status is active(1)." ::= { ccqmCmtsIfBwUtilEntry 3 } -- -- Object to enable and disable sending traps to indicate Enforce Rule -- violations -- ccqmEnfRuleViolateNotifEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "An indication of whether the ccqmEnfRuleViolateNotification is enabled or disabled." DEFVAL { false } ::= { ccqmRuleViolateObjects 3 } -- -- The Cisco Cable QoS Monitoring MIB Notifications -- ccqmMIBNotificationsPrefix OBJECT IDENTIFIER ::= { ciscoCableQosMonitorMIB 2 } ccqmMIBNotifications OBJECT IDENTIFIER ::= { ccqmMIBNotificationsPrefix 0 } ccqmEnfRuleViolateNotification NOTIFICATION-TYPE OBJECTS { ccqmEnfRuleViolateMacAddr, ccqmEnfRuleViolateRuleName, ccqmEnfRuleViolatePenaltyExpTime, ccqmEnfRuleViolateByteCount } STATUS current DESCRIPTION "A notification that is sent when the subscriber if found to have violated his enforce rule. This indicates that this subscriber was found to be over consuming resources. If the enforce rule associated with this subscriber has a enforced QoS parameter set configured, the trap also indicates that the QoS parameter set of this subscriber are changed to the enforced QoS parameter set. " ::= { ccqmMIBNotifications 1 } ccqmMIBConformance OBJECT IDENTIFIER ::= { ciscoCableQosMonitorMIB 3 } ccqmMIBCompliances OBJECT IDENTIFIER ::= { ccqmMIBConformance 1 } ccqmMIBGroups OBJECT IDENTIFIER ::= { ccqmMIBConformance 2 } -- compliance statements ccqmCompliance MODULE-COMPLIANCE STATUS obsolete -- superseded by ccqmComplianceRev1 DESCRIPTION "The compliance statement for CMTS devices that implement the Qos Monitoring feature. " MODULE -- this module MANDATORY-GROUPS { ccqmEnfRuleGroup, ccqmEnfRuleViolateGroup, ccqmEnfRuleViolateNotifGroup } OBJECT ccqmCmtsEnfRuleSampleRate WRITE-SYNTAX Unsigned32 (10..30) DESCRIPTION "Currently only the range 10 to 30 minutes is supported." ::= { ccqmMIBCompliances 1 } ccqmComplianceRev1 MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for CMTS devices that implement the Qos Monitoring feature. " MODULE -- this module MANDATORY-GROUPS { ccqmEnfRuleGroupRev1, ccqmEnfRuleViolateGroup, ccqmCmtsRuleIfBwUtilGroup, ccqmEnfRuleViolateNotifGroup } ::= { ccqmMIBCompliances 2 } -- units of conformance ccqmEnfRuleGroup OBJECT-GROUP OBJECTS { ccqmCmtsEnfRuleRegQoS, ccqmCmtsEnfRuleEnfQos, ccqmCmtsEnfRuleMonDuration, ccqmCmtsEnfRuleSampleRate, ccqmCmtsEnfRulePenaltyPeriod, ccqmCmtsEnfRuleByteCount, ccqmCmtsEnfRuleDirection, ccqmCmtsEnfRuleAutoEnforce, ccqmCmtsEnfRuleRowStatus } STATUS obsolete -- superseded by ccqmEnfRuleGroupRev1 DESCRIPTION "Group of objects implemented in CMTS providing enforce rule and QoS monitoring information. " ::= { ccqmMIBGroups 1 } ccqmEnfRuleViolateGroup OBJECT-GROUP OBJECTS { ccqmEnfRuleViolateRuleName, ccqmEnfRuleViolateMacAddr, ccqmEnfRuleViolateByteCount, ccqmEnfRuleViolateLastDetectTime, ccqmEnfRuleViolatePenaltyExpTime, ccqmEnfRuleViolateNotifEnable } STATUS current DESCRIPTION "Group of objects implemented in CMTS providing information of enforce rule violations. " ::= { ccqmMIBGroups 2 } ccqmEnfRuleViolateNotifGroup NOTIFICATION-GROUP NOTIFICATIONS { ccqmEnfRuleViolateNotification } STATUS current DESCRIPTION "The notification which a CISCO-CABLE-QOS-MONITOR-MIB is required to implement." ::= { ccqmMIBGroups 3 } ccqmEnfRuleGroupRev1 OBJECT-GROUP OBJECTS { ccqmCmtsEnfRuleRegQoS, ccqmCmtsEnfRuleEnfQos, ccqmCmtsEnfRuleMonDuration, ccqmCmtsEnfRuleSampleRate, ccqmCmtsEnfRulePenaltyPeriod, ccqmCmtsEnfRuleDirection, ccqmCmtsEnfRuleAutoEnforce, ccqmCmtsEnfRuleRowStatus, ccqmCmtsEnfRuleAvgRate, ccqmCmtsEnfRuleDocsVer, ccqmCmtsEnfRuleRegSerClassName, ccqmCmtsEnfRuleEnfSerClassName, ccqmCmtsEnfRuleMonType, ccqmCmtsEnfRuleFirstPeakTime, ccqmCmtsEnfRuleFirstDuration, ccqmCmtsEnfRuleFirstAvgRate, ccqmCmtsEnfRuleSecondPeakTime, ccqmCmtsEnfRuleSecondDuration, ccqmCmtsEnfRuleSecondAvgRate, ccqmCmtsEnfRuleOffPeakDuration, ccqmCmtsEnfRuleOffPeakAvgRate } STATUS current DESCRIPTION "Group of objects implemented in CMTS providing enforce rule and QoS monitoring information. " ::= { ccqmMIBGroups 4 } ccqmCmtsRuleIfBwUtilGroup OBJECT-GROUP OBJECTS { ccqmCmtsIfBwUtilUpThreshold, ccqmCmtsIfBwUtilLoThreshold, ccqmCmtsIfBwUtilRowStatus } STATUS current DESCRIPTION "Group of objects implemented in CMTS providing information of interface utilization thresholds. " ::= { ccqmMIBGroups 5 } END