ATM cells consist of 48 bytes of payload and 5 bytes of header. Both the User-Network Interface (UNI) and Network-to-Network Interface (NNI) headers include the 1-bit cell loss priority (CLP) field, which indicates the drop priority of the cell if it encounters extreme congestion as it moves through the ATM network.
A 1-bit field means there are two values—0 to indicate higher priority and 1 to indicate lower priority. In other words, setting the CLP bit to 1 lowers the priority of the cells and increases the likelihood that the cell is dropped when the ATM network experiences congested physical lines and queues.
Traditionally, only ATM switches set the CLP bit. A Cisco ATM router interface or other user side of a UNI interface never set this bit. Recently, as part of the Cisco robust Quality of Service (QoS) feature set, Cisco ATM router interfaces now can be configured to set the CLP bit as part of a service policy applied to a particular virtual circuit (VC).
This document illustrates the two commands, set atm-clp and set-clp-transmit, which can be used to set the CLP bit on Cisco routers. It also clarifies how a router and a switch use the CLP bit.
There are no specific requirements for this document.
This document is not restricted to specific software and hardware versions.
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
The cell flow of a virtual connection can be split logically into three flows that consider the CLP bit setting:
The CLP=0+1 cell flow is called the aggregate flow and includes CLP=0 cells and CLP=1 cells.
On Cisco campus ATM switches such as the Catalyst 8500 series, you can obtain cell counts from either a Cisco IOS® Software command or through Simple Network Management Protocol (SNMP) polling. Use the show atm vc interface atm command to see per-VC cell counts at the command line, as shown below.
ls1010# show atm vc interface atm 0/0/0 0 50 Interface: atm0/0/0, Type: oc3suni VPI = 0 VCI = 50 Status: UP Time-since-last-status-change: 00:03:08 Connection-type: PVC Cast-type: point-to-point Packet-discard-option: disabled Usage-Parameter-Control (UPC): pass Wrr weight: 2 Number of OAM-configured connections: 0 OAM-configuration: disabled OAM-states: Not-applicable Cross-connect-interface: atm0/0/1, Type: oc3suni Cross-connect-VPI = 0 Cross-connect-VCI = 55 Cross-connect-UPC: pass Cross-connect OAM-configuration: disabled Cross-connect OAM-state: Not-applicable Threshold Group: 5, Cells queued: 0 Rx cells: 0, Tx cells: 80 TX Clp0:80, TX Clp1: 0 Rx Clp0:0, Rx Clp1: 0 !--- Per-VC cell counts based on CLP bit. Rx Upc Violations:0, Rx cell drops:0 Rx Clp0 q full drops:0, Rx Clp1 qthresh drops:0
The CISCO-ATM-CONN-MIB maintains per-VC statistics in the ciscoAtmVclTable. This table considers the value of the CLP bit when incrementing the counter for these object IDs:
ciscoAtmVclInCells
ciscoAtmVclInClp0Cells
ciscoAtmVclInClp1Cells
The Catalyst 8500 series and the Lightstream 1010 use connection traffic table rows (CTTRs) to store the traffic parameters assigned to a permanent virtual circuit (PVC). When configuring a variable bit rate-nonreal time (VBR-NRT) PVC CTTR, you can specify whether the sustainable cell rate (SCR) applies to the scr0 or scr10 cell flow.
Switch(config)# atm connection-traffic-table-row [index row-index] {vbr-rt | vbr-nrt} pcr pcr-value {scr0 | scr10} scr-value [mbs mbs-value] [cdvt cdvt_value]
Cisco ATM routers do not support an equivalent command that indicates whether to shape on the SCR=0 flow or SCR=1+0 flow. The vbr-nrt command simply allows you to specify a peak cell rate (PCR) and an SCR.
Router(config)# interface atm 5/0 Router(config-if)# pvc 1/1 Router(config-if-atm-vc)# vbr-nrt ? <1-155000> Peak Cell Rate(PCR) in Kbps Router(config-if-atm-vc)# vbr-nrt 1000 ? <5-1000> Sustainable Cell Rate(SCR) in Kbps Router(config-if-atm-vc)# vbr-nrt 1000 500 ? <1-65535> Maximum Burst Size(MBS) in Cells
The Cisco modular QoS CLI (MQC) is a special set of commands for configuring QoS policies on an interface or VC. (Refer to Modular Quality of Service Command-Line Interface Overview.) You specify a traffic class with the class-map command, create a traffic policy by associating the traffic class with one or more QoS features using the policy-map command, then attach the traffic policy to an interface or a VC with the service-policy command.
The MQC supports two commands for setting the CLP bit:
set atm-clp—Implements simple packet marking. This command sets the CLP bit to one on all packets matching the specified class. It does not consider the level of congestion on the PVC.
set-clp-transmit—Implements traffic policing. This command does consider the level of congestion on the PVC and sets the CLP bit to 1 on matching traffic with a rate that exceeds the configured bits per second (bps) values. In other words, this command implements a "violate" action.
These commands are the focus of the next two sections.
Class-Based Packet Marking is a Cisco IOS feature that sets values in Layer 2 and Layer 3 packet headers to differentiate packets into higher and lower priorities. (Refer to Configuring Class-Based Packet Marking.) This feature supports the set atm-CLP command to mark the CLP bit on all cells of a packet matching the specified class.
Router(config)# policy-map TEST Router(config-pmap)# class CLP Router(config-pmap-c)# set atm-clp
Use the show policy-map interface atm command to display the number of marked packets.
It is important to understand that Class-Based Packet Marking does not consider the congestion level of the ATM PVC when setting the CLP bit. The set atm-CLP command configures the router to set the CLP bit on all matching packets during periods of congestion and noncongestion on the VC.
As of Cisco IOS Software Release 12.1T, the set atm-CLP command is supported only on a PA-A3 and only on PVCs, not SVCs. In addition, only packets traveling on Cisco Express Forwarding (CEF) switching paths can be marked. Packets originating from the router use a different Cisco IOS switching method and cannot be marked.
As of Cisco IOS Software Release 12.0(23)S, the ATM CLP setting feature allows users to control the ATM CLP bit setting on the 8-Port OC-3 STM-1 ATM line card for Cisco 12000 series Internet routers.
As of Cisco IOS Release 12.2(8)YN, ATM CLP Bit Marking is available in the Cisco 3600 and 2600 routers.
Note: Cisco bug ID CSCdr19172 resolves a problem with router reloads when the set atm-CLP command is used in a class configured to match on Multiprotocol Label Switching (MPLS) experimental bits.
Traffic policing mechanisms determine whether traffic conforms to configured contract values and then act on violating traffic by dropping it or by rewriting a header value. With ATM PVCs, you can configure a router to set the CLP bit as a policing action using the set-CLP-transmit command. (Refer to Traffic Policing.) Create a policy map and then configure the police command with set-clp-transmit as an action.
7500(config)# policy-map police 7500(config-pmap)# class group2 7500(config-pmap-c)# police BPS burst-normal burst-max conform-action action exceed-action action violate-action action
The set-clp-transmit command is supported as of Cisco IOS Software Release 12.1(5)T on Route Switch Processor (RSP) platforms and Cisco IOS Software Release 12.2(1)T on other platforms.
Note: In a particular configuration, packets that are process-switched to an ATM PVC undergo policing. The policer configuration has one or more actions with the set-clp-transmit parameter; however, the ATM cells generated by the packets do not have the CLP bit set. This problem happens only with the class-based policer and process-switched packets, and is resolved with Cisco bug ID CSCdw18196.
ATM switches use the CLP bit in two ways:
as a violate action with traffic policing.
as a determining factor in which cells to drop when congestion occurs and queues fill above a threshold.
The following two sections explore these uses in more detail.
Cisco campus ATM switches apply usage parameter control (UPC) policing algorithms to determine whether the cell rate coming from an end device like a Cisco router complies with the traffic contract. When UPC determines that a cell is nonconforming, the switch performs one of these actions, depending on the configuration:
Pass—Transmits the cell and does not change the CLP value.
Tag—Sets the CLP bit to indicate the relatively lower priority of the cell.
Drop—Drops the cell.
Pass is the default UPC behavior. Configure a nondefault value on a PVC by setting the upc parameter as part of the atm pvc command:
atm pvc vpi vci [cast-type type] [upc upc] [pd pd] [rx-cttr index] [tx-cttr index] [wrr-weight weight]
The show atm vc interface atm command displays the UPC setting and the number of Rx Upc Violations.
ls1010# show atm vc interface atm 0/0/0 0 50 Interface: atm0/0/0, Type: oc3suni VPI = 0 VCI = 50 Status: UP Time-since-last-status-change: 00:03:08 Connection-type: PVC Cast-type: point-to-point Packet-discard-option: disabled Usage-Parameter-Control (UPC): pass !--- Confirm the correct UPC setting. Wrr weight: 2 Number of OAM-configured connections: 0 OAM-configuration: disabled OAM-states: Not-applicable Cross-connect-interface: atm0/0/1, Type: oc3suni Cross-connect-VPI = 0 Cross-connect-VCI = 55 Cross-connect-UPC: pass Cross-connect OAM-configuration: disabled Cross-connect OAM-state: Not-applicable Threshold Group: 5, Cells queued: 0 Rx cells: 0, TX cells: 80 TX Clp0:80, TX Clp1: 0 Rx Clp0:0, Rx Clp1: 0 Rx Upc Violations:0, Rx cell drops:0 !--- View the number of "Upc Violations". Rx Clp0 q full drops:0, Rx Clp1 qthresh drops:0 !--- Output suppressed.
You also can poll the ciscoAtmVclUpcViolations managed object of the CISCO-ATM-CONN-MIB to collect the total number of nonconforming cells detected by UPC on a particular VC.
ATM switches consider the CLP=1 setting made traditionally by ATM switches only, and now by ATM-attached routers, when implementing traffic and resource management processes. Selective cell discard is the process by which the network discards CLP=1 cells when output queues reach a configurable threshold.
Cisco campus ATM switches implement selective cell discard with slight variations depending on the feature card and model of switch.
The LightStream 1010 and Catalyst 8510 with a feature card per class queuing (FC-PCQ or FC1) support configurable interface queue thresholds for each ATM service category, such as VBR-NRT or UBR. The show atm interface resource atm command displays the default value of 87 percent for all service classes.
Switch> show atm interface resource atm 3/0/0 Resource Management configuration: Output queues: Max sizes(explicit cfg): 30000 cbr, none vbr-rt, none vbr-nrt, none abr-ubr Max sizes(installed): 30208 cbr, 256 vbr-rt, 4096 vbr-nrt, 12032 abr-ubr Efci threshold: 50% cbr, 25% vbr-rt, 25% vbr-nrt, 25% abr, 25% ubr Discard threshold: 87% cbr, 87% vbr-rt, 87% vbr-nrt, 87% abr, 87% ubr !--- Percent of queue full at which discard threshold starts. Abr-relative-rate threshold: 25% abr
Use the atm output-threshold command to configure a nondefault value. (Refer to Configuring Resource Management.)
Switch(config-if)# atm output-threshold {cbr | vbr-rt | vbr-nrt | abr | ubr} discard-threshold disc-thresh-num
When all cells belonging to VCs of a particular service category occupy a default 87 percent of shared memory, subsequent CLP=1 cells are dropped.
LightStream 1010s and Catalyst 8510s with a feature card per flow queuing (FC-PFQ), as well as Catalyst 8540s, support maximum and minimum queue limit sizes per VC. They use the threshold groups feature to implement these queues.
A threshold group consists of all VCs and virtual paths (VPs) of a single ATM service category. The threshold group sets limits on the cumulative number of cells on the queues of virtual connections in the threshold group. As a threshold group congests (the cumulative number approaches the configured max-cells value), the maximum number of cells in the per-VC queues shrinks from the max-queue-limit for the group to the min-queue-limit.
This example shows how to configure a nondefault value of 95 percent for the CBR service category, which by default maps to threshold group 1:
ls1010(config)# atm threshold-group 1 ? discard-threshold discard threshold as percent of queue full marking-threshold marking threshold as percent of queue full max-cells max number of cells in Threshold Group max-queue-limit max (uncongested) queue limit for this TG min-queue-limit min (congested) queue limit for this TG name name of TG ls1010(config)# atm threshold-group 1 discard-threshold ? <0-100> discard threshold percent ls1010(config)# atm threshold-group 1 discard-threshold 95
Use the show atm resource command to view your configuration change.
ls1010# show atm resource Resource configuration: Over-subscription-factor 8 Sustained-cell-rate-margin-factor 1% Abr-mode: relative-rate Service Category to Threshold Group mapping: cbr 1 vbr-rt 2 vbr-nrt 3 abr 4 ubr 5 Threshold Groups: Group Max Max Q Min Q Q thresholds Cell Name cells limit limit Mark Discard count instal instal instal --------------------------------------------------- 1 65535 63 63 25 % 95 % 0 cbr-default-tg 2 65535 127 127 25 % 87 % 0 vbrrt-default-tg 3 65535 511 31 25 % 87 % 0 vbrnrt-default-tg 4 65535 511 31 25 % 87 % 0 abr-default-tg 5 65535 511 31 25 % 87 % 0 ubr-default-tg 6 65535 1023 1023 25 % 87 % 0 well-known-vc-tg
On Cisco campus ATM switches, you can view the number of CLP=1 queue threshold drops from either a Cisco IOS Software command or through SNMP polling. Use the show atm vc interface atm command to see per-VC values at the command line.
ls1010# show atm vc interface atm 0/0/0 0 50 Interface: atm0/0/0, Type: oc3suni VPI = 0 VCI = 50 Status: UP Time-since-last-status-change: 00:03:08 Connection-type: PVC Cast-type: point-to-point Packet-discard-option: disabled Usage-Parameter-Control (UPC): pass Wrr weight: 2 Number of OAM-configured connections: 0 OAM-configuration: disabled OAM-states: Not-applicable Cross-connect-interface: atm0/0/1, Type: oc3suni Cross-connect-VPI = 0 Cross-connect-VCI = 55 Cross-connect-UPC: pass Cross-connect OAM-configuration: disabled Cross-connect OAM-state: Not-applicable Threshold Group: 5, Cells queued: 0 Rx cells: 0, TX cells: 80 TX Clp0:80, TX Clp1: 0 Rx Clp0:0, Rx Clp1: 0 Rx Upc Violations:0, Rx cell drops:0 Rx Clp0 q full drops:0, Rx Clp1 qthresh drops:0 !--- View the number of "Rx Clp0 q full drops" and "Rx Clp1 qthresh drops." !--- Output suppressed.
Poll the following object IDs of the CISCO-ATM-CONN-MIB to capture per-VC values with SNMP:
ciscoAtmVclClp0VcqFullCellDrops—Total number of cells received with the CLP bit clear, discarded because the per-VC queue limit is exceeded. This counter is valid only if early packet discard (EPD) is disabled and only on systems with FC-PFQ functionality.
ciscoAtmVclVcqClpThreshCellDrops—Total number of cells discarded because the discard threshold (as opposed to the queue-limit) is exceeded on the per-VC queue, and the CLP bit is set. This counter is valid only if EPD is disabled and only on systems with FC-PFQ functionality.