MPLS QoS overview
SR Linux supports QoS capabilities in MPLS networks using traffic classification and marking.
MPLS traffic classification and marking
SR Linux supports EXP-inferred LSPs as described in RFC 3270, which allow multiple classes of service to be transported by a single LSP. The EXP marking of each packet determines the correct per-hop behavior (PHB) to apply to each router.
On SR Linux, the mapping between an EXP value and a PHB is provided by an MPLS traffic-class classifier policy. A single router can have one or more of these policies so that some subinterfaces can have one policy applied and other subinterfaces can have another policy applied. Each traffic-class classifier policy consists of multiple mapping entries, each of which maps one unique EXP value to a (forwarding class, drop probability) tuple.
SR Linux also supports MPLS traffic-class rewrite policies. If MPLS-encapsulated packets are transmitted out an egress subinterface with such a policy bound to it, the EXP field in all the pushed labels of these packets is based on the mapping rules of the policy. MPLS traffic-class rewrite rules associate a forwarding class or a (forwarding class, drop probability) tuple with an EXP rewrite value.
SR Linux does not support the short-pipe model of RFC 3270.
Ingress LER
When an SR Linux router that is acting as an ingress label edge router (LER) matches an IP packet to a label distribution protocol (LDP) tunnel or a static MPLS forwarding entry, the following apply.
The ingress LER determines the forwarding class and drop probability of the packet from the IP DSCP of the received unlabeled packet, based on the DSCP classifier policy applied to the ingress subinterface (or the default DSCP classifier policy if there is no explicit association). If an MPLS traffic-class (TC) policy is applied to the ingress subinterface, it has no effect.
If a DSCP rewrite policy is applied to the egress subinterface, the IP header DSCP value is rewritten before the egress MPLS encapsulation is applied.
If no MPLS TC rewrite policy is associated with the egress subinterface, EXP = 0 is written into all pushed labels.
If an MPLS TC rewrite policy is associated with the egress subinterface, and it matches the forwarding class (and possibly also the drop probability) of the packet, the EXP provided by the mapping rule is written into the EXP field of all pushed labels.
If ECN is enabled globally, and the packet hits an ECN slope in a congested queue such that the ECN marking should be 11, the ECN field of the packet is modified accordingly, and the DSCP field is also remarked according to the ECN DSCP policy.
Transit LSR
When an SR Linux router that is acting as a transit label switching router (LSR) matches an MPLS packet to a swap ILM entry, the following apply.
The transit LSR determines the forwarding class and drop probability of the packet from the EXP in the topmost label stack entry of the received labeled packet (before popping), based on the MPLS TC classifier policy applied to the ingress subinterface (or the default MPLS TC classifier policy, if there is no explicit association).
If a DSCP classifier policy is applied to the ingress subinterface, it has no effect on the packet classification.
If a DSCP rewrite policy is applied to the egress subinterface, it has no effect on the transmitted MPLS packet.
If no MPLS TC rewrite policy is associated with the egress subinterface, the classified FC of the packet is written as a value 0 to 7 into the EXP field of all pushed labels. This behavior does not guarantee that the EXP of the popped labels matches the EXP of the pushed labels (that is, if a non-default MPLS TC classifier policy is applied to the ingress subinterface).
If an MPLS TC rewrite policy is associated with the egress subinterface, and it matches the forwarding class (and possibly also the drop probability) of the packet, the EXP provided by the mapping rule is written into the EXP field of all pushed labels.
If ECN is enabled globally, it has no effect on the MPLS packet. The MPLS packet is considered non-ECT capable, even if the buried IP ECN bits indicate otherwise. The IP ECN field is not modified.
PHP LSR
When an SR Linux router that is acting as a penultimate hop popping (PHP) LSR matches an MPLS packet to a pop and swap-to-implicit-null ILM entry, the following apply.
The PHP LSR determines the forwarding class and drop probability of the packet from the EXP in the topmost label stack entry of the received labeled packet (before popping), based on the MPLS TC classifier policy applied to the ingress subinterface (or the default MPLS TC classifier policy, if there is no explicit association). If a DSCP classifier policy is applied to the ingress subinterface, it has no effect on the classification of the packet.
If an MPLS TC rewrite policy is applied to the egress subinterface, it has no effect on the transmitted IP packet.
If no DSCP rewrite policy is associated with the egress subinterface, the DSCP field of the IP payload packet is transmitted unchanged. There is no attempt to copy the EXP field into the IP DSCP of the IP payload packet.
If a DSCP rewrite policy is associated with the egress subinterface, and it matches the forwarding class (and possibly also the drop probability) of the packet, the DSCP provided by the mapping rule is written (as an override) into the DSCP field in the transmitted IP packet. This behavior is consistent with the uniform model of RFC 3270.
If ECN is enabled globally, it has no effect on the PHP packet. The PHP packet is considered non-ECT capable even if the IP ECN bits indicate otherwise. The IP ECN field is not modified.
Egress LER
When an SR Linux router that is acting as an egress LER matches an MPLS packet to a pop ILM entry that leads to all labels being popped, the following apply.
The egress LER determines the forwarding class and drop probability of the packet from the EXP in the topmost label stack entry of the received labeled packet (before popping), based on the mpls-tc classifier policy applied to the ingress subinterface (or the default mpls-tc classifier policy, if there is no explicit association).
If a DSCP classifier policy is applied to the ingress subinterface, it has no effect on the classification of the packet.
If an mpls-tc rewrite policy is applied to the egress subinterface, it has no effect on the transmitted IP packet.
If no DSCP rewrite policy is associated with the egress subinterface, the DSCP field of the IP payload packet is transmitted unchanged. There is no attempt to copy the EXP field into the IP DSCP of the IP payload packet. This behavior is consistent with the pipe model of RFC 3270.
If a DSCP rewrite policy is associated with the egress subinterface, and it matches the forwarding class (and possibly also the drop probability) of the packet, the DSCP provided by the mapping rule is copied into the IP DSCP of the transmitted IP packet, overwriting the previous value. This behavior is consistent with the uniform model of RFC 3270.
If ECN is enabled globally, it has no effect on the terminating MPLS packet. The terminating packet is considered non-ECT capable even if the IP ECN bits indicate otherwise. The IP ECN field is not modified.
Default MPLS traffic-class classifier policy
The following table shows the default MPLS TC classifier policy.
Traffic class (EXP) |
Forwarding class |
Drop probability |
---|---|---|
0 |
0 |
Low |
1 |
1 |
Low |
2 |
2 |
Low |
3 |
3 |
Low |
4 |
4 |
Low |
5 |
5 |
Low |
6 |
6 |
Low |
7 |
7 |
Low |