cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2182
Views
0
Helpful
1
Replies

JUNOS to IOS-XR QoS

Kalai Arasu Thankarajoo
Cisco Employee
Cisco Employee

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)

1 Reply 1

xthuijs
Cisco Employee
Cisco Employee

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