05-29-2014 01:56 PM
Hi all,
I need some advice on QoS on IOS-XR.
Customer having QoS config on Juniper as follows :
class-of-service {
classifiers {
ieee-802.1 8021p {
forwarding-class premiumrt {
loss-priority high code-points 101;
}
forwarding-class nc_premiumnrt {
loss-priority low code-points 100;
loss-priority high code-points [ 110 111 ];
}
forwarding-class standard {
loss-priority high code-points 000;
}
forwarding-class business {
loss-priority high code-points 001;
}
forwarding-class standard-high {
loss-priority low code-points 011;
}
forwarding-class business-critical {
loss-priority low code-points 010;
}
}
}
}
class-of-service {
interfaces {
ge-1/2/0 {
unit 1510 {
scheduler-map CUSTOMER-A-SCHEDULER;
shaping-rate 3m;
classifier {
ieee-802.1 8021p;
}
}
}
}
interfaces {
ge-1/2/0 {
flexible-vlan-tagging;
encapsulation flexible-ethernet-services;
unit 1510 {
encapsulation vlan-vpls;
vlan-id 1510; NOTE: The VLAN number is different in each site
family vpls {
filter {
input MCoS;
}
policer {
input limit-3m; NOTE: No output policer configured. Output rate-limit is done by Shaping which is CoS friendly
}
}
}
}
}
NOTE: The scheduler-map configuration (i.e. CUSTOMER-A-SCHEDULER) is the same as our IP-VPN standard configuration.
[firewall family VPLS]
filter MCoS {
term PremiumRT_Class {
from {
forwarding-class premiumrt
#matches packet length – only for non RMS
packet-length 1-200;
}
then {
policer PRT-POLICER; #non-RMS CE only
loss-priority high;
forwarding-class premiumrt;
accept;
}
}
term PNRT_Class {
from {
forwarding-class nc_premiumnrt
}
then {
policer PNRT-POLICER; #non-RMS CE only
loss-priority low;
forwarding-class nc_premiumnrt;
accept;
}
}
term Business_Class {
from {
forwarding-class business
}
then {
policer BIZ-POLICER; #non-RMS CE only
loss-priority high;
forwarding-class business;
accept;
}
}
term Business_High_Class {
from {
forwarding-class business-critical
}
then {
policer BIZ-POLICER; #non-RMS CE only
loss-priority low;
forwarding-class business-critical;
accept;
}
}
term Standard_Class { # all other packets
then {
loss-priority high;
forwarding-class standard;
accept;
}
}
}
scheduler-maps {
CUSTOMER-A-SCHEDULER {
forwarding-class standard scheduler CUST-standard-scheduler;
forwarding-class business scheduler CUST-business-schduler
forwarding-class premiumrt scheduler CUST-premiumrt-scheduler;
forwarding-class nc_premiumnrt scheduler CUST-nc_premiumnrt-scheduler;
}
}
schedulers {
CUST-standard-scheduler {
transmit-rate remainder;
buffer-size remainder;
priority low;
}
CUST-business-scheduler {
transmit-rate <subscribed E-VPN BIZ value>;
buffer-size percent <% of E-VPN port size for BIZ>;
priority low;
}
# use exact for non-IQ2E card and rate-limit for IQ2E card.
CUST-premiumrt-scheduler {
transmit-rate <subscribed E-VPN PRT value> exact;
buffer-size percent <% of E-VPN port size for PRT>;
priority high;
}
# This E-VPN PNRT class will not be used for Juniper PE router Routing Protocols since the customer’s Routing Protocol will be transparent to E-VPN network (transparent to Juniper PE routers)
CUST-nc_premiumnrt-scheduler {
transmit-rate <SUBSCRIBED E-VPN PNRT COS >;
buffer-size percent <% of E-VPN port size for PNRT>;
priority high;
drop-profile-map loss-priority low protocol any drop-profile premiumnrt;
}
}
I have converted it to IOS-XR but need some advice from expert to verify it.
class-map match-any nc_premiumnrt
match precedence 4
match precedence 6
match precedence 7
class-map match-all premiumnrt
match precedence 5
class-map match-all standard-high
match precedence 3
class-map match-all standard
match precedence 0
class-map match-all business
match precedence 1
class-map match-all business-critical
match precedence 2
!
policy-map CUSTOMER_A_OUT
class premiumnrt
priority level 1
police rate remainder < remainder subscribed E-VPN units > burst < % remainder subscribed E-VPN units >
class business
police rate <subscribed E-VPN BIZ units > burst < % subscribed E-VPN BIZ units >
priority level 2
class premiumnrt
police rate <subscribed E-VPN PRT units > burst < % subscribed E-VPN PRT units >
priority level 1
class nc_premiumrt
police rate <subscribed E-VPN PNRT units > burst < % subscribed E-VPN PNRT units >
priority level 2
random-detect
random-detect precendence 0 20 40 5 << depends on drop-profiles
!
policy-map MCOS
class premiumnrt
police rate XXX
priority level 1
class nc_premiumnrt
police rate XXXX
priority level 1
class business
police rate XXXX
priority level 1
class business-critical
police rate XXXX
priority 2
class standard
police rate XXXX
priority 1
!
policy-map 3M-CUSTOMER_A_OUT
class class-default
shape average 3000000
service-policy CUSTOMER_A_OUT
!
policy-map 3M-CUSTOMER_A_IN
class class-default
shape average 3000000
service-policy MCOS
!
interface GigabitEthernet3/0/1.1
service-policy output 3M-CUSTOMER_A_OUT
service-policy input 3M-CUSTOMER_A_IN
!
I have 1 issue where I’m not how to match packet-length 1-200. The only matching of packet-length I can create is at access-list as follow but I’m unable to apply it under policy-map class X.
ipv4 access-list VPLS-MCOS
10 permit ipv4 any any packet-length 1-200
Any insight would be great.
Cheers,
Jason Kalai (JK)
06-02-2014 11:53 AM
Hi Jason,
reading through your junos config I noticed a classic hierarchical policy-map with classes and their priority/bw and a parent shaper.
That you converted to MQC/XR qos cli correctly!
Few comments however:
- mind the shaper burst or configure it.
- mind the policer burst and set the desired yellow and red bursts and handlers (xmit/drop etc)
Unfortunately, today we dont have any packet length match in QOS, that is a 53 deliverable most likely.
We can use packet length matching for BGP flow spec if that is of any interest.
Check the asr9000 quality of service archtiecture doc on support forums for some more details on QOS if you're interested.
Also cisco live session ID 2904 from Orlando /2013 and SanFran this year 2014 have some good stuff on qOS.
regards!
xander
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide