CISCO-CLASS-BASED-QOS-MIB
Cisco Class-Based QoS MIB ********************************** Overview ********************************** This MIB provides read access to Quality of Service (QoS) configuration and statistics information for Cisco platforms that support the Modular Quality of Service Command-line Interface (Modular QoS CLI). We recommend users of this MIB to review the user documentation of MQC based QoS features. Configuration information available through this MIB includes all ClassMap, PolicyMap, Match Statements, and Feature Actions configuration parameters. The definitions of each objects mentioned above are explained in the QoS objects section. Statistics available through this MIB include summary counts/rates by traffic class before and after any configured QoS policies are enforced. In addition, detailed feature-specific statistics are available for select PolicyMap features. Contact your Cisco representative to determine on which platforms the MIB is currently supported. ********************************** QoS Acronyms ********************************** BECN: Frame Relay Backward Explicit Congestion Notification CIR : Committed Information Rate DSCP: Differentiated Service Code Point EB : Estimate Bandwidth ECN : Explicite Congestion Notification FECN: Frame Relay Forward Explicit Congestion Notification IPHC: Internet Protocol Header Compression PIR : Peak Information Rate PREC: Precedence QoS : Quality Of Services RED : Random Early Detect SRP : Spatial Reuse Protocol WRED: Weighted Random Early Detect ********************************** MIB Objects ********************************** This MIB consists of the following object groups: 1 : cbQosServicePolicy 2 : cbQosInterfacePolicy 3 : cbQosFrameRelayVCPolicy 4 : cbQosATMPVCPolicy 5 : cbQosObjects 6 : cbQosPolicyMapCfg 7 : cbQosClassMapCfg 8 : cbQosMatchStmtCfg 9 : cbQosQueueingCfg 10: cbQosREDCfg 11: cbQosREDClassCfg 12: cbQosPoliceCfg 13: cbQosTSCfg 14: cbQosSetCfg 15: cbQosClassMapStats 16: cbQosMatchStmtStats 17: cbQosPoliceStats 18: cbQosQueueingStats 19: cbQosTSStats 20: cbQosREDClassStats 21: cbQosPoliceActionCfg 22: cbQosIPHCCfg 23: cbQosIPHCStats 24: cbQosSetStats 25: cbQosPoliceColorStats 26: cbQosTableMapCfg 27: cbQosTableMapValueCfg 28: cbQosTableMapSetCfg 29: cbQosEBCfg 30: cbQosEBStats 31: cbQosVlanPortPolicy ********************************** Definitions ********************************** A logical interface in the context of this MIB is either a main-interface, a sub-interface, a Frame Relay DLCI, an ATM virtual circuit or the control-plane on the router. The (aggregate) control-plane on the router is defined as a collection of processes running at process level on the platform (route) processor. This includes the functions related to networking control capabilities such as routing, signaling, provisioning, as well as resource and service discovery. Also includes process switched traffic on the device. The term distributed control plane, in the context of this mib, represents the control-plane functionality at the level of individual linecards. This is only applicable for the case of distributed platforms. ********************************** QoS Objects ********************************** To understand Class-Based QoS features and how to navigate the MIB tables above, the key element is to comprehend the relationships among the different QoS objects. QoS objects consist of ClassMaps, Match Statements and PolicyMaps, and each Feature Actions. Match Statement - The specific match criteria to identify packets for classification purposes. ClassMap - A user-defined traffic class that contains one or many match statements used to classify packets into different categories. Feature Action - An action is a QoS feature. Features include police, traffic-shaping, queueing, random detect and packet marking(set). After the traffic is being classified, based on the traffic classification, we can apply these action to each traffic class. PolicyMap - A user-defined policy that associates each QoS action to the user-defined traffic class (ClassMap). Service Policy - Service policy is a policymap that is being attached to a logical interface. Because a policymap can also be a part of the hierarchical structure (inside a classmap), only a policymap that is directly attached to a logical interface is considered a service policy. Each service policy is uniquely identified by an index called cbQosPolicyIndex. This number is usually identical to its cbQosObjectsIndex as a policymap. ***************************************** Runtime Instance vs Configuration objects ***************************************** Each QoS objects have 2 sets of behaviours : 1: A configuration instance - Each QoS objects has it's configuration portion of information attached to it. This information does not change whether this object is attached on multiple logical interfaces and used multiple times. We uniquely identify each QoS object with identical configuration with the same index - cbQosConfigIndex. This index is used in all configuration related tables. 2: A runtime instance - Each QoS objects has it's statistical portion of information attached to it. This information changes when this object is attached on multiple logical interfaces and used in various different places. We uniquely identify each QoS runtime object instance with an index that is unique across multiple instances of the identical object - cbQosObjectsIndex. This index is used in all statistical related tables. In summary, a QoS object has 2 indexes associated with it: cbQosConfigIndex is used to identify it's configuration, which does not change regardless of number of times and where it is being used; and cbQosObjectsIndex is used to identify it's runtime statistics, depending on which logical interface and where in a given PolicyMap hierarchy this object is used, it may have multiple unique identifiers to distinguish each unique usage (instance) of the same object. ********************************** Navigation ********************************** The recommended method of navigating through all of the MIB tables is to start by learning the cbQosServicePolicyTable and cbQosObjectsTable MIB tables. In particular, Cisco Systems recommends understanding the cbQosObjectsIndex and cbQosParentObjectsIndex of each QoS feature. The cbQosPolicyIndex and cbQosObjectsIndex are system-assigned numbers that identify each unique instance of a QoS feature. These indexes are never reused between router reboots, even when changes are made to the QoS configuration. The cbQosPolicyIndex is designed to identify the service policies attached to logical interfaces, while the cbQosObjectsIndex is designed to identify each QoS feature on a specified device. The cbQosParentObjectsIndex is designed to show the hierarchical relationship of each QoS feature. ********************************** cbQosServicePolicyTable ********************************** Accessing cbQosServicePolicyTable requires cbQosPolicyIndex. This index is a system-assigned number to uniquely identify each service policy hanging off of each logical interface. Given cbQosPolicyIndex the tables provide the type of logical interface/media type on which this policy is applied, the direction in which this policy is enforced, and the SNMP interface index and/or the entity index of the underlying interface/entity. In the case of a policy being applied on a Frame Relay DLCI, the cbQosFrDLCI gives you the Frame Relay DLCI number to which this policy is attached. In the case of policy being attached to an ATM VC, cbQosAtmVPI and cbQosAtmVCI display the VPI and VCI of the ATM interface respectively. ********************************** cbQosObjectsTable ********************************** Accessing cbQosObjectsTable requires two indexes, cbQosPolicyIndex and cbQosObjectsIndex. Given a particular service policy on a given logical interface, there could be PolicyMaps, ClassMaps, Match Statements and Feature Actions being used. Each instance of these objects is uniquely identified by cbQosObjectsIndex. Users need to decide which QoS object is interesting and use the cbQosPolicyIndex and cbQosObjectsIndex to locate the right element of interest. This tables provides cbQosObjectsType, cbQosConfigIndex, and cbQosParentObjectsIndex. To understand the relationship of cbQosObjectsIndex, cbQosParentObjectsIndex and the hierarchical relationship of the QoS objects, consider the following QoS configuration example: Interface ethernet 0/1 Input Service Policy cntlWebTraffic ClassMap http match ip http set ip precedence 5 Output Service Policy cntlSNMP_Telnet ClassMap snmp match ip snmp shape average 8000 32 32 ClassMap Telnet match ip telnet shape average 10000 32 32 Interface ethernet 0/2 Input Service Policy cntlWebTraffic ClassMap http match ip http set ip precedence 5 Output Service Policy cntlSNMP_Telnet ClassMap snmp match ip snmp shape average 8000 32 32 ClassMap Telnet match ip telnet shape average 10000 32 32 *** In Ethernet 0/1 *** Assume the router assigned a cbQosConfigIndex=1024 and cbQosObjectsIndex=1084 to Policy cntlWebTraffic. Because it is attached to an interface, it has no parent QoS object, and thus cbQosParentObjectsIndex=0. In addition, because cntlWebTraffic is also the service policy of the interface, it has a unique cbQosPolicyIndex assigned to it. In most cases, it would be the same as the cbQosObjectsIndex, which is 1084 in this case. Therefore, the indexes are: cbQosPolicyIndex = 1084 cbQosObjectsIndex = 1084 cbQosConfigIndex = 1024 Assuming the router assigned a cbQosObjectsIndex=1085 and cbQosConfigIndex=1025 to ClassMap http, it is directly being used by Policy cntlWebTraffic, and therefore the cbQosParentObjectsIndex of ClassMap http will be 1084. Assuming the router assigned a cbQosConfigIndex=1026 and cbQosObjectsIndex=1086 to match ip http, it is directly used by ClassMap http, therefore the cbQosParentObjectsIndex of match ip http will be 1085. Assuming the router assigned a cbQosConfigIndex=1027 and cbQosObjectsIndex=1087 to set ip precedence 5, it is directly used by ClassMap http, therefore the cbQosParentObjectsIndex of match ip http will be 1085. Assuming the router assigned a cbQosConfigIndex=1028 and cbQosObjectsIndex=1088 to Policy cntlSNMP_Telnet. Because it is attached to an interface, it has no parent QoS object, and thus cbQosParentObjectsIndex=0. In addition, because cntlSNMP_Telnet is also the service policy of the interface, it has a unique cbQosPolicyIndex assigned to it. In most cases, it would be the same as the cbQosObjectsIndex, which is 1088 in this case. Assuming the router assigned a cbQosConfigIndex=1029 and cbQosObjectsIndex=1089 to ClassMap snmp, it is directly being used by Policy cntlSNMP_Telnet, and therefore the cbQosParentObjectsIndex of ClassMap snmp will be 1088. Assuming the router assigned a cbQosConfigIndex=1030 and cbQosObjectsIndex=1090 to match ip snmp, it is directly used by ClassMap snmp, and therefore the cbQosParentObjectsIndex of match ip snmp will be 1089. Assuming the router assigned a cbQosConfigIndex=1031 and cbQosObjectsIndex=1091 to shape average 8000 32 32, it is directly used by ClassMap snmp, therefore the cbQosParentObjectsIndex of match ip snmp will be 1089. Assuming the router assigned a cbQosConfigIndex=1032 and cbQosObjectsIndex=1092 to ClassMap Telnet, it is directly being used by Policy cntlSNMP_Telnet, and therefore the cbQosParentObjectsIndex of ClassMap Telnet will be 1088. Assuming the router assigned a cbQosConfigIndex=1033 and cbQosObjectsIndex=1093 to match ip telnet, it is directly used by ClassMap Telnet, and therefore the cbQosParentObjectsIndex of match ip telnet will be 1092. Assuming the router assigned a cbQosConfigIndex=1034 and cbQosObjectsIndex=1094 to shape 10000 32 32, it is directly used by ClassMap telnet, therefore the cbQosParentObjectsIndex of match ip telnet will be 1092. *** In Ethernet 0/2 *** Every objects will have a new and unique cbQosPolicyIndex and cbQosObjectsIndex, but cbQosConfigIndex will be shared across the same objects that are applied in different places. ********************************** All Config Tables ********************************** Accessing config related tables requires the same index - cbQosConfigIndex. (Per precedence based tables requires a second index, which is IP precedence value) Users should have already gone through the cbQosObjectsTable at this point and understood each cbQosConfigIndex and the corresponding QoS objects. Users can uniquely identify each QoS object defined on the router and query the entries in each stats table on a per QoS object basis. ********************************** All Stats Tables ********************************** Accessing all stats related tables requires the same 2 indexes. They are cbQosPolicyIndex and cbQosObjectsIndex. (Per precedence based tables requires a third index, which is IP precedence value) Users should have already gone through the cbQosObjectsTable at this point and understood the relationship of each cbQosPolicyIndex and cbQosObjectsIndex pair and the corresponding QoS objects. Users can uniquely identify each QoS object defined on the router and query the entries in each stats table on a per QoS object basis.