QoS Configuration Notes:
The following table is a sample 8 queue DiffServ architecture which can be implemented on a 14.20 BayRS router. The BCC commands that follow implement Table 1. The queues are only a sample configuration to explain how to configure DS-QMS.
QoS Configuration of Table 1
The first step is to place the diffserv protocol on all interfaces on the router that are to participate in the diffserv process. The ethernet interface is typically where the DSCP marking is done and the serial interface is typically where the dequeing process is done. DSQMS only works on serial interfaces.
box# ip
ip# diffserv
diffserv#ethernet/2/2
ethernet/2/2# ip 192.168.1.1/24
ip/192.168.1.1/255.255.255.0#diffserv
diffserv/192.168.1.1#box
If the interface is a serial interface you have an additional step:
box# ip
ip# diffserv
diffserv#serial/2/2
serial/2/2# ppp (Or whatever layer 2 encapsulaton type you're using such as standard, SDLC, frame-relay, etc.)
ppp#ip 192.168.1.1/24
ip/192.168.1.1/255.255.255.0#diffserv
diffserv/192.168.1.1# box
If the inbound traffic filters for DSCP marking are to be done manually via Site Manager or BCC then you can skip to the RED configuration. If you're going to use OPS via COPS to create the filters, then perform the following steps.
box# cops address 192.168.1.1 id router1
The IP address is the differentiated services enabled router interface to which route filters are to be applied. The name 'router1' just places a name associated with this router.
Cops# cops-server 192.168.1.100
Cops-server/192.168.1.100#back
Cops#box; serial/1/1;ppp;ip 192.168.1.1/24;
ip/192.168.1.1/255.255.255.0#diffserve config-type cops
(Check that the config-type must be static if not set to COPS.)
diffserve/192.168.1.1#box
All of the following commands must be done in BCC. The previously mentioned commands as well as the DSCP marking filters can all be done via Site Manager.
box#red
This step enables RED for the entire router.
red#dsqms-red id 1
dsqms-red/1# min-threshold 50
dsqms-red/1# max-threshold 90;
dsqms-red/1# dsqms-red 2
dsqms-red/2# min-threshold 50
dsqms-red/2# max-threshold 90
dsqms-red/2# first-order-const 2
dsqms-red/2# second-order-const 20
dsqms-red/2# dsqms-red 3
dsqms-red/3# min-threshold 50
dsqms-red/3# max-threshold 90
dsqms-red/3# first-order-const 3
dsqms-red/3# second-order-const 30
dsqms-red/3# dsqms-red 4
dsqms-red/4# min-threshold 50
dsqms-red/4# max-threshold 90
dsqms-red/4# first-order-const 4
dsqms-red/4# second-order-const 40
dsqms-red/4# box
The above commands create 4 instances of RED. Each RED instance will be assigned to a particular DSCP within a queue. WRED is performed on different flows within the same queue. The min-threshold value indicates the queue size below which no packets are dropped by RED. The default value is 20. The max-threshold value indicates the queue size above which all packets are dropped by RED. The default value is 80. The first-order-const parameter specifies the first order constant used when calculating drop propability based on the average queue fraction, the queue size, and the min-threshold value. The default value is 1. The second-order-const parameter specifies the second order constant used when calculating drop probability based on the average queue fraction, the queue size, and the min-threshold value. The default value is 10. You don't have to configure these red id's if you're not going to use WRED as a congestion method. If you're going to use WRED, you can leave the thresholds and the constants at their default values. The changes listed above just give you a guideline as to how to change them if they need to be changed. The values presented are just my recommendations.
DSQMS must be enabled on a per interface basis with the appropriate queues created.
box#serial/2/2
serial/2/2#dsqms
dsqms/serial/2/2#dsqms-queue 1
dsqms-queue/1/serial/2/2#state enabled
(The queues are disabled by default. They must be explicitly enabled)
dsqms-queue/1/serial/2/2#dsqms-classifier dscp 11100000 (CS7)
dsqms-classifier/11100000/serial/2/2# dsqms-queue 2
dsqms-queue/2/serial/2/2#state enabled
dsqms-queue/2/serial/2/2#dsqms-classifier dscp 10111000 (EF)
dsqms-classifier/101110000/serial/2/2#back
dsqms-queue/2/serial/2/2#priority-time-quantum 400
(The amount of bandwidth assigned to this priority queue to 40%)
dsqms-queue/2/serial/2/2#flow-fairness enabled
(This parameter indicates whether a hash table is used to separate data packets into buckets within this queue. This mechanism improves fairness within a queue. The default is disabled.)
dsqms-queue/2/serial/2/2#jitter-const large
(Categorizes how sensitive traffic in this queue is to the jitter effect and thus provides an indicator for calculating the bucket size in flow fairness. Reset this parameter if the packets that this queue will handle are small (for example, VoIP packets) or large (for example, video packets) The default is normal).
dsqms-queue/2/serial/2/2#dsqms-queue 3
dsqms-queue/3/serial/2/2#state enabled
dsqms-queue/3/serial/2/2# dsqms-classifier dscp 11000000 (CS6)
dsqms-classifier/1100000/serial/2/2#red-id 1;back
dsqms-queue/3/serial/2/2# dsqms-classifier dscp 10100000 (CS5)
dsqms-classifier/1010000/serial/2/2#red-id 2;back
dsqms-queue/3/serial/2/2# drop-type red
dsqms-queue/3/serial/2/2# type weighted
dsqms-queue/3/serial/2/2# cfg-weight 35
(This value is expressed as a percentage. It is 35% of the remaining bandwidth. All of these values for the weighted queues must equal 100. You can also use simple weights like 1 through 10. The weights are then calculated by the ratio of a single queue's weight value to the sum of the weight values for all weighted queues.)
dsqms-queue/3/serial/2/2# flow-fairness enabled
dsqmq-queue/7/serial/2/2#dsqms-queue 8
dsqms-queue/8/serial/2/2#state enabled
dsqms-queue/8/serial/2/2#dsqms-classifier dscp 00000000;back (DE or CS0)
dsqms-classifier/00000000/serial/2/2#red-id 1;back
dsqms-queue/7/serial/2/2# drop-type red
dsqms-queue/8/serial/2/2# type weighted
dsqms-queue/8/serial/2/2# cfg-weight 5
dsqms-queue/8/serial/2/2# best-effort yes
dsqms-queue/8/serial/2/2#back
dsqms/serial/2/2#dequeue-at-line-rate enabled
(If you configure both weighted and priority queues on an interface, you may experience latency problems with the high-priority queues. To reduce delay for queues that need a constant delay rate when limited bandwidth is available, enable this parameter.)
dsqms/serial/2/2# debug-level trace or debug-level detailed
(By default the router does not log messages generated by DSQMS. You must tell it do so. Enter debug-level non to disable the logging.)
dsqms/serial/2/2#restart set
(If you change parameters for the dsqms, dsqms-queue, or dsqms-classifier objects, you must restart DSQMS on the interface for the changes to take effect.)
dsqms/serial/2/2#
As a side note, when using BCC you can preference any TI only command by tic so that it can be executed without leaving TI. For instance, show ip int displays the status of the IP interfaces from within BCC. You can also issue the following command from the bcc prompt: bcc> tic show ip cir. The status of the IP interfaces will be displayed.
Qos Status/Statistics Commands:
Show cops global
Show cops servers
Show diffserv global
Show diffserv interfaces
Show diffserv traffic-filter detail
Show diffserv traffic-filter summary
Show dsqms classifiers
Show dsqms interfaces details
Show dsqms interfaces stats
Show dsqms interfaces summary
Show dsqms queues detail
Show dsqms queues stats ? (can be abbreviated by 'sho dsq q stats')
Show dsqms queues summary ? (can be abbreviated by 'sho dsq q sum')
Show dsqms red
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.