QoS Support on the Catalyst 4000 CatOS Family of Switches
Catalyst 4000 CatOS switches provide for QoS classification and congestion management solely based on CoS values. The Catalyst 4000 IOS switches, discussed in Chapter 7, support a wider range of QoS. For the Catalyst 4000 CatOS switches, a high- and low-priority transmit port queue with round-robin scheduling accomplish congestion management. The Catalyst 4000 CatOS switches do not support policing or input scheduling. The following sections discuss the Catalyst 4000 CatOS QoS features with detailed overviews, configuration guidelines, and examples.
Catalyst 4000 Product Family Delineation
This section covers the Catalyst 4000 CatOS Family of switches. As discussed in the introduction to this chapter, the Catalyst 4000 Cisco IOS switches, the Catalyst 4000 CatOS switches, and the Layer 3 services module each have unique QoS feature support. The Catalyst 4000 Cisco IOS switches and the Layer 3 services module are covered in Chapter 7. Table 3-8 summarizes the Catalyst 4000 switches into the CatOS or IOS category. This chapter applies to the Catalyst 4000 switches that run CatOS Software.
Table 3-8 Catalyst 4000 CatOS Versus Cisco IOS Software Platform Support
Catalyst 4000 Model |
Family |
Description |
Software |
Catalyst 2948G |
Catalyst 4000 |
48-port 10/100BASE-TX switch ports + 2 1000BASE-X GBIC3 switch ports |
CatOS |
Catalyst 2980G |
Catalyst 4000 |
80-port 10/100BASE-TX switch ports + 2 1000BASE-X GBIC switch ports |
CatOS |
Catalyst 2980G-A |
Catalyst 4000 |
80-port 10/100BASE-TX switch ports + 2 1000BASE-X GBIC switch ports |
CatOS |
Catalyst 2948G-L3 |
Catalyst G-L3 |
48-port 10/100BASE-TX + 2 1000BASE-X GBIC Layer 3 switch |
IOS |
Catalyst 4003 + WS-X4012 Supervisor I Engine |
Catalyst 4000 |
3-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2 supervisor |
CatOS |
Catalyst 4006 + WS-X4013 Supervisor II Engine |
Catalyst 4000 |
6-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2 supervisor |
CatOS |
Catalyst 4006 + WS-X4014 Supervisor III Engine |
Catalyst 4000 |
6-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2/3 supervisor |
IOS |
Catalyst 4006 + WS-X4515 Supervisor IV Engine |
Catalyst 4000 |
6-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2/3 supervisor |
IOS |
Catalyst WS-X4232-L3 Layer 3 Services Module |
Catalyst G-L3 |
Layer 3 router module for Catalyst 4003 and 4006 chassis with Supervisor I or II Engine |
IOS |
Catalyst 4503 + WS-X4013 Supervisor II Engine |
Catalyst 4000 |
3-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2 supervisor |
CatOS |
Catalyst 4503 + WS-X4014 Supervisor III Engine |
Catalyst 4000 |
3-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2/3 supervisor |
IOS |
Catalyst 4503 + WS-X4515 Supervisor IV Engine |
Catalyst 4000 |
3-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2/3 supervisor |
IOS |
Catalyst 4506 + WS-X4013 Supervisor III Engine |
Catalyst 4000 |
6-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2 supervisor |
CatOS |
Catalyst 4506 + WS-X4014 Supervisor III Engine |
Catalyst 4000 |
6-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2/3 supervisor |
IOS |
Catalyst 4506 + WS-X4515 Supervisor IV Engine |
Catalyst 4000 |
6-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2/3 supervisor |
IOS |
Catalyst 4507R + WS-X4515 Supervisor IV Engine |
Catalyst 4000 |
7-slot modular chassis + 2 1000BASE-X GBIC ports on Layer 2/3 supervisor |
IOS |
Catalyst 4840G |
Catalyst G-L3 |
40-port 10/100BASE-TX + 1000BASE-X GBIC Layer 3 server load-balancing switch |
IOS |
Catalyst 4908G-L3 |
Catalyst 4000 |
8 1000BASE-X GBIC Layer 3 switch |
CatOS |
Catalyst 4912G-L3 |
Catalyst G-L3 |
8 1000BASE-X GBIC switch ports |
IOS |
Catalyst 4000 CatOS Family of Switches QoS Architectural Overview
The Catalyst 4000 CatOS switches support only QoS classification, marking, and congestion management. Classification and marking is based on the CoS value of 802.1q frames and port trust. Using two transmit queues for output scheduling achieves congestion management of egress traffic. Input scheduling is limited to first-in, first-out (FIFO) ingress queuing only. Figure 3-5 shows the basic QoS model for the Catalyst CatOS switches.
Figure 3-5 Basic QoS Architecture for the Catalyst Cat4000 CatOS Switches
Software Requirements
The Catalyst 4000 CatOS switches require CatOS Software version 5.2(1) or higher for QoS feature support.
Enabling QoS Features on Catalyst 4000 CatOS Switches
QoS must be globally enabled on CatOS switches before classification, marking, and output scheduling configurations are applied. To enable QoS on the Catalyst 4000 CatOS switches, enter the following command:
set qos {enable | disable}
Example 3-4 shows a user enabling QoS on a CatOS switch.
Example 3-4 Enabling QoS Features on a Catalyst 4000 CatOS Switch
Console> (enable) set qos enable QoS is enabled. Console> (enable)
Input Scheduling
Similar to other access layer switches, the Catalyst 4000 CatOS switches performs only FIFO Queuing of ingress packets. For line-module ports that are nonblocking, FIFO Queuing does not pose an issue because nonblocking line-module ports can deliver traffic to the switching fabric at line rate. Ports that are oversubscribed to the switching fabric are also referred to as blocking ports. Oversubscribed ports share bandwidth and data transmit contention in groups of two to eight ports depending on line module. Campus network design must consider oversubscribed ports very carefully on the Catalyst 4000 because of the lack of input scheduling. Furthermore, when using the nonblocking modules, consider aligning the front panels to minimize oversubscription. For example, avoid placing workstations utilizing real-time voice and video applications on the same group of ports that share oversubscribed bandwidth with high-traffic servers and network appliances. The product release notes contain detailed information on which ports share bandwidth. Moreover, all line-module ports support 802.1x flow control for constraining host traffic. 802.1x flow control is useful in limiting traffic for hosts connected to oversubscribed ports.
Table 3-9 lists the available line modules at the time of publication and denotes whether the ports are blocking or nonblocking. Several line modules are both nonblocking and blocking depending on the front-panel port. The table also describes how the ports are subscribed to the switching fabric.
Table 3-9 Catalyst 4000 Line Modules Architecture
Module |
Ethernet Ports (Media Type) |
Architecture to Switch Fabric |
WS-U4504-FX-MT |
4 100BASE-FX (MTRJ) |
Nonblocking. |
WS-X4012 |
2 1000BASE-X (GBIC) |
Nonblocking. |
WS-X4013 |
2 1000BASE-X (GBIC) |
Nonblocking. |
WS-X4014 |
2 1000BASE-X (GBIC) |
Nonblocking. |
WS-X4515 |
2 1000BASE-X (GBIC) |
Nonblocking. |
WS-X4124-FX-MT |
24 100BASE-FX (MTRJ) |
Nonblocking. |
WS-X4148-FX-MT |
48 100BASE-FX (MTRJ) |
Nonblocking. |
WS-X4148-RJ21 |
48-port 10/100BASE-TX (RJ21) |
Nonblocking. |
WS-X4148-RJ45 |
48-port 10/100BASE-TX (RJ45) |
Nonblocking. |
WS-X4148-RJ45V |
48-port 10/100BASE-TX with Inline Power (RJ45) |
Nonblocking. |
WS-X4306-GB |
6 1000BASE-X (GBIC) |
Nonblocking. |
WS-X4232-GB-RJ |
32-port 10/100BASE-TX (RJ45) + 2 1000BASE-X (GBIC) |
Nonblocking. |
WS-X4232-L3 |
32, L2 10/100BASE-TX L2 (RJ45) + 2 L3 1000BASE-X (GBIC) |
32 10/100BASE-TX ports are nonblocking. |
WS-X4412-2GB-T |
12-port 1000BASE-T (RJ45) + 2 1000BASE-X (GBIC) |
The 2 1000BASE-X ports are nonblocking. The 1000BASE-T ports are group 3 front-panel ports to a 1-gigabit switch fabric connection. |
WS-X4418-2GB |
18 1000BASE-X (GBIC) |
Front-panel ports 1 and 2 are nonblocking. Ports 3 through 18 are grouped 4 front-panel 1000BASE-X ports to a 1-gigabit switch fabric connection. |
WS-X4424-GB-RJ45 |
24-port 10/100/1000BASE-T (RJ45) |
Each consecutive group of 4 ports is connected to a 1-gigabit switch fabric connection. |
WS-X4448-GB-LX |
48-port 1000BASE-LX (SFP) |
Each consecutive group of 8 ports is connected to a 1-gigabit switch fabric connection. |
WS-X4448-GB-RJ45 |
48-port 10/100/1000BASE-T (RJ45) |
Each consecutive group of 8 ports is connected to a 1-gigabit switch fabric connection. |
Classification, Marking, and Trusting
The Catalyst 4000 CatOS switches are unable to differentiate between trusted and untrusted ports. As a result, the Catalyst 4000 CatOS switches consider all ports trusted, and the switch does not alter the CoS value for any Ethernet 802.1q tagged frames. System administrators need to be aware of servers, network appliances, or workstations that may be inappropriately marking CoS values in transmitted 802.1q tagged frames because the incorrectly marked frames could effect high-priority traffic such as voice or video.
Classifying Untagged Frames
The Catalyst 4000 CatOS switch may mark untagged frames with a default CoS value. The default CoS value is a global parameter applied to all ports for untagged frames received by the switch. This default CoS value marking technique cannot be applied to selective ports or selective frames. Marking is strictly a global parameter for untagged frames. To configure the default CoS value for untagged frames, enter the following command:
set qos defaultcos default-cos-value
default-cos-value indicates the CoS value to be marked on untagged frames.
Example 3-5 shows a user configuring a global default CoS value.
Example 3-5 Defining Default CoS Value on Catalyst 4000 CatOS Switch
Console> (enable) set qos defaultcos 5 qos defaultcos set to 5
NOTE
Extended trust configuration is not supported on the Catalyst 4000 CatOS switches.
The Catalyst 4000 CatOS switches support only 802.1q trunking; Inter-Switch Link (ISL) trunking is not supported. The Catalyst 4000 Supervisor III and IV Engine both support ISL on existing linecards with a few exceptions.
Congestion Management
Congestion management is handled through the use of output scheduling. The Catalyst 4000 CatOS Software manages output scheduling by the use of a per-port, two-queues, one-threshold (2q1t) system. Packets are mapped to a logical high- or low- priority output queue depending on the switch QoS configuration and CoS value in the frame. There is only one threshold setting, 100 percent; therefore, the only threshold configuration is to tail drop packets when a queue is full. Packets are removed from the queues round-robin with each queue getting serviced 1:1. Because packet flows with higher CoS values of less bandwidth are generally mapped to one specific queue, those packets are less likely to be dropped due to output congestion with the lower-priority, high-bandwidth packet flows.
To configure the CoS values to map to specific queues and verify the configuration, enter the following commands:
set qos map port_type q# threshold# cos cos_list show qos info [runtime | config]
For the Catalyst 4000 CatOS switches, the port_type is always 2q1t with a threshold# of 1. q# identifies the queue to map the CoS value to, and the cos_list identifies what queue frames of specific CoS values are mapped. The cos_list must be configured in pairs: 0-1, 2-3, 4-5, and 6-7. Because QoS configurations are saved to the nonvolatile random-access memory (NVRAM) configuration at run time, the runtime and config options have no significance and both display the current and saved configuration. Not mapping CoS values after enabling QoS may result in unexpected performance because all CoS values map to the same transmit queue by default when QoS is enabled. Example 3-6 shows a user configuring and verifying the CoS mapping.
Example 3-6 Configuring Catalyst 4000 QoS CoS Mapping
Console> (enable) set qos map 2q1t 2 1 cos 4-7 Qos tx priority queue and threshold mapped to cos successfully. Console> (enable) show qos info runtime Run time setting of QoS: QoS is enabled All ports have 2 transmit queues with 1 drop thresholds (2q1t). Default CoS = 0 Queue and Threshold Mapping: Queue Threshold CoS ----- --------- --------------- 1 1 0 1 2 3 2 1 4 5 6 7
The Catalyst 4000 CatOS switch records the number of frames tail dropped as a result of the transmit port queue being full. The counters record the tail-drop frames as txQueueNotAvailable in the show counters mod/port. In addition, both the out-lost counter from the show mac [mod[/port]] command and the Xmit-Err counter from the show port [mod[/port]] command include the txQueueNotAvailable counter. Note that the out-lost and Xmit-Err are not inclusively counters for txQueueNotAvailable and increment for other packet counters as well. Example 3-7 shows some extrapolated output from the show counters [mod[/port]], show port [mod[/port]], and show mac [mod[/port]] commands from the QoS case study later in the chapter .
Example 3-7 show counters, show port, and show mac Command Output Excerpts
Console> (enable) show counters 5/1 (text deleted) 23 txQueueNotAvailable = 19422994 (text deleted)
Console> (enable) show mac 5/1 (text deleted) MAC Dely-Exced MTU-Exced In-Discard Lrn-Discrd In-Lost Out-Lost -------- ---------- ---------- ---------- ---------- ---------- ---------- 5/1 0 0 0 0 0 19422994 (text deleted)
Console> (enable) show port 5/1 (text deleted) Port Align-Err FCS-Err Xmit-Err Rcv-Err UnderSize ----- ---------- ---------- ---------- ---------- --------- 5/1 - 0 19422994 0 0 (text deleted)
Auxiliary VLANs
For VoIP appliances, such as the Cisco IP Phone, the 2q1t system works well. IP Phones should be configured in conjunction with auxiliary VLANs. Through the use of Cisco Discovery Protocol (CDP) packets, the IP Phone is informed of the auxiliary VLAN ID to use in sending tagged frames.
To configure a port for an auxiliary VLAN for tagged traffic, use the following command:
set port auxiliaryvlan mod [/ports] {vlan | untagged | none}
The vlan option specifies the VLAN ID of the auxiliary VLAN. The untagged option tells the port to use untagged frames for the auxiliary VLAN, and none disables the auxiliary VLAN configuration on the port.
A LAN IP Phone conversation based on pulse code modulation (PCM) (G.711) compression uses only 83 kbps, far below the output rate of an Ethernet port operating at 10 Mbps. Cisco IP Phones connect at 100 Mbps full-duplex by default. Mapping only VoIP frames exclusively to a single queue based on CoS value allows voice traffic to flow egress from the output queue without packet loss even under output port loads above line rate.
Case Study: Output Scheduling on the Catalyst 4000 Series Switches
To illustrate the output scheduling behavior on the Catalyst 4000 Family, a Catalyst 4006 with a Supervisor II Engine running CatOS Software version 6.3.7 is connected to two Cisco 7960 IP Phones, a Cisco Call Manager server, and a traffic generator connected to three Fast Ethernet ports and a Gigabit Ethernet port as shown in Figure 3-6.
Figure 3-6 Catalyst 4000 Case Study Network Diagram
Two trials were conducted taking voice quality statistical measurements from each IP Phone based on a 1-minute, G7.11 voice call between IP Phone 1 and 2. To create traffic congestion, the traffic generator attached to the Gigabit Ethernet port was sending multicast at line rate with a CoS value of 0. The multicast traffic was flooded to all ports, including the Fast Ethernet ports connected to the IP Phones. This flooding of traffic led to output congestion.
The switch port configuration only included auxiliary VLANs on the Cisco IP Phone ports. The remaining port configuration of the switch was default. Example 3-8 outlines the relevant configuration.
Example 3-8 Catalyst 4000 CatOS Switch Configuration for Case Study
begin (text deleted) #qos set qos enable (text deleted)
#module 1 : 2-port 1000BaseX Supervisor set vlan 70 1/1 set trunk 1/1 off dot1q 1-1005 set spantree portfast 1/1 enable set port channel 1/1 mode off (text deleted)
#module 2 : 48-port Inline Power Module set vlan 70 2/1 set port auxiliaryvlan 2/2 70 set port auxiliaryvlan 2/3 70 set trunk 2/1 off dot1q 1-1005 set trunk 2/2 off dot1q 1-1005 set trunk 2/3 off dot1q 1-1005 set spantree portfast 2/1-3 enable set port channel 2/1-3 mode off (text deleted)
QoS was enabled for both trials. In the first trial, however, QoS was enabled but the CoS mapping was left as default. As a result, frames of CoS values 0 through 7 mapped to the same output queue. In the second trial, frames with a CoS value of 4 to 7 were mapped to queue 1, and the remaining frames were mapped to queue 0. Example 3-9 shows the QoS configuration for each trial.
Example 3-9 Catalyst 4000 QoS CoS Mapping Configuration for Each Trial of Case Study
! Trial 1: Console> (enable) show qos info runtime Run time setting of QoS: QoS is enabled All ports have 2 transmit queues with 1 drop thresholds (2q1t). Default CoS = 0 Queue and Threshold Mapping: Queue Threshold CoS ----- --------- --------------- 1 1 0 1 2 3 4 5 6 7 2 1
! Trial 2: Console> (enable) show qos info runtime Run time setting of QoS: QoS is enabled All ports have 2 transmit queues with 1 drop thresholds (2q1t). Default CoS = 0 Queue and Threshold Mapping: Queue Threshold CoS ----- --------- --------------- 1 1 0 1 2 3 2 1 4 5 6 7
As Table 3-10 indicates, the voice stream statistical measurements clearly showed significant frame loss and poor voice quality when all frames shared the same output queue. When the frames were output scheduled appropriately, no loss of frames occurred and voice quality was excellent. The maximum jitter was well within the recommended boundary of less than 30 ms.
Table 3-10 QoS Trial Results on Catalyst 4006 with Supervisor II Engine
Trial |
Total Frames Transmitted (Phone 1/2) |
No. of Receive Lost Frames (Phone 1/2) |
Maximum Recorded Jitter (Phone1/2) |
1 queue |
3245/3300 |
2536/2459 |
20/22 |
2 queues |
3130/3240 |
0/0 |
15/9 |
Summary
The Catalyst 4000 CatOS Family of switches suits basic QoS needs for an access layer switch. If additional features such as policing and classification based on DSCP are required, network designers need to consider the Catalyst 4000/4500 Cisco IOS Family of switches using the Supervisor Engine III or IV. The Catalyst 4000/4500 Cisco IOS Family switches support classification based on DSCP or CoS, ingress and egress policing, and output scheduling based on a 1p3q1t or 4q1t port queuing system. You can summarize the QoS feature support on the Catalyst 4000 CatOS Family of switches as follows:
No support for input scheduling.
Classification based on CoS only; no support for classification based on IP precedence or DSCP.
Extended trust options are not supported.
Output ports have two queues with one threshold (2q1t).
Frames are tail dropped when queue is full.
Tail dropped frames are recorded as txQueueNotAvailable in the show counters mod/port.
CoS mapping to queues are configurable in pairs: 0-1, 2-3, 4-5, and 6-7.
Ports are trusted by default irrespective of the QoS global configuration.
The queue threshold is not configurable.
Untagged frames can be mapped to the queue based on configured CoS value.
Tagged frames cannot have CoS values rewritten.
Layer 3 services module can be added to Catalyst 4000 CatOS switch for policing of IP routed traffic between VLANs. However, the Layer 3 services module rewrites ingress CoS to zero.
In summary, the Catalyst 2900XL, 3500XL, and Catalyst 4000 CatOS Family of switches only support a subset of QoS features compared to the Catalyst 2950, 3550, 4000 IOS, and 6500 Family of switches.
The available QoS features depend on the platform; they also depend on whether the platform supports IP routing. The Catalyst 3550, Catalyst 4000 Cisco IOS Software Family, Catalyst 5500 with RSM or RSFC, and the Catalyst 6000/6500 with MSM or MSFC I/II support IP routing. Other platforms may support Layer 3 QoS features, such as classification based on DSCP and marking of IP precedence; however these platforms do not actually support routing of IP frames.
For a list of the QoS features supported by each platform, see Tables 3-1 through 3-5.