Description

This article explains why traffic is classified into Assured-Forwarding (AF) and Expedite-Forwarding (EF) forwarding classes when using the default class-of-service configuration in MX series routers. A solution is also provided to avoid unnecessary drops.

Symptoms

In VPLS routing-instances with the default class-of-service configuration, traffic is sent into one of two forwarding classes:

  • Assured-Forwarding

    Or
  • Expedite-Forwarding

Physical interface: xe-0/0/0, Enabled, Physical link is Up
Interface index: 123, SNMP ifIndex: 620, Generation: 195
Link-level type: Ethernet-VPLS, MTU: 9192, MRU: 9200, LAN-PHY mode, Speed: 10Gbps, BPDU Error: None, MAC-REWRITE Error: None, Loopback: None, Source filtering: Disabled, Flow control: Enabled
Pad to minimum frame size: Disabled
Device flags : Present Running
Interface flags: SNMP-Traps Internal: 0x4000
Link flags : None
CoS queues : 8 supported, 8 maximum usable queues

<..>
Egress queues: 8 supported, 4 in use
Queue counters:        Queued packets Transmitted packets Dropped packets
0 best-effort            209109008134        209109008134               0
1 expedited-forwarding       42908349           142908349               0
2 assured-forwarding        278526003           278226502          299501
3 network-control           319083299           319083299               0
<..>

Solution

Remote PE router receives traffic with DSCP markings. The default behavior in MX-Series routers with Modular Port Concentrators (MPC) is to copy the 3 most significant bits from the DSCP field into the exp bits of the MPLS label. When no-tunnel-services is configured in the [routing-instance protocols vpls] stanza, the default exp classifier is applied to the label-switched interface (LSI).  A packet that reaches the destination PE will be classified by that classifier, which will send the packets to the Assured-Forwarding or Expedited-Forwarding classes (depending on the markings). Below is the classifier setting:

user@Router> show class-of-service classifier type exp
Classifier: exp-default, Code point type: exp, Index: 10
Code point Forwarding class       Loss priority
000        best-effort            low
001        best-effort            high
010        expedited-forwarding   low
011        expedited-forwarding   high
100        assured-forwarding     low
101        assured-forwarding     high
110        network-control        low
111        network-control        high

To fix this behavior and send traffic to the best-effort queue instead of Assured-Forwarding or Expedited-Forwarding, perform the following:

 1. Confirm that the exp classifier is applied to the interface:

user@Router> show class-of-service routing-instance
Routing instance: CE-4.VPLS

Logical interface: lsi.235929856, Index: 512
Object           Name          Type   Index
Classifier       exp-default   exp    10

2. Create a custom exp classifier to send all AF/EF traffic into BE queue:

[edit]
user@Router# show class-of-service classifiers exp exp-default-override
classifiers {
       exp exp-default-override {
               forwarding-class best-effort {
                       loss-priority low code-points [ 000 010 100 ];
                       loss-priority high code-points [ 001 011 101 ];
               }
               forwarding-class network-control {
                       loss-priority low code-points 110;
                       loss-priority high code-points 111;
               }
       }
}

Set commands:

[edit]
user@Router# show class-of-service classifiers exp exp-default-override | display set
set class-of-service classifiers exp exp-default-override forwarding-class best-effort loss-priority low code-points 000
set class-of-service classifiers exp exp-default-override forwarding-class best-effort loss-priority low code-points 010
set class-of-service classifiers exp exp-default-override forwarding-class best-effort loss-priority low code-points 100
set class-of-service classifiers exp exp-default-override forwarding-class best-effort loss-priority high code-points 001
set class-of-service classifiers exp exp-default-override forwarding-class best-effort loss-priority high code-points 011
set class-of-service classifiers exp exp-default-override forwarding-class best-effort loss-priority high code-points 101
set class-of-service classifiers exp exp-default-override forwarding-class network-control loss-priority low code-points 110
set class-of-service classifiers exp exp-default-override forwarding-class network-control loss-priority high code-points 111

3. Apply the classifier to the desired routing-instance (use the wildcard 'all' to apply to all routing-instances):

      [edit]   
      user@Router# show class-of-service routing-instances all                         
      classifiers {                                              
             exp exp-default-override; {                   
             }   
      }  
Set command:

[edit]
user@Router# show class-of-service routing-instances | display set
set class-of-service routing-instances all classifiers exp exp-default-override

4. Verify that the classifier is correctly applied:

[edit]
user@Router# commit and-quit
commit complete
Exiting configuration mode

user@Router> show class-of-service routing-instance
Routing instance: CE-4.VPLS

Logical interface: lsi.235929856, Index: 512
Object Name Type Index
Classifier exp-default-override exp 37746

jjsalas@Contrabando> show class-of-service classifier name exp-default-override
Classifier: exp-default-override, Code point type: exp, Index: 37746
Code point           Forwarding class          Loss priority
000                  best-effort               low
001                  best-effort               high
010                  best-effort               low
011                  best-effort               high
100                  best-effort               low
101                  best-effort               high
110                  network-control           low
111                  network-control           high

Related Information