Segment Routing v6 Configuration Guide for Cisco 8000 Series Routers, Cisco IOS XR Releases

PDF

Segment Routing v6 Configuration Guide for Cisco 8000 Series Routers, Cisco IOS XR Releases

Explicit Paths

Want to summarize with AI?

Log in

Explains how explicit SRv6-TE paths use predefined uSIDs and SID carriers to provide deterministic forwarding, policy enforcement, predictable performance, resource optimization, and failover.


An SRv6 TE explicit path is a traffic engineering route in IPv6 networks that:

  • uses a predefined list of Segment Identifiers (SIDs)

  • determines the precise forwarding path for packets, giving direct control over how traffic moves through the network, and

  • allows segment lists to include uSIDs, uSID carriers, or a mix of both.

Benefits of explicit paths

Explicit paths provide several advantages in traffic engineering:

  • Precise traffic control: You can specify the exact route that packets take, ensuring traffic follows your preferred path through the network.

  • Predictable performance: By defining the path, you avoid unexpected routing changes, leading to consistent and reliable application performance.

  • Enhanced policy enforcement: You can meet specific service requirements—such as low latency, security, or bandwidth guarantees—by choosing the path that best fits your policy.

  • Improved resource utilization: You can balance traffic loads or avoid congested links by selecting less utilized routes, optimizing network efficiency.

  • Deterministic failover: In case of a failure, you can design backup explicit paths, ensuring quick and predictable recovery.


Guidelines for SRv6-TE explicit path

Address Adj-SID preference

When configuring explicit paths using IP addresses of links, consider the SRv6-TE process's Adj-SID preferences.

The SRv6-TE process prefers the protected Adj-SID of the link if one is available. Furthermore, it prefers a manual-protected Adj-SID over a dynamic-protected Adj-SID. You can configure the path to prefer protected or unprotected Adj-SIDs, or to use only protected or unprotected Adj-SIDs, based on your specific network requirements.

Enable Segment List SID validation

Enable SRv6-TE explicit segment list SID validation. This allows the head-end node to validate the SIDs in an explicit SRv6-TE segment list against the SR-TE topology database.

Compose segment lists

Compose segment lists using uSIDs, uSID carriers, or a combination of both.


Configure SRv6-TE policy with explicit path

Procedure

  1. Create a segment list with SRv6 uSIDs.

    Example:

    Router(config)# segment-routing traffic-eng 
    Router(config-sr-te)# segment-lists
    Router(config-sr-te-segment-lists)# srv6
    Router(config-sr-te-sl-global-srv6)# sid-format usid-f3216 
    Router(config-sr-te-sl-global-srv6)# exit
    Router(config-sr-te-segment-lists)# segment-list p1_r8_1
    Router(config-sr-te-sl)# srv6
    Router(config-sr-te-sl-srv6)# index 10 sid FCBB:BB00:10:feff::
    Router(config-sr-te-sl-srv6)# index 15 sid FCBB:BB00:100:fe00::
    Router(config-sr-te-sl-srv6)# index 20 sid FCBB:BB00:2::
    Router(config-sr-te-sl-srv6)# index 30 sid FCBB:BB00:3::
    Router(config-sr-te-sl-srv6)# index 40 sid FCBB:BB00:4::
    Router(config-sr-te-sl-srv6)# index 50 sid FCBB:BB00:5::
    Router(config-sr-te-sl-srv6)# index 60 sid FCBB:BB00:6::
    
  2. Create the SRv6-TE policy.

    Example:

    Router(config-sr-te)# policy POLICY1
    Router(config-sr-te-policy)# srv6 locator loc1 binding-sid dynamic behavior ub6-encaps-reduced
    Router(config-sr-te-policy)# color 10 end-point ipv6 FCBB:BB00:2::1
    Router(config-sr-te-policy)# candidate-paths
    Router(config-sr-te-policy-path)# preference 100
    Router(config-sr-te-policy-path-pref)# explicit segment-list p1_r8_1
    Router(config-sr-te-pp-info)# exit
    Router(config-sr-te-policy-path-pref)# exit
  3. View the show run configuration.

    Example:

    Router# show running-config  
    
    . . .
    
    segment-routing
     traffic-eng
      segment-lists
       srv6
        sid-format usid-f3216
       !
       segment-list p1_r8_1
        srv6
         index 10 sid FCBB:BB00:10:feff::
         index 15 sid FCBB:BB00:100:fe00::
         index 20 sid FCBB:BB00:2::
         index 30 sid FCBB:BB00:3:::
         index 40 sid FCBB:BB00:4::
         index 50 sid FCBB:BB00:5::
         index 60 sid FCBB:BB00:6::
        !
       !
      !
      policy POLICY1
       srv6
        locator loc1 binding-sid dynamic behavior ub6-encaps-reduced
       !
       color 10 end-point ipv6 fcbb:bb00:2::1
       candidate-paths
        preference 100
         explicit segment-list p1_r8_1
         !
        !
       !
      !
     !
    !
    
    
  4. Verify the SR-TE policy configuration.

    Example:

    Router# show segment-routing traffic-eng policy name srte_c_10_ep_fcbb:bb00:2::1 d
    
    SR-TE policy database
    ---------------------
    
    Color: 10, End-point: fcbb:bb00:2::1
      Name: srte_c_10_ep_fcbb:bb00:2::1
      Status:
        Admin: up  Operational: down for 00:01:30 (since Oct 31 21:33:24.090)
      Candidate-paths:
        Preference: 100 (configuration) (inactive)
          Name: POLICY1
          Requested BSID: dynamic
          Constraints:
            Protection Type: protected-preferred
            Maximum SID Depth: 13 
          Explicit: segment-list p1_r8_1 (inactive)
            Weight: 1, Metric Type: TE
              SID[0]: FCBB:BB00:10:feff::
              SID[1]: FCBB:BB00:100:fe00::
              SID[2]: FCBB:BB00:1::
              SID[3]: FCBB:BB00:1:fe00::
              SID[4]: FCBB:BB00:fe00::
              SID[5]: FCBB:BB00:5::
              SID[6]: FCBB:BB00:6::
          SRv6 Information:
            Locator: loc1
            Binding SID requested: Dynamic
            Binding SID behavior: End.B6.Encaps.Red
      Attributes:
        Forward Class: 0
        Steering labeled-services disabled: no
        Steering BGP disabled: no
        IPv6 caps enable: yes
        Invalidation drop enabled: no
        Max Install Standby Candidate Paths: 0
    
    

SRv6-TE explicit segment list SID validation

SRv6-TE explicit segment list SID validation is a process that evaluates whether an SR policy's candidate path's explicit segment list is valid and therefore usable. The head-end node performs this validation by checking if the specified hops are present in the SR-TE topology database.

Segment list SID validation

When enabled, this validation occurs at two key times:

  • Before programming the SR policy.

  • After an IGP topology change.

If the validation process identifies issues:

  • The segment list is declared invalid if validation fails.

  • An SR policy candidate path is declared invalid if it contains no valid segment lists.

  • An SR policy is declared invalid if it has no valid candidate paths.


Usage Guidelines for SRv6 explicit segment list SID validation

Enable or disable segment list SID validation

Enable segment list SID validation globally for all SRv6 explicit segment lists or for a specific SRv6 segment list. If SIDs in an explicit segment list are expected to not be found in the head-end (for example, in a multi-domain case), you can disable the topology check for that specific segment list.

Distribute SR-TE topology from appropriate sources

Distribute the SR-TE topology from the correct source for accurate path computation. For intra-domain paths, the SR-TE topology should be distributed from an Interior Gateway Protocol (IGP). For multi-domain paths, use BGP-LS for distribution.

Ensure SRv6 segment lists are not empty

Ensure that the SRv6 segment list in an explicit candidate path of an SRv6 policy is not empty. An empty segment list will prevent the policy from steering traffic correctly.

Maintain consistent data plane types within segment lists

Ensure all segments within a segment list share the same data plane type. All segments in a given segment list must consistently be either SRv6 or SR-MPLS.

Validate SIDs against local parameters

All SIDs in a segment list are validated against the local SID block and SID format. Top SID validation occurs by performing path resolution using the top SID. A segment list is also validated against the Maximum Segment Depth (MSD).


Enable SID validation globally for all SRv6 explicit segment lists

Before you begin

Verify if the SR-TE topology is available on the headend PCC router using the show segment-routing traffic-eng topology command.

Procedure

  1. Enable SID validation globally.

    Example:

    Router(config)# segment-routing traffic-eng
    Router(config-sr-te)# segment-lists
    Router(config-sr-te-segment-lists)# srv6
    Router(config-sr-te-sl-global-srv6)# topology-check

    The following example shows how to enable SID validation globally and disable SID validation for a specific SRv6 explicit segment list:

    Router(config)# segment-routing traffic-eng
    Router(config-sr-te)# segment-lists
    Router(config-sr-te-segment-lists)# srv6
    Router(config-sr-te-sl-global-srv6)# topology-check
    Router(config-sr-te-sl-global-srv6)# exit
    Router(config-sr-te-segment-lists)# segment-list p1_r8_1
    Router(config-sr-te-sl)# srv6
    Router(config-sr-te-sl-srv6)# no topology-check
    
    
  2. Verify the running configuration.

    Example:

    
    segment-routing
     traffic-eng
      segment-lists
       srv6
        topology-check
       !
       segment-list p1_r8_1
        srv6
         no topology-check
        !
       !
      !
     !
    !
    
    
  3. Verify the SID validation globally for all SRv6 explicit segment lists.

    Example:

    Router# show segment-routing traffic-eng policy name srte_c_10_ep_fcbb:bb00:2::1 detail
    
    SR-TE policy database
    ---------------------
    
    Color: 10, End-point: fcbb:bb00:2::1
      Name: srte_c_10_ep_fcbb:bb00:2::1
      Status:
        Admin: up  Operational: down for 00:04:12 (since Nov  7 19:24:21.396)
      Candidate-paths:
        Preference: 100 (configuration) (inactive)
          Name: POLICY1
          Requested BSID: dynamic
          Constraints:
            Protection Type: protected-preferred
            Maximum SID Depth: 13 
          Explicit: segment-list p1_r8_1 (inactive)
            Weight: 1, Metric Type: TE
              SID[0]: fccc:0:10:feff::
              SID[1]: fccc:0:100:fe00::
              SID[2]: fccc:0:1::
              SID[3]: fccc:0:1:fe00::
              SID[4]: fccc:0:fe00::
              SID[5]: fccc:0:5::
              SID[6]: fccc:0:6::
          SRv6 Information:
            Locator: loc1
            Binding SID requested: Dynamic
            Binding SID behavior: End.B6.Encaps.Red
      Attributes:
        Forward Class: 0
        Steering labeled-services disabled: no
        Steering BGP disabled: no
        IPv6 caps enable: yes
        Invalidation drop enabled: no
        Max Install Standby Candidate Paths: 0