04-20-2025 11:30 AM - edited 04-27-2025 05:47 PM
Speed and Bandwidth of Switches and Routers
Best-effort and first-in, first-out (FIFO) queuing strategy is default and ordinary packet delivery method as in switch and router ports when it is running on the normal operation mode of the network. It means that all the traffics (Bulk, Critical, Realtime and Best effort) have equal priority and chances of being delivered packets from one point (source) to another point (destination) on timely manner even congestions occur.
First-in, First-out (fifo) data traffic Queuing System Class-based Queuing System
L3 Switch Speed & Bandwidth 1 Gb/S
QoS Class-Based Queuing
On the other hand, implementing of QoS will being changed that normal network operational functions (of Switches or Routers) from and improved quality of service while allocating in specific traffic to bandwidth, priority-basis, police, shape and class-base queuing system of the network. This makes network performances are much better and more predictable, and the bandwidth utilization are highly efficient.
Assigned Bandwidth & Queue by Policy Map
Allocating Bandwidth & Queuing system (Ref. End-to-End QoS Design Network)
Newly introduced, currently recommended two class-based queuing algorithms are CBWFQ Class-Based Weighted Fair Queuing and LLQ Low-Latency Queuing that queues use for congestion management and avoidance in Modular QoS Controller-Line Interface with bandwidth guarantees.
Bandwidth can be allocated by specific value from 20 000 to 10 000 000 in Kilobits per second, by percent - allocating minimum bandwidth and by remaining allocating minimum bandwidth of balance of total bandwidth. The total sum of bandwidth of class-based queues cannot exceed 100 percent of port bandwidth. In a particular case a class-based queue can be possible to utilize entire port bandwidth if other queues do not make use of their bandwidth at the time.
Packets transmitting using CBWFQ Class-Based Weighted Fair Queuing Algorithm.
Class-Based Weighted Fair Queue (Ref. End-to-End QoS Design Network – page 89)
CBWFQ enable bandwidth assigned using bandwidth command keyword in policy-map under the class xxxxx name command. It's value can be presented by absolute or percentage command keyword. All other traffic can assign to fair-queue. (Router WAN edge). Example as below:
Assigned bandwidth 35% of Total bandwidth:
Assigned Bandwith 35% to CreticalData Class
Packet transmitting using LLQ Low-Latency Queuing Algorithm.
Low-Latency Queue & CBWFQ (Ref. End-to-End QoS Design Network – page 90)
Realtime data traffic assigned to LLQ separating from CBWFQ using priority command keyword. Guaranteed bandwidth can be allocated by absolute value or percentage command keyword after the priority command. (Router WAN edge) Example as below:
Assigned Bandwidth 20% of total bandwidth with Priority (LLQ)
Assigned bandwidth 20% with Priority Queue
QoS Data Traffic Abrivations and Queues
QoS Data traffic abrivation reference codes
Implementing Modular QoS Controller Line Interface to CISCO 3560 and 2960
--------------------------------------------------------------------------
CISCO 3500 series Switch Configuration
--------------------------------------------------------------------------
L3SW-24P#conf t
Enter configuration commands, one per line. End with CNTL/Z.
L3SW-24P(config)#mls qos srr-queue input priority-queue 1 bandwidth 38 ! assigned priority queue and its bandwidth
L3SW-24P(config)#mls qos srr-queue input bandwidth 15 35 ! assigned bandwith for queue 3 & 4
L3SW-24P(config)#mls qos map policed-dscp 0 10 18 25 to 8
L3SW-24P(config)#mls qos
L3SW-24P(config)#!
L3SW-24P(config)#ip access-list extended IMAP-PORTS
L3SW-24P(config-ext-nacl)#permit tcp any eq 143 any
L3SW-24P(config-ext-nacl)#permit tcp any eq 220 any
L3SW-24P(config-ext-nacl)#ip access-list extended SIGNALING-PORTS
L3SW-24P(config-ext-nacl)#permit tcp any any range 2000 2002
L3SW-24P(config-ext-nacl)#ip access-list extended VIDEO-PORTS
L3SW-24P(config-ext-nacl)#permit tcp any eq 4197 any
L3SW-24P(config-ext-nacl)#permit tcp any any range 5000 5500
L3SW-24P(config-ext-nacl)#permit tcp any eq 5445 any
L3SW-24P(config-ext-nacl)#permit tcp any any range 16384 16403
L3SW-24P(config-ext-nacl)#ip access-list extended VOICE-PORTS
L3SW-24P(config-ext-nacl)#permit udp any any range 16384 32767
L3SW-24P(config-ext-nacl)#!
L3SW-24P(config-ext-nacl)#class-map match-all IMAP
L3SW-24P(config-cmap)# match access-group name IMAP-PORTS
L3SW-24P(config-cmap)#class-map match-all VIDEO
L3SW-24P(config-cmap)# match access-group name VIDEO-PORTS
L3SW-24P(config-cmap)#class-map match-all VOICE
L3SW-24P(config-cmap)# match access-group name VOICE-PORTS
L3SW-24P(config-cmap)#class-map match-all SIGNALING
L3SW-24P(config-cmap)# match access-group name SIGNALING-PORTS
L3SW-24P(config-cmap)#!
L3SW-24P(config-cmap)#exit
L3SW-24P(config)#!
L3SW-24P(config)#policy-map IPTV-SERVER
L3SW-24P(config-pmap)# class VOICE
L3SW-24P(config-pmap-c)# set dscp ef ! voice traffic
L3SW-24P(config-pmap-c)#police 12000000 8000 exceed-action policed-dscp-transmit
L3SW-24P(config-pmap-c)# class VIDEO
L3SW-24P(config-pmap-c)# set dscp af41 ! interactive video
L3SW-24P(config-pmap-c)#police 8000000 8000 exceed-action policed-dscp-transmit
L3SW-24P(config-pmap-c)# class SIGNALING
L3SW-24P(config-pmap-c)# set dscp cs3 ! call signalling traffic
L3SW-24P(config-pmap-c)#police 500000 8000 exceed-action policed-dscp-transmit
L3SW-24P(config-pmap-c)# class IMAP
L3SW-24P(config-pmap-c)# set dscp af11 ! bulk data
L3SW-24P(config-pmap-c)#police 20000000 8000 exceed-action policed-dscp-transmit
L3SW-24P(config-pmap-c)# class class-default
L3SW-24P(config-pmap-c)# set dscp default ! best-effort
L3SW-24P(config-pmap-c)#police15000000 8000 exceed-action policed-dscp-transmit
L3SW-24P(config-pmap-c)#!
L3SW-24P(config-pmap-c)#exit
L3SW-24P(config-pmap)#!
L3SW-24P(config-pmap)#interface GigabitEthernet0/2
L3SW-24P(config-if)#description : Connect to Router R1812 Fa0/0 port
L3SW-24P(config-if)#service-policy input IPTV-SERVER
L3SW-24P(config-if)#!
L3SW-24P(config-if)#
----------------------------------------------------------------
Show Run L3SW-24P
----------------------------------------------------------------
mls qos srr-queue input priority-queue 1 bandwidth 38
mls qos srr-queue input bandwidth 15 35
mls qos map policed-dscp 0 10 18 25 to 8
mls qos
!
ip access-list extended IMAP-PORTS
permit tcp any eq 143 any
permit tcp any eq 220 any
ip access-list extended SIGNALING-PORTS
permit tcp any any range 2000 2002
ip access-list extended VIDEO-PORTS
permit tcp any eq 4197 any
permit tcp any any range 5000 5500
permit tcp any eq 5445 any
permit tcp any any range 16384 16403
ip access-list extended VOICE-PORTS
permit udp any any range 16384 32767
!
class-map match-all IMAP
match access-group name IMAP-PORTS
class-map match-all VIDEO
match access-group name VIDEO-PORTS
class-map match-all VOICE
match access-group name VOICE-PORTS
class-map match-all SIGNALING
match access-group name SIGNALING-PORTS
!
!
policy-map IPTV-SERVER
class VOICE
set dscp ef ! voice traffic
police 12000000 8000 exceed-action policed-dscp-transmit
class VIDEO
set dscp af41 ! interactive video
police 18000000 8000 exceed-action policed-dscp-transmit
class SIGNALING
set dscp cs3 ! call signalling traffic
police 500000 8000 exceed-action policed-dscp-transmit
class IMAP
set dscp af11 ! bulk data
police 20000000 8000 exceed-action policed-dscp-transmit
class class-default
set dscp default ! best-effort
police 15000000 8000 exceed-action policed-dscp-transmit
!
exit
!
interface GigabitEthernet0/2
description : Connect to Router R1812 Fa0/0 port
service-policy input IPTV-SERVER
!
------------------------------------------------------
CISCO 2900 series Switch Configuration
------------------------------------------------------
L2SW-48(config)#!
L2SW-48(config)#ip access-list extended TCP-UDP
L2SW-48(config-ext-nacl)# permit tcp any any
L2SW-48(config-ext-nacl)# permit udp any any
L2SW-48(config-ext-nacl)#!
L2SW-48(config-ext-nacl)#!
L2SW-48(config-ext-nacl)#exit
L2SW-48(config)#mls qos
L2SW-48(config)#mls qos map policed-dscp 0 10 18 25 to 8
L2SW-48(config)#! above qos map "excess traffic" of dscp (0)default/(10)af11/(18)af21/dscp 25 converted to cs1(Scavenger)
L2SW-48(config)#mls qos map cos-dscp 0 8 16 24 32 46 48 56
L2SW-48(config)#mls qos map dscp-cos 8 to 0
L2SW-48(config)#mls qos srr-queue input priority-queue 1 bandwidth 38
L2SW-48(config)#mls qos srr-queue input bandwidth 15 35
L2SW-48(config)#!
L2SW-48(config)#!
L2SW-48(config)#class-map match-all STREAMING-VIDEO
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#class-map match-all BULK-DATA
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#class-map match-all INTERACTIVE-VIDEO
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#class-map match-all CALL-SIGNALLING
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#class-map match-all VOICE
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#class-map match-all SCAVENGER
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#class-map match-all NETWORK-MANAGEMENT
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#class-map match-all IP-ROUTING
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#class-map match-all TRANSACTIONAL-DATA
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#class-map match-all MISSIONCRITICAL-DATA
L2SW-48(config-cmap)# match access-group name TCP-UDP
L2SW-48(config-cmap)#!
L2SW-48(config-cmap)#!
L2SW-48(config-cmap)#!
L2SW-48(config-cmap)#policy-map IPTV-POLICY
L2SW-48(config-pmap)# class VOICE
L2SW-48(config-pmap-c)# set dscp ef
L2SW-48(config-pmap-c)# police 180000000 8000 exceed-action policed-dscp-transmit
! exceed-action: do action when bit rate exceed;
! policed-dscp-transmit: change current dscp value to cs1 (Scavenger) -
! according to “mls qos map policed-dscp" on the top and send it medium priority queue.
L2SW-48(config-pmap-c)# class INTERACTIVE-VIDEO
L2SW-48(config-pmap-c)# set ip dscp af41
L2SW-48(config-pmap-c)# police 15000000 8000 exceed-action policed-dscp-transmit
L2SW-48(config-pmap-c)# class STREAMING-VIDEO
L2SW-48(config-pmap-c)# set ip dscp cs4
L2SW-48(config-pmap-c)# police 10000000 8000 exceed-action policed-dscp-transmit
L2SW-48(config-pmap-c)# class MISSIONCRITICAL-DATA
L2SW-48(config-pmap-c)# set ip dscp cs3
L2SW-48(config-pmap-c)# police 7000000 8000 exceed-action policed-dscp-transmit
L2SW-48(config-pmap-c)# class CALL-SIGNALLING
L2SW-48(config-pmap-c)# set ip dscp cs3
L2SW-48(config-pmap-c)# police 5000000 8000 exceed-action policed-dscp-transmit
L2SW-48(config-pmap-c)# class TRANSACTIONAL-DATA
L2SW-48(config-pmap-c)# set ip dscp af21
L2SW-48(config-pmap-c)# police 5000000 8000 exceed-action policed-dscp-transmit
L2SW-48(config-pmap-c)# class NETWORK-MANAGEMENT
L2SW-48(config-pmap-c)# set ip dscp cs2
L2SW-48(config-pmap-c)# police 5000000 8000 exceed-action policed-dscp-transmit
L2SW-48(config-pmap-c)# class IP-ROUTING
L2SW-48(config-pmap-c)# set ip dscp cs6
L2SW-48(config-pmap-c)# police 5000000 8000 exceed-action policed-dscp-transmit
L2SW-48(config-pmap-c)# class BULK-DATA
L2SW-48(config-pmap-c)# set ip dscp af11
L2SW-48(config-pmap-c)# police 4000000 8000 exceed-action policed-dscp-transmit
L2SW-48(config-pmap-c)#class SCAVENGER
L2SW-48(config-pmap-c)# set ip dscp cs1
L2SW-48(config-pmap-c)# police 1000000 8000 exceed-action policed-dscp-transmit
L2SW-48(config-pmap-c)#!
L2SW-48(config-pmap-c)#!
L2SW-48(config-pmap-c)#!
L2SW-48(config-pmap-c)#interface GigabitEthernet0/1
L2SW-48(config-if)# srr-queue bandwidth share 1 37 5 25 ! without priority queue 1, other 3 Quesues will be assigned bandwidth accordingly 37 5 25. The specific queue bandwidth will be expanded its size if other traffic queues is not utalizing their bandwidth in the interface while using the "bandwidth share" command.
L2SW-48(config-if)# mls qos trust cos
L2SW-48(config-if)# service-policy input IPTV-POLICY
L2SW-48(config-if)#!
L2SW-48(config-if)#exit
L2SW-48(config)#exit
------------------------------------------------------------------------
Show Run - L2SW-48
------------------------------------------------------------------------
!
ip access-list extended TCP-UDP
permit tcp any any
permit udp any any
!
mls qos
mls qos map policed-dscp 0 10 18 25 to 8
! excess traffic marked default(0)/af11(10)/af21(18)/dscp 25 and converted to cs1(Scavenger)
mls qos map cos-dscp 0 8 16 24 32 46 48 56
mls qos map dscp-cos 8 to 0
mls qos srr-queue input priority-queue 1 bandwidth 38
mls qos srr-queue input bandwidth 15 35
!
!
class-map match-all STREAMING-VIDEO
match access-group name TCP-UDP
class-map match-all BULK-DATA
match access-group name TCP-UDP
class-map match-all INTERACTIVE-VIDEO
match access-group name TCP-UDP
class-map match-all CALL-SIGNALLING
match access-group name TCP-UDP
class-map match-all VOICE
match access-group name TCP-UDP
class-map match-all SCAVENGER
match access-group name TCP-UDP
class-map match-all NETWORK-MANAGEMENT
match access-group name TCP-UDP
class-map match-all IP-ROUTING
match access-group name TCP-UDP
class-map match-all TRANSACTIONAL-DATA
match access-group name TCP-UDP
class-map match-all MISSIONCRITICAL-DATA
match access-group name TCP-UDP
!
!
policy-map IPTV-POLICY
class VOICE
set dscp ef
police 180000000 8000 exceed-action policed-dscp-transmit
! exceed-action: do action when bit rate exceed;
! policed-dscp-transmit: change current dscp value to cs1 (Scavenger) according to mls qos map policed-dscp and send it.
class INTERACTIVE-VIDEO
set ip dscp af41
police 15000000 8000 exceed-action policed-dscp-transmit
class STREAMING-VIDEO
set ip dscp cs4
police 10000000 8000 exceed-action policed-dscp-transmit
class MISSIONCRITICAL-DATA
set ip dscp cs3
police 7000000 8000 exceed-action policed-dscp-transmit
class CALL-SIGNALLING
set ip dscp cs3
police 5000000 8000 exceed-action policed-dscp-transmit
class TRANSACTIONAL-DATA
set ip dscp af21
police 5000000 8000 exceed-action policed-dscp-transmit
class NETWORK-MANAGEMENT
set ip dscp cs2
police 5000000 8000 exceed-action policed-dscp-transmit
class IP-ROUTING
set ip dscp cs6
police 5000000 8000 exceed-action policed-dscp-transmit
class BULK-DATA
set ip dscp af11
police 4000000 8000 exceed-action policed-dscp-transmit
class SCAVENGER
set ip dscp cs1
police 1000000 8000 exceed-action policed-dscp-transmit
!
!
interface GigabitEthernet0/1
srr-queue bandwidth share 1 37 5 25
mls qos trust cos
service-policy input IPTV-POLICY
!
Router Configuration of QoS MQC-Line interface can refer on below link:
References:
End-to-End QoS Network Design – Quality of Service for Rich-Media & Cloud Networks 2nd Edition - November 2013
Could you verify the full book title and publish date for: End-to-End QoS Design Network?
I updated already complete book name and published date but not 4 authors name. It comes here for your easy reference too.
References:
Thank you.
Ah, believe the correct title is: End-to-End QoS Network Design – Quality of Service for Rich-Media & Cloud Networks 2nd Edition - November 2013
Hmm, will have to review further, but material seems dated, even for as 12 year old book.
> material seems dated
Well 2960 and 3560 switches are both already End of Support so yes, pretty dated ...
https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-2960-series-switches/eos-eol-notice-c51-730121.html
https://www.cisco.com/c/en/us/products/switches/catalyst-3560-series-switches/eos-eol-notice-listing.html
ps: just noticed I pasted the wrong quote in there - corrected now <smile>
@Rich R , ha, the usage of 2960/3560 is one of two items that made me wonder whether the first or second edition was being referenced. The other item was the CBWFQ being shown seemed to be pre-HQF.
I think (???) QoS had already improved by the second edition's published date, but if true, the time it takes to prepare such a book, might account for newer technology examples not existing during book preparation. Or, at the time book was published, very likely you may encounter such devices in service, and also, of course, not EoL/EoS.
One additional issue with 2960/3560 egress QoS, I don't believe it's considered MQC.
If we were to discuss contemporary switch QoS, Catalyst 9000 series or Nexus likely should be presented. Although, I wonder if the subject of using/understanding QoS is becoming somewhat moot in light of technology like AutoQoS or SD-WAN.
@Rich R !
Yes, you are right they have replaced with substitute of Cisco Catalyst 9200 & 9300 Series Switches. QoS Command-line interface may re-usable even new devices but command syntax is having slight differences.
Catalyst 9k egress QoS is quite different from much earlier low end Catalysts. It's now much like a router's QoS. Also, QoS features are more extensive than the earlier low end Catalysts (yet not quite up to a software based router's).
I found following information of the devices date release, end-of-sales and end-of-support which I used to implement QoS Command-line. The End-to-End Network Design 2nd Edition had been published during the period of time. I have used some importent figures of the book for reference purposes make easy understanding for novise for implementation of QoS.
Product Type | Campus LAN Switches - Access |
Status | End of Support EOL Details |
Series Release | 18-SEP-2005 |
End-of-Sale | 31-OCT-2014 |
End-of-Support | 31-OCT-2019 |
Product Type | Campus LAN Switches - Access |
Status | End of Support EOL Details |
Series Release | 10-FEB-2004 |
End-of-Sale | 14-MAY-2016 |
End-of-Support | 31-MAY-2021 |
Yes, I agreed with your last comment. I have refered those MQoS Commands of Catalyst 9000 series switches there are similarity with router QoS Commands and also can implemet Service-policy to egress port. Those which I used my own old devices 2960 & 3560 can not apply service-policy into egress port but instead ingress port will support.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: