SRv6 on NCS 500/5500: SRv6 QoS

5 minutes read

Overview

In our previous tutorials in this series, we covered various aspects on SRv6 transport implementation on the NCS 500/5500/5700 series platforms. In this tutorial, we will cover another important aspect, i.e. QoS propagation for SRv6 transport on the NCS 500 and NCS 5500 series platforms. The following figure shows a typical SRv6 encapsulated traffic and from the same it is evident that managing core quality of service for an SRv6 transport network is as simple as managing IPv6 QoS. The simplest way would be to manage the same, by use of the IPv6 DSCP or Precedence field in the SRv6 encapsulation field.

Figure 1: Explaining QoS Bits in the SRv6 (IPv6) Header QoS-Filed-SRv6-Header

SRv6 QoS Options/Modes

The following table summerizes the qos modes available.

Mode #Ingress Policy-mapL2VPNVPNv4VPNv6
1: DefaultNATC ==0TC == 0TC ==0
2: PropagationNAIPv6 Prec == PCPIPv6 DSCP = IPv4 DSCPIPv6 TC == IPv6 TC
3: Precedenceset qos-group XIPv6 Prec == XIPv6 Prec == XIPv6 Prec == X
4: DSCPset ip encapsulation class-of-service XIPv6 DSCP == XIPv6 DSCP == XIPv6 DSCP == X

1: Default

Coming to platform implementation on the NCS 500/5500 and 5700 series routers, by default the QoS fields in the SRv6 header are not set.

Figure 2: Explaining QoS Default Mode default-qos-mode

2: Propagation Mode

In this mode QoS bits from the actual payload is propagated to the imposed SRv6 header QoS field in the following manner:

  • L2VPN : PCP bits of the l2 vlan header are copied to IPv6 Precedence field of the SRv6 header
  • VPNv4 : DSCP bits of the IPv4 header are copied to IPv6 DSCP field of SRv6 header
  • VPNv6 : DSCP (TC) bits of the IPv6 header copied to IPv6 DSCP (TC) field of SRv6 header

Figure 3: Explaining QoS propagation Mode propagate-mode

3: Ingress Policy Map for IPv6 precedence

In this mode we can apply an ingress policy-map on the UNI i.e. the interface where customer traffic is entering the ingress PE. The use of set qos-group <0-7> within the classes of the policy-map sets the IPv6 Precedence corresponding to the qos-group value.

This Mode is available from IOS XR 7.7.x. The below policy-map for example will set IPv6 precedence values as 7, 5 and 1 respectively for the traffic matching PRIO, DATA and default classes while egressing out of the Core interface.

policy-map srv6-qos-group
 class PRIO
  set qos-group 7
 ! 
 class DATA
  set qos-group 5
 ! 
 class class-default
  set qos-group 1
 ! 
 end-policy-map
! 
end

Figure 4: Explaining Policy-Map based DSCP with qos-group

pmap

4: Ingress Policy Map for IPv6 DSCP

In this mode we can apply an ingress policy-map on the UNI i.e the interface where customer traffic is entering the ingress PE. There is a new modular qos CLI (MQC) introduced to use set ip encapsulation class-of-service <0-63> within the classes of the policy-map. This marking action sets the IPv6 DSCP values corresponding to the class-of-service value. This mode brings in more granularity to the QoS options within the SRv6 Core.

This Mode is available from IOS XR 24.2.x . The below policy-map for example will set IPv6 DSCP values as 56 (cs7), 40 (cs5) and 8(cs1) respectively for the traffic matching PRIO, DATA and default classes while egressing out of the Core interface.

policy-map srv6-ip-encap
 class PRIO
  set ip encapsulation class-of-service 56
 ! 
 class DATA
  set ip encapsulation class-of-service 40
 ! 
 class class-default
  set ip encapsulation class-of-service 8
 ! 
 end-policy-map

Figure 5: Explaining Policy-Map based DSCP with ip encapsulation class-of-service

pmap-extend

Configurations on NCS 5500/500 Systems

Configurations on NCS 5500/500 system as discussed in our previous articles are done via hw-module profiles.

Default Mode

By default, there is no traffic-class related configuration needed. Only the basic hw-module profile to enable SRv6 needs to configured.

hw-module profile segment-routing srv6 mode micro-segment format f3216

Propagation Mode

The hardware module profile is appended with traffic-class propagate option.

hw-module profile segment-routing srv6 mode micro-segment format f3216 
 encapsulation
  traffic-class propagate

Ingress Policy Map for IPv6 precedence

hw-module profile segment-routing srv6 mode micro-segment format f3216
 encapsulation
  l2-traffic
   traffic-class propagate
  !
  l3-traffic
   traffic-class policy-map
  !

Along with the hardware module profile an ingress policy-map marking qos-group values must be applied to the UNI interface. In this article we will refer to the sample policy-map documented in previous section.

interface TenG 0/0/0/1
 service-policy input srv6-qos-group
 . . . 
 . . .

Ingress Policy Map for IPv6 DSCP

hw-module profile segment-routing srv6 mode micro-segment format f3216
 encapsulation
   traffic-class policy-map-extend    

Along with the hardware module profile an ingress policy-map marking qos-group values must be applied to the UNI interface. In this article we will refer to the sample policy-map documented in previous section.

interface TenG 0/0/0/1
 service-policy input srv6-ip-encap
 . . . 
 . . .

Configurations for NCS 5700 Systems

NCS 5700 platforms don’t need hw-module profile. QoS encapsulations options are configured under global “segment-routing srv6” configurations. NCS 5700 also gives more flexibility in terms of opting for policy-map based mode and propagation modes on services selectively.

Default Mode

No additional config is needed.

Propagation Mode

Propagation mode on these platforms is configured under global segment routing configuration.

segment-routing
 srv6
  encapsulation
   traffic-class propagate
  !

Ingress Policy Map for IPv6 precedence

For this mode, we must have the propagation mode enabled under global segment-routing configuration. Once, that is in place, we can apply the policy-map on ingress to set IPv6 prec on SRv6 header.

segment-routing
 srv6
  encapsulation
   traffic-class propagate
  !
interface TenG 0/0/0/1
 service-policy input srv6-qos-group
 . . . 
 . . .

Ingress Policy Map for IPv6 DSCP

For this mode, we must have the propagation mode enabled under global segment-routing configuration. Once, that is in place, we can apply the policy-map on ingress to set IPv6 DSCP on SRv6 header.

segment-routing
 srv6
  encapsulation
   traffic-class propagate
  !
interface TenG 0/0/0/1
 service-policy input srv6-ip-encap
 . . . 
 . . .

Restrictions & Best Practices

Few Points to Note :

  • Setting of qos-group and ip encapsulation class-of-service is not supproted together on both ncs 5500/500 and 5700 platforms
  • on the NCS 5500 & 500 Platform set ip encapsulation class-of-service is allowed when the specific hardware module profile is applied.
  • Change in the srv6 hardware module profile needs a reload of the router.

Conclusion

In this article we discussed the different qos modes available for SRv6 transport on the NCS 5500/5700 platform as of the latest IOS XR 24.2.1 release. While propagation mode is the simplest way to maintain QoS with respect to payload QoS. Use of IPv6 precedence or DSCP via the policy-map options (either qos-group or ip encapsulation class-of-service) gives better control and granularity over the QoS options for different services within the same PE.

Leave a Comment