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 "200304030000Z"
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 behaviour can be monitored:
1. When the subscriber requests for more resources than
as defined by its QoS parameters. 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.
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.
3. When the subscriber sometimes or never utilizes the
resources as defined by the upper limit of the QoS
parameters.
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
parameters, 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
parameters, 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 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 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 "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 }
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 defined
byte count limit 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 byte count is 100,000
bytes then every 30 minutes we check if the bytes
transmitted in the last 360 minutes exceeded 100,000 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.
It defines the registered QoS and an enforced QoS to
be applied if found to be violating the registered QoS.
The enforce rule also defines a penalty period for which
the enforced Qos will be applied.
The registered QoS will be restored when the penalty
period expires."
::= { 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."
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
}
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 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 cannot be changed when the rule is
active or 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 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 cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."
REFERENCE
"docsIfQosProfIndex from
draft-ietf-ipcdn-docs-rfmibv2-05.txt"
DEFVAL { 0 }
::= { ccqmCmtsEnforceRuleEntry 3 }
ccqmCmtsEnfRuleMonDuration OBJECT-TYPE
SYNTAX Unsigned32(10..10080)
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 cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."
DEFVAL { 360 }
::= { ccqmCmtsEnforceRuleEntry 4 }
ccqmCmtsEnfRuleSampleRate OBJECT-TYPE
SYNTAX Unsigned32(10..120)
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 as defined by ccqmCmtsEnfRuleMonDuration.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."
DEFVAL { 15 }
::= { 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 will be in effect from the time of detection.
When the time as defined by this object expires, the
registered QoS would be restored.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."
DEFVAL { 10080 }
::= { ccqmCmtsEnforceRuleEntry 6 }
ccqmCmtsEnfRuleByteCount OBJECT-TYPE
SYNTAX Unsigned32
UNITS "1000 bytes"
MAX-ACCESS read-create
STATUS current
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 the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."
::= { ccqmCmtsEnforceRuleEntry 7 }
ccqmCmtsEnfRuleDirection OBJECT-TYPE
SYNTAX CCQMRuleDirection
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Specifies if the byte-count as specified by
ccqmCmtsEnfRuleByteCount is for the
upstream/downstream direction or bidirectional.
This object cannot be changed when the rule is
active or 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
profile as specified by ccqmCmtsEnfRuleEnfQos will be
automatically enforced when an over consuming subscriber is
detected. Otherwise the change should be done manually.
This object cannot be changed when the rule is
active or 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
will be aborted.
All statistics collected over the sample rate and monitoring
duration will be cleared. The monitoring will start again
only when the row status is changed to active(1). "
::= { ccqmCmtsEnforceRuleEntry 10 }
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, the QoS parameters for such subscribers
will be changed to the enforced QoS for the penalty
time. When the penalty time expires, the subscriber
gets his registered QoS 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 parameters. However those subscribers who
have an enforced QoS 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.
In case of DOCSIS1.0 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. "
::= { ccqmEnfRuleViolateEntry 3 }
ccqmEnfRuleViolateByteCount OBJECT-TYPE
SYNTAX Unsigned32
UNITS "1000 bytes"
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,
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 parameters will be restored
for this violating subscriber. If there was no enforced QoS
configured for this subscriber this object returns 0."
::= { ccqmEnfRuleViolateEntry 6 }
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 }
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
configured, the trap also indicates that the
QoS parameters of this subscriber are changed to
the enforced QoS. "
::= { ccqmMIBNotifications 1 }
ccqmMIBConformance OBJECT IDENTIFIER
::= { ciscoCableQosMonitorMIB 3 }
ccqmMIBCompliances OBJECT IDENTIFIER
::= { ccqmMIBConformance 1 }
ccqmMIBGroups OBJECT IDENTIFIER
::= { ccqmMIBConformance 2 }
ccqmCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for CMTS devices that implement
the Qos Monitoring feature. "
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 }
ccqmEnfRuleGroup OBJECT-GROUP
OBJECTS {
ccqmCmtsEnfRuleRegQoS,
ccqmCmtsEnfRuleEnfQos,
ccqmCmtsEnfRuleMonDuration,
ccqmCmtsEnfRuleSampleRate,
ccqmCmtsEnfRulePenaltyPeriod,
ccqmCmtsEnfRuleByteCount,
ccqmCmtsEnfRuleDirection,
ccqmCmtsEnfRuleAutoEnforce,
ccqmCmtsEnfRuleRowStatus
}
STATUS current
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 }
END