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

Path tracing in SRv6 Network

Want to summarize with AI?

Log in

Explains how SRv6 path tracing collects per-hop timing and interface-load information to reveal forwarding behavior and support detailed path diagnostics.


An SRv6 path tracing is a network diagnostic feature that

  • records the actual packet path as a sequence of interface IDs and timestamps

  • measures end-to-end delay and per-hop delay between network nodes, and

  • identifies the load on each egress interface along the packet delivery path.

Table 1. Feature History Table

Feature Name

Release

Description

Path Tracing Midpoint Node, Source and Sink Nodes

Release 25.4.1

Introduced in this release on: Fixed Systems (8700 [ASIC: K100])(select variants only*)

*This feature is supported on:

  • 8711-48Z-M

  • 8011-32Y8L2H2FH

  • 8011-12G12X4Y-A/D

Path Tracing Midpoint Node

Release 25.1.1

Introduced in this release on: Fixed Systems (8010 [ASIC: A100])

This feature is now supported on:

  • 8011-4G24Y4H-I

Path Tracing Source and Sink Nodes

Release 25.1.1

Introduced in this release on: Fixed Systems (8700 [ASIC: K100])(select variants only*)

*This feature is supported on Cisco 8712-MOD-M routers.

Path Tracing Midpoint Node

Release 24.4.1

Introduced in this release on: Fixed Systems (8200 [ASIC: P100], 8700 [ASIC: P100, K100])(select variants only*); Modular Systems (8800 [LC ASIC: P100])(select variants only*)

*This feature is supported on:

  • 8212-48FH-M

  • 8711-32FH-M

  • 8712-MOD-M

  • 88-LC1-36EH

  • 88-LC1-12TH24FH-E

  • 88-LC1-52Y8H-EM

Path Tracing Source and Sink Nodes

Release 24.4.1

Introduced in this release on: Fixed Systems (8200 [ASIC: P100], 8700 [ASIC: P100])(select variants only*); Modular Systems (8800 [LC ASIC: P100])(select variants only*)

*This feature is supported on:

  • 8212-48FH-M

  • 8711-32FH-M

  • 88-LC1-36EH

  • 88-LC1-12TH24FH-E

  • 88-LC1-52Y8H-EM

Path Tracing Source and Sink Nodes

Release 24.1.1

You can now view the Path Tracing Source and Sink nodes, which are responsible for handling IPv6 transit traffic. This feature also provides full characterization of the packet delivery path which includes real-time information to check the current status of the network, such as whether packets are being diverted due to a breach. It also allows for the pinpointing of the exact location of problems between routers, and ensures that traffic flows according to specified priorities for Quality of Service (QoS) enforcement.

This feature introduces a new behavior keyword utef under the route (static command.

Path Tracing Midpoint Node

Release 7.8.1

Path Tracing (PT) provides a log or record of the packet path as a sequence of interface IDs along with its time stamp. In Path Tracing, a node can behave as a source, midpoint, or sink node.

The Path Tracing Midpoint feature is implemented in this release which measures the hop-by-hop delay, traces the path in the network and collects egress interface load information and interface Id, and stores them in the Midpoint Compressed Data (MCD) section of Hop-by-Hop Path Tracing (HbH-PT) header.

This feature provides visibility to the Path Tracing Midpoint node that handles IPv6 transit in Path Tracing and full characterization of the packet delivery path. It provides real time information and the current status of the network.

This feature introduces the following command:

Operators do not know the actual path that the packets take within their network. This makes operations, such as troubleshooting routing problems, or verifying Equal-Cost Multipath (ECMP), a complex problem. Also, operators want to characterize the network in terms of delay and load on a per-hop basis. Knowledge of the Path Tracing Midpoint helps the operators to troubleshoot the routing problems faster.

Benefits of path tracing

  • Detect the actual path the packet takes between any two nodes in network (A and Z).

  • Measure the end-to-end delay from A to Z.

  • Measure the per-hop delay at each node on the path from A to Z.

  • Detects the load on each router that forwards the packet from A to Z


Usage Guidelines for SRv6 Path Tracing

Be aware of these limitations and supported configurations when implementing path tracing to ensure expected functionality.

  • Support for PT Midpoint, PT Source, and PT Sink functionalities starts from Cisco IOS XR Release 24.1.1.

  • PT Source and Sink nodes are not supported. The system can still work as PT midpoint for other devices acting as Source or Sink in the PT network path.

  • No support for interface load calculation and recording on IPv6 Path Tracing MidPoint Node. MCD contains interface load value of 0.

  • SRv6 Segment Endpoint Midpoint PT (Update DA from SRH.SL and PT MCD update) at midpoint node is not supported. SRv6 endpoint function will not execute properly.

  • IPv6 and SRv6 Path Tracing Midpoint Node are supported. SRv6 PT midpoint support Micro-SID (uSID) Shift and Forward action with MCD update.

  • Path tracing on Bundled Interfaces and subinterfaces is supported by configuring path-tracing interface-id on physical ports.

  • PT unaware IPv6 and SRv6 midpoint forwards transparently without PT update or may punt the packet locally and the control-plane drops the packet.

  • PT unaware SRv6 Segment Endpoint Midpoint Node will not execute SRv6 endpoint function. PT packet is forwarded transparently without PT update or punted locally and the control-plane drops the packet.


How SRv6 Path Tracing works

Summary

Actors involved in the path tracing process are:

  • PT Source Node: Generates and injects probe packets towards a destination node.

  • PT Midpoint Node: Transit nodes that perform IPv6 routing and may record or export Path Tracing information. This category includes:

    • PT-Aware Midpoint: Records PT information (MCD) in the HbH-PT header.

    • PT-Legacy Midpoint: Exports PT information directly to the collector.

    • PT-Unaware Midpoint: Performs routing without recording or exporting PT information.

  • PT Sink Node: Receives PT probes from the Source node, records its own PT information, and forwards them to a Regional Collector.

  • Regional Collector (RC): Receives PT probes, parses them, reconstructs the packet delivery path, and stores the data.

The Path Tracing process begins with a PT Source Node injecting probe packets into the network. These probes travel through various PT Midpoint Nodes, which may add their tracing data to a Hop-by-Hop Path Tracing (HbH-PT) header or export it directly. The PT Sink Node receives these probes, adds its own information, and sends them to a Regional Collector (RC). The RC then reconstructs the complete packet delivery path and timing details from the collected data.

Workflow

These stages describe how path tracing works.

  1. PT source node: Initiates a PT session by generating and injecting probe packets towards a destination.

  2. PT midpoint node: A transit node that performs IPv6 routing and, depending on its capability, records or exports path tracing information.

    • PT-aware midpoint: Records its PT information (Midpoint Compressed Data - MCD) into the probe's Hop-by-Hop Path Tracing (HbH-PT) header.

    • PT-legacy midpoint: Exports its PT information directly to a collector.

    • PT-unaware midpoint: Forwards probes without recording or exporting PT information.

  3. PT sink node: Receives PT probes, records its own Path Tracing information, and forwards the complete data to a Regional Collector.

  4. Regional collector (RC): Collects, parses, and reconstructs the packet delivery path from received PT probes for storage and analysis.


Configure path tracing in SRv6 network

To enable and configure path tracing functionality across different network roles (source, midpoint, sink) for monitoring packet paths.

Path tracing provides a log of the packet path, including interface IDs, timestamps, and delay metrics. This task outlines the necessary configurations for each node type to participate in a Path Tracing session.

Procedure

  1. Configuration example of Source node:

    1. Configure the performance measurement endpoint for path tracing and path assurance

      Example:

      
      Router(config)# performance-measurement
      Router(config-perf-meas)# endpoint ipv6 fccc:cc00:9000:fef1::
      Router(config-pm-ep)# path-tracing
      Router(config-pm-ep-ptrace)# session-id 1011
      Router(config-pm-ep-ptrace-sid)# segment-routing traffic-eng seg$
      Router(config-pm-ep-ptrace-sid)# probe-profile name PP_12_1
      Router(config-pm-ep-ptrace-sid)# source-address ipv6 1::1
      Router(config-pm-ep)# path-assurance
      Router(config-pm-ep-passurance)# session-id 1111
      Router(config-pm-ep-passurance-sid)# segment-routing traffic-eng$
      Router(config-pm-ep-passurance-sid)# probe-profile name PP_12_1
      
    2. Configure probe profile parameters.

      Example:

      
      Router(config)# performance-measurement
      Router(config-perf-meas)# path-tracing
      Router(config-pm-ptrace)# probe-profile name PP_12_1
      Router(config-pm-pr-profile)# tx-interval 3000
      Router(config-pm-pr-profile)# flow-label explicit 1000 2000 4000 8$
      Router(config-pm-pr-profile)# traffic-class from 16 to 128 increme$
    3. Configure Interface ID under path-tracing for the source node and for it to participate in the MCD updates inside the probe packets:

      Example:

      
      Router(config)# performance-measurement
      Router(config-pm)# interface FourHundredGigE0/0/0/1
      Router(config-pm-interf)# path-tracing
      Router(config-pm-interf-interf-id)# interface-id 200
      Router(config-pm-interf-time)# exit
    4. Verify the running configuration.

      Example:

      • Configure the endpoint with the probe profile name on the source node:
        
        performance-measurement
         endpoint ipv6 fccc:cc00:9000:fef1::
          path-tracing
           session-id 1011
            segment-routing traffic-eng seg$
            probe-profile name PP_12_1
            source-address ipv6 1::1
          path-assurance
           session-id 1111
            segment-routing traffic-eng$ 
            probe-profile name PP_12_1
            !
           !  
          !
        !
        Configure probe profile parameters:
        
        performance-measurement 
         path-tracing
          probe-profile name PP_12_1
           tx-interval 3000
           flow-label explicit 1000 2000 4000 8$
           traffic-class from 16 to 128 increme$
           !
          !
         !
        Configure Interface ID under Path-tracing for the Source node and for it to participate in the MCD updates inside the probe packets:
        
        performance-measurement
         interface FourHundredGigE0/0/0/1
          path-tracing
           interface-id 200
           exit
           !
          !
         !
        !
      • Running configuration example of Midpoint node:

        Configure the Interface ID under Path-tracing for the Midpoint node and for it to participate in the MCD updates inside the probe packets:

        
        performance-measurement
         interface FourHundredGigE0/0/0/1
          path-tracing
           interface-id 200
           exit
           !
          !
         !
        !
  2. Configure the Path Tracing midpoint node.

    1. Configure the Interface ID under Path-tracing for the Midpoint node and for it to participate in the MCD updates inside the probe packets:

      Example:

      
      
      Router(config)# performance-measurement
      Router(config-pm)# interface FourHundredGigE0/0/0/1
      Router(config-pm-interf)# path-tracing
      Router(config-pm-interf-interf-id)# interface-id 200
      Router(config-pm-interf-time)# exit
  3. Configure the Path Tracing sink node.

    1. Configure static routing for the SRv6 endpoint behavior.

      Example:

      
      Router(config)# router static
      Router(config-static)# address-family ipv6 unicast 
      Router(config-static-afi)# fccc:cc00:9000:fef1::/64 segment-routing srv6 endpoint behavior utef controller-address fccc:cc00:7::
      !
      
    2. Configure Interface ID under Path-tracing for the Sink node and for it to participate in the MCD updates inside the probe packets.

      Example:

      
      Router(config)# performance-measurement
      Router(config-pm)# interface FourHundredGigE0/0/0/1
      Router(config-pm-interf)# path-tracing
      Router(config-pm-interf-interf-id)# interface-id 200
      Router(config-pm-interf-time)# exit
    3. Verify the running configuration.

      Example:

      Configure Router Static:
      
      router static
       address-family ipv6 unicast 
        fccc:cc00:9000:fef1::/64 segment-routing srv6 endpoint behavior utef controller-address fccc:cc00:7::
        !
       !
      !
      Configure Interface ID under Path-tracing for the Sink node and for it to participate in the MCD updates inside the probe packets:
      
      performance-measurement
       interface FourHundredGigE0/0/0/1
        path-tracing
         interface-id 200
         exit
         !
        !
       !
      !
  4. Verify the path tracing configuration.

    It is good to check the target interface configuration and performance-measurement configuration for that interface. Verify using the show commands listed to check if the PT configuration is applied to the interface properly.

    Example:

    Source node verification
    Router# sh run performance-measurement
    performance-measurement
    probe-profile name foo
      tx-interval 6000
      flow-label from 100 to 300 increment 10
    !
    !
     
    Router# sh performance-measurement profile named-profile
    Endpoint Probe Measurement Profile Name: foo
      Profile configuration:
        Measurement mode                            : One-way
        Protocol type                               : TWAMP-light
        Type of service:
          TWAMP-light DSCP                          : 48
        TX interval                                 : 6000000 (effective: 6000000) uSec
        Destination sweeping mode                   : Disabled
        Liveness detection parameters:
          Multiplier                                : 3
          Logging state change                      : Disabled
     
        Hop Limit                                   : 255
        Flow Label Count                            : 21
          Flow Labels: 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240,
                        250, 260, 270, 280, 290, 300
        Packet Size Count                           : 0
        Traffic Class Count                         : 0
     
     
    Router#sh run performance-measurement
    performance-measurement
    endpoint ipv6 bbbb::
      path-assurance
       session-id 11
       !
      !
    !
    source-address ipv6 aaaa::
    !
    
    Router# sh performance-measurement endpoint
    Endpoint name: IPv6-bbbb::-vrf-default
      Source address              : Unknown
      VRF name                    : default
      Probe Measurement           : Enabled
      Profile Keys:
        Profile name              : default
        Profile type              : Endpoint Probe Measurement
    
    Run this show command to verify the probe sessions:
    Router# show performance-measurement probe-sessions 
    Transport type              : Endpoint
    Measurement type            : Probe
    Endpoint name               : IPv6-bbbb:bbbb:2::-vrf-default
    endpoint                    : bbbb:bbbb:2::
    source                      : bbbb:bbbb:1::
    vrf                         : default
    Segment-list                : 
    Path Tracing session:
      Session ID          : 10
      Profile Keys:
        Profile name        : pt1
        Profile type        : Probe
      Current status:
        Packet sent every 0.30000 seconds (value stretched for rate-limiting)
        Next packet will be sent in 0.20 seconds
     
     
    Transport type              : Endpoint
    Measurement type            : Probe
    Endpoint name               : IPv6-bbbb:bbbb:2::-vrf-default
    endpoint                    : bbbb:bbbb:2::
    source                      : bbbb:bbbb:1::
    vrf                         : default
    Segment-list                : 
    Path Tracing session:
      Session ID          : 11
      Profile Keys:
        Profile name        : pt2 (Profile not found)
        Profile type        : N/A
      Current status:
        Not running: Profile is not configured  
     
    Transport type              : Endpoint
    Measurement type            : Probe
    Endpoint name               : IPv6-bbbb:bbbb:2::-vrf-default
    endpoint                    : bbbb:bbbb:2::
    source                      : bbbb:bbbb:1::
    vrf                         : default
    Segment-list                : 
    Path Assurance session:
      Session ID          : 20
      Profile Keys:
        Profile name        : pa1
        Profile type        : Probe
      Current status:
        Packet sent every 0.30000 seconds (value stretched for rate-limiting)
        Next packet will be sent in 0.24 seconds
    
    Run this show command to view the summary of all the probe sessions:
    Router# show performance-measurement summary
    Measurement Information:
      Total interfaces with PM sessions             : 0
      Total SR Policies with PM sessions            : 0
      Total Endpoints with PM sessions              : 1
      Total RSVP-TE tunnels with PM sessions        : 0
     
        Global Counters:
          Total packets sent                        : 0
          Total query packets received              : 0
          Total invalid session id                  : 0
          Total missing session                     : 0
     
        Probe sessions:
          Total sessions                            : 3
           Path-tracing sessions:
              Total running sessions                : 1
              Total running error sessions          : 0
            Path-assurance sessions:
              Total running PA sessions             : 1
              Total running error PA sessions       : 0
          Counters:
            Path-tracing packets:
              Total sent                            : 3063
              Total sent errors                     : 0
            Path-assurance packets:
              Total sent                            : 470
              Total sent errors                     : 0
    
    
    Router# show cef interface fourHundredGigE 0/0/0/1                                 
    FourHundredGigE0/0/0/1 is up if_handle 0x0f000208 if_type IFT_FOURHUNDREDGE(0xcd)
      idb info 0x94dfbf88 flags 0x30001 ext 0x0
      Vrf Local Info (0x0)
      Interface last modified, create
      Reference count 1       Next-Hop Count 0
      PT (path tracing) is enabled: id:0xC8 load_in:0x0 load_out:0x0 tts:0x3
      Protocol Reference count 0
      Protocol ipv4 not configured or enabled on this card
      Primary IPV4 local address NOT PRESENT
    This is an example of Show CLI with Interface ID:
    
    Router# show run performance-measurement
    performance-measurement
    probe-profile name foo
      tx-interval 6000
      flow-label from 100 to 300 increment 10
    !
    !
    Router# sh performance-measurement profile named-profile
    Endpoint Probe Measurement Profile Name: foo
      Profile configuration:
        Measurement mode                            : One-way
        Protocol type                               : TWAMP-light
        Type of service:
          TWAMP-light DSCP                          : 48
        TX interval                                 : 6000000 (effective: 6000000) uSec
        Destination sweeping mode                   : Disabled
        Liveness detection parameters:
          Multiplier                                : 3
          Logging state change                      : Disabled
     
        Hop Limit                                   : 255
        Flow Label Count                            : 21
          Flow Labels: 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240,
                        250, 260, 270, 280, 290, 300
        Packet Size Count                           : 0
        Traffic Class Count                         : 0
    
    Router# show cef interface GigabitEthernet 0/2/0/0
    GigabitEthernet0/2/0/0 is up if_handle 0x01000020 if_type IFT_GETHERNET(0xf)
      idb info 0x619f16f0 flags 0x30101 ext 0x627ef180 flags 0x30050
      Vrf Local Info (0x626510f0)
      Interface last modified Mar  4, 2022 13:34:43, modify
      Reference count 1       Next-Hop Count 3
      PT (path tracing) is enabled: id:0x40 load_in:0x0 load_out:0x0 tts:0x1
      Forwarding is enabled
      ICMP redirects are never sent
      ICMP unreachables are enabled
      Protocol MTU 1500, TableId 0xe0000000(0x61ccf768)
      Protocol Reference count 4
      Primary IPV4 local address 10.10.10.1
    
    
    Router# show performance-measurement interfaces
    Interface Name: GigabitEthernet0/2/0/0 (ifh: 0x1000020)
      Delay-Measurement                 : Disabled
      Loss-Measurement                  : Disabled
      Path-Tracing                      : Enabled
      Configured IPv4 Address           : 10.10.10.1
      Configured IPv6 Address           : 10:10:10::1
      Link Local IPv6 Address           : fe80::91:e4ff:fe60:6707
      Configured Next-hop Address       : Unknown
      Local MAC Address                 : 0291.e460.6707
      Next-hop MAC Address              : 023a.6fc9.cd6b
      In-use Source Address             : 10.10.10.1
      In-use Destination Address        : 10.10.10.2
      Primary VLAN Tag                  : None
      Secondary VLAN Tag                : None
      State                             : Up
     
      Path-Tracing:
        Interface ID                      : 64
        Load IN                           : 0
        Load OUT                          : 0
        Load Interval                     : 60
        Last FIB Update:
          Updated at: Mar 04 2022 13:34:43.112 (0.392 seconds ago)
          Update reason: Path tracing config
          Update status: Done
    
    This is an example of Show CLI without InterfaceID, which means PT is disabled on the target interface. So, you can configure timestamp template:
    
    
    Router# show cef interface GigabitEthernet 0/2/0/0
    GigabitEthernet0/2/0/0 is up if_handle 0x01000020 if_type IFT_GETHERNET(0xf)
      idb info 0x619f16f0 flags 0x30101 ext 0x627ef180 flags 0x30050
      Vrf Local Info (0x626510f0)
      Interface last modified Mar  4, 2022 13:49:37, modify
      Reference count 1       Next-Hop Count 3
      Forwarding is enabled
      ICMP redirects are never sent
      ICMP unreachables are enabled
      Protocol MTU 1500, TableId 0xe0000000(0x61ccf768)
      Protocol Reference count 4
      Primary IPV4 local address 10.10.10.1
    
    Router# sh performance-measurement interfaces
    Interface Name: GigabitEthernet0/2/0/0 (ifh: 0x1000020)
      Delay-Measurement                 : Disabled
      Loss-Measurement                  : Disabled
      Path-Tracing                      : Enabled
      Configured IPv4 Address           : 10.10.10.1
      Configured IPv6 Address           : 10:10:10::1
      Link Local IPv6 Address           : fe80::91:e4ff:fe60:6707
      Configured Next-hop Address       : Unknown
      Local MAC Address                 : 0291.e460.6707
      Next-hop MAC Address              : 023a.6fc9.cd6b
      In-use Source Address             : 10.10.10.1
      In-use Destination Address        : 10.10.10.2
      Primary VLAN Tag                  : None
      Secondary VLAN Tag                : None
      State                             : Up
     
      Path-Tracing:
        Interface ID                      : 0
        Timestamp Template                : 3
        Load IN                           : 0
        Load OUT                          : 0
        Load Interval                     : 60
        Last FIB Update:
          Updated at: Mar 04 2022 13:49:37.492 (176.418 seconds ago)
          Update reason: Path tracing config
          Update status: Done
    
    Sink Node Verification
    
    
    Router# sh segment-routing srv6 sid fccc:cc00:1:fef1:: detail
    
    SID                         Behavior          Context                                      Owner               State  RW
    fccc:cc00:1:fef1::          uTEF              [fccc:cc01:7::, default]:fccc:cc00:1:fef1::  ip_static_srv6      InUse  Y
    SID Function: 0xfef1
    SID context: { controller=fccc:cc01:7::, table-id=0xe0800000 ('default':IPv6/Unicast), differentiator=fccc:cc00:1:fef1:: }
    Locator: 'locator0'
    Allocation type: Explicit
    
    Router# sh segment-routing srv6 sid fccc:cc00:1:fef3:: detail
    SID                         Behavior          Context                                      Owner               State  RW
    fccc:cc00:1:fef3::          uTEF              [fccc:cc00:7::, default]:fccc:cc00:1:fef3::  ip_static_srv6      InUse  Y
    SID Function: 0xfef3
    SID context: { controller=fccc:cc00:7::, table-id=0xe0800000 ('default':IPv6/Unicast), differentiator=fccc:cc00:1:fef3:: }
    Locator: 'locator0'
    Allocation type: Explicit
    
    
    Router# sh segment-routing srv6 sid fccc:cc01:1:fef2:: detail
    SID                         Behavior          Context                           Owner               State  RW
    fccc:cc01:1:fef2::          uTEF              [fccc:cc00:7::, default]:fccc:cc01:1:fef2::  ip_static_srv6      InUse  Y
    SID Function: 0xfef2
    SID context: { controller=fccc:cc00:7::, table-id=0xe0800000 ('default':IPv6/Unicast), differentiator=fccc:cc01:1:fef2:: }
    Locator: 'locator1'
    Allocation type: Explicit
    Created: Feb 27 11:06:54.999 (00:10:05 ago)