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

L2 and L3 services with remote SIDs from W-LIB

Want to summarize with AI?

Log in

Explains how headends install remote 32-bit W-LIB service SIDs to steer Layer 2 and Layer 3 traffic and support service-function chaining.


An L2 and L3 service with remote SIDs from Wide Local ID Block (W-LIB) is a SRv6 feature that

  • uses SRv6 to enable a headend node to receive and install remote Segment Identifiers (SIDs) with wide (32-bit) functions

  • supports both Layer and Layer service steering through these remote SIDs, and

  • facilitates precise packet forwarding and service function chaining by embedding service SIDs into packet headers to steer traffic along specific paths including the intended service functions

This capability is enabled by default and allows the source node to insert a service SID into the packet header, which uniquely identifies a specific service function and directs the packet through the network accordingly.

Table 1. Feature History Table

Feature Name

Release Information

Feature Description

SRv6 Services: L2 and L3 Services with Remote SIDs from Wide Local ID Block

Release 25.4.1

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

*This feature is supported on:

  • 8011-32Y8L2H2FH

  • 8011-12G12X4Y-A/D

SRv6 Services: L2 and L3 Services with Remote SIDs from Wide Local ID Block

Release 25.1.1

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

This feature is now supported on:

  • 8712-MOD-M

  • 8011-4G24Y4H-I

SRv6 Services: L2 and L3 Services with Remote SIDs from Wide Local ID Block

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

SRv6 Services: L2 and L3 Services with Remote SIDs from Wide Local ID Block

Release 7.9.1

This feature enables an SRv6 headend node to receive and install remote SIDs with Wide (32-bit) functions (Remote W-LIB).

The Remote W-LIB is supported for Layer 3 (VPN/BGP global) and Layer 2 EVPN services (ELINE/ELAN).

This capability is enabled by default.


How the L2 and L3 services using remote SIDs from W-LIB work

Summary

The SRv6 headend node, source node, and receiver are the key components involved in SRv6 services with remote SIDs from W-LIB. Together, these components manage the identification, insertion, signaling (through transposition and SRv6 SID Structure Sub-Sub-TLV), and reassembly of SRv6 Service SIDs. This collaborative effort ensures precise Layer 2 and Layer 3 traffic steering for service function chaining and optimizes the compression of service prefix NLRIs in BGP update messages.

Workflow

These stages describe how the L2 and L3 services using remote SIDs from W-LIB work.

  1. The source node inserts an SRv6 Service SID into the packet header to identify and steer the packet through the intended service function path.

  2. The headend node signals the Service SID by transposing variable parts of the SRv6 SID value (function, argument, or both) into existing label fields, which optimizes compression of service prefix NLRIs in BGP updates.

  3. The SRv6 SID Structure Sub-Sub-TLV (SSTLV) carries appropriate length fields that enable the receiver to accurately reassemble the split SRv6 Service SID parts. The Transposition Offset specifies the bit position, and the Transposition Length specifies how many bits are extracted from the SRv6 SID and placed into the high-order bits of the label field.

  4. The receiver reassembles the split SRv6 Service SID parts based on the SSTLV information.

  5. The headend node steers the packet along the specific path that includes the required service function, using the reassembled Service SID.


Remote W-LIB uSID structure with SRv6 SID SSTLV

A remote W-LIB uSID is defined by specific parameters within the SRv6 SID SSTLV that describe the composition and transposition of the SID value and label.

The example uSID fcbb:bb00:0200:fff0:0001:: is characterized as follows:

  • Block length (BL) of 32 bits = fcbb:bb00

  • Node length (NL) of 16 bits = 0200

  • Function length (FL) of 32 bits = fff0:0001

  • Argument length (AL) of 0

  • Transposition length (TPOS len) of 16 bits = 0001

  • Transposition offset (TPOS offset) of 64 bits = fcbb:bb00:0200:fff0:

From these parameters:

  • The SID value is constructed as fcbb:bb00:0200:fff0::, which includes the block, node, and function parts without the transposed argument.

  • The Label value extracted through transposition is 0x0001, representing the transposed bits from the original SID.


Interpret BGP VPNv4 route table output for a prefix learned from multiple egress PEs

Understand the details of BGP paths for a VPNv4 prefix learned from three egress Provider Edge (PE) routers

This task helps network engineers analyze BGP route entries, including path attributes and Segment Routing (SR) information, to troubleshoot or verify VPNv4 routing

Procedure

View the BGP route table for a VPNv4 prefix learned from three egress PEs.
  • BGP Path 1 from next-hop 7::1 and a 32-bit uDT4 function (0xfff0 4002) allocated from W-LIB

  • BGP Path 2 from next-hop 9::1 and a 16-bit uDT4 function (0x4002) allocated from LIB

  • BGP Path 3 from next-hop 8::1 and a 16-bit uDT4 function (0x4002) allocated from LIB

The example shows output of a BGP route table for a VPNv4 prefix learned from three egress PEs:

Example:

Router# show bgp vpnv4 unicast rd 100:2 2.2.0.1/32 detail 

BGP routing table entry for 2.2.0.1/32, Route Distinguisher: 100:2
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                5314         5314
    Flags: 0x20061292+0x00060000; multipath; backup available; 
Last Modified: Jan 20 14:37:59.189 for 00:00:19
Paths: (3 available, best #1)
  Not advertised to any peer
 Path #1: Received by speaker 0
  Flags: 0x2000000085070005+0x00, import: 0x39f
  Not advertised to any peer
  Local
    7::1 (metric 20) from 2::1 (192.0.0.1), if-handle 0x00000000
      Received Label 0x40020
      Origin IGP, localpref 150, valid, internal, best, group-best, multipath, import-candidate, imported
      Received Path ID 1, Local Path ID 1, version 5314
      Extended community: RT:100:2 
      Originator: 192.0.0.1, Cluster list: 2.0.0.1
      PSID-Type:L3, SubTLV Count:1, R:0x00,
       SubTLV:
        T:1(Sid information), Sid:fccc:cc00:7001:fff0::, F:0x00, R2:0x00, Behavior:63, R3:0x00, SS-TLV Count:1
         SubSubTLV:
          T:1(Sid structure):
           Length [Loc-blk,Loc-node,Func,Arg]:[32,16,32,0], Tpose-len:16, Tpose-offset:64
      Source AFI: VPNv4 Unicast, Source VRF: VRF_2, Source Route Distinguisher: 100:2
  Path #2: Received by speaker 0
  Flags: 0x2000000084060005+0x00, import: 0x096
  Not advertised to any peer
  Local
    9::1 (metric 20) from 2::1 (192.0.0.3), if-handle 0x00000000
      Received Label 0x40020
      Origin IGP, localpref 100, valid, internal, backup(protect multipath), add-path, import-candidate, imported
      Received Path ID 2, Local Path ID 5, version 5314
      Extended community: RT:100:2 
      Originator: 192.0.0.3, Cluster list: 2.0.0.1
      PSID-Type:L3, SubTLV Count:1, R:0x00,
       SubTLV:
        T:1(Sid information), Sid:fccc:cc00:9001::, F:0x00, R2:0x00, Behavior:63, R3:0x00, SS-TLV Count:1
         SubSubTLV:
          T:1(Sid structure):
           Length [Loc-blk,Loc-node,Func,Arg]:[32,16,16,0], Tpose-len:16, Tpose-offset:48
      Source AFI: VPNv4 Unicast, Source VRF: VRF_2, Source Route Distinguisher: 100:2
  Path #3: Received by speaker 0
  Flags: 0x2000000084070005+0x00, import: 0x296
  Not advertised to any peer
  Local
    8::1 (metric 20) from 2::1 (192.0.0.2), if-handle 0x00000000
      Received Label 0x40020
      Origin IGP, localpref 150, valid, internal, multipath, backup, add-path, import-candidate, imported
      Received Path ID 3, Local Path ID 4, version 5314
      Extended community: RT:100:2 
      Originator: 192.0.0.2, Cluster list: 2.0.0.1
      PSID-Type:L3, SubTLV Count:1, R:0x00,
       SubTLV:
        T:1(Sid information), Sid:fccc:cc00:8001::, F:0x00, R2:0x00, Behavior:63, R3:0x00, SS-TLV Count:1
         SubSubTLV:
          T:1(Sid structure):
           Length [Loc-blk,Loc-node,Func,Arg]:[32,16,16,0], Tpose-len:16, Tpose-offset:48
      Source AFI: VPNv4 Unicast, Source VRF: VRF_2, Source Route Distinguisher: 100:2

Note the following fields in the output:

  • Function length of 16 bits for LIB and 32 bits for W-LIB

  • Transposition offset (Tpose-offset) value of 48 bits for LIB and 64 bits for W-LIB

  • Transposition length (Tpose-len) value of 16 bits for LIB/W-LIB


L3 services with local SIDs from W-LIB

L3 services with local SIDs from W-LIB are network services that

  • use SRv6 service SIDs to identify specific service functions

  • steer packets along defined paths including those service functions, and

  • enable flexible and efficient service delivery by allocating uSIDs from the W-LIB space.

Table 2. Feature History Table

Feature Name

Release

Description

SRv6-Services: L3 Services with Local SIDs from W-LIB

Release 25.4.1

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

*This feature is supported on:

  • 8011-32Y8L2H2FH

  • 8011-12G12X4Y-A/D

SRv6-Services: L3 Services with Local SIDs from W-LIB

Release 25.1.1

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

This feature is now supported on:

  • 8712-MOD-M

  • 8011-4G24Y4H-I

SRv6-Services: L3 Services with Local SIDs from W-LIB

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

SRv6-Services: L3 Services with Local SIDs from W-LIB

Release 7.11.1

This feature enables an SRv6 headend node to allocate and advertise local SIDs with Wide (32-bit) functions (Local W-LIB).

The headend router utilizes the local W-LIB functionality to define and implement SR policies using SRv6 SIDs.

The Local W-LIB is supported for Layer 3 (VPNv4/VPNv6/BGPv4/BGPv6 global) services.

This feature introduces the usid allocation wide-local-id-block command.

SRv6 service SID and BGP uSID allocation

An SRv6 service SID uniquely identifies a specific service function within a network. The source node inserts this service SID into the packet header to steer the packet along a defined path that includes the targeted service function. This mechanism provides enhanced flexibility and control over packet processing, enabling efficient service delivery across the network.

Key points regarding uSID allocation and BGP transposition include:

  • By default, BGP instructs the SID-Manager to allocate uSIDs from the LIB space only. When enabled, BGP can enforce uSID allocation from the W-LIB space.

  • For VPN services, BGP performs transposition of the service SID into the label part of the NLRI as specified in IETF RFC 9252. In the LIB implementation, the 16-bit function is transposed to the NLRI label field.

  • In the W-LIB implementation, BGP transposes the last 16 bits of the 32-bit W-LIB function to the NLRI label field for VPNv4 and VPNv6 routes.

  • There is no transposition for BGPv4/BGPv6 global routes.


Limitations of L3 services with local SIDs from W-LIB

The usid allocation wide-local-id-block command cannot be used together with the alloc mode route-policy command in BGP. The wide-local-id-block SID allocation does not support dynamic allocation from locators based on route-policy selection.


Support for Cisco Silicon One ASICs

  • This feature is supported on Cisco 8000 Series Routers and Line Cards with Cisco Silicon One Q200 and P100 ASICs.

  • This feature is not supported on Cisco 8000 Series Routers and Line Cards with Cisco Silicon One Q100 ASICs.


Configure L3 services with local SIDs from W-LIB

Enable the allocation and advertisement of an SRv6 service SID using the wide-local-id-block (W-LIB) mode to support L3 services

The W-LIB allocation mode applies precedence rules at various configuration levels within BGP to control how uSIDs are allocated and advertised.

Procedure

  1. Apply W-LIB uSID allocation globally under BGP

    Example:

    router bgp 1
      segment-routing srv6
        usid allocation wide-local-id-block
      !
    
    
  2. Apply W-LIB uSID allocation at the IPv4 and IPv6 address family levels under BGP.

    Example:

    router bgp 1
      address-family ipv4 unicast
        segment-routing srv6
          usid allocation wide-local-id-block
      !
      address-family ipv6 unicast
        segment-routing srv6
          usid allocation wide-local-id-block
    
  3. Apply W-LIB uSID allocation for all VPNv4 and VPNv6 address families.

    Example:

    router bgp 1
      address-family ipv4 unicast
        segment-routing srv6
          usid allocation wide-local-id-block
       !
      address-family ipv6 unicast
        segment-routing srv6
          usid allocation wide-local-id-block
    
    
  4. Apply W-LIB uSID allocation at the VRF level for IPv4 and IPv6 address families.

    Example:

    router bgp 1
      address-family vpnv4 unicast
        vrf all
          segment-routing srv6
            usid allocation wide-local-id-block
        !
      address-family vpnv6 unicast
        vrf all
          segment-routing srv6
            usid allocation wide-local-id-block
    
    
  5. Use the show commands to verify the W-LIB uSID allocation.

    1. Verify the W-LIB uSID allocation.

      Example:

      RP/0/0/CPU0:PE1# show bgp ipv4 unicast process
      
      BGP Process Information:
      BGP is operating in STANDALONE mode
      Autonomous System number format: ASPLAIN
      Autonomous System: 100
      Router ID: 192.168.0.1
      Default Cluster ID: 192.168.0.1
      Active Cluster IDs:  192.168.0.1
      Fast external fallover enabled
      Platform Loadbalance paths max: 16
      Platform RLIMIT max: 2147483648 bytes
      Maximum limit for BMP buffer size: 409 MB
      Default value for BMP buffer size: 307 MB
      Current limit for BMP buffer size: 307 MB
      Current utilization of BMP buffer limit: 0 B
      Neighbor logging is enabled
      Enforce first AS enabled
      AS Path multipath-relax is enabled
      Use SR-Policy admin/metric of color-extcomm Nexthop during path comparison: disabled
      Default local preference: 100
      Default keepalive: 60
      Graceful restart enabled
      Restart time: 120
      Stale path timeout time: 360
      RIB purge timeout time: 600
      Non-stop routing is enabled
      ExtComm Color Nexthop validation: RIB
      
      Update delay: 120
      Generic scan interval: 15
      Configured Segment-routing Local Block: [0, 0]
      In use Segment-routing Local Block: [15000, 15999]
      Platform support mix of sr-policy and native nexthop: No
      Segment Routing SRv6 Locator Name: LOC2
      Segment Routing SRv6 uSID WLIB allocation: Enforced
      
      Address family: IPv4 Unicast
      Dampening is enabled
      Client reflection is enabled in global config
      Dynamic MED is Disabled
      Dynamic MED interval : 10 minutes
      Dynamic MED Timer : Running, will expire in 342 seconds
      Dynamic MED Periodic Timer : Running, will expire in 42 seconds
      Scan interval: 60
      Total prefixes scanned: 42
      Prefixes scanned per segment: 100000
      Number of scan segments: 1
      Nexthop resolution minimum prefix-length: 0 (not configured)
      IPv6 Nexthop resolution minimum prefix-length: 0 (not configured)
      Main Table Version: 44
      Table version synced to RIB: 44
      Table version acked by RIB: 44
      IGP notification: IGPs notified
      RIB has converged: version 0
      RIB table prefix-limit reached ?  [No], version 0
      Permanent Network Unconfigured
      Segment Routing SRv6 Alloc Mode: 0
      Segment Routing SRv6 uSID WLIB allocation: Enforced
      
      
      RP/0/0/CPU0:PE1# show bgp vrf all ipv4 unicast process
      
      VRF: foo
      -------
      
      BGP Process Information: VRF foo
      BGP Route Distinguisher: 23:1
      
      BGP is operating in STANDALONE mode
      Autonomous System number format: ASPLAIN
      Autonomous System: 100
      Router ID: 192.168.0.1
      Default Cluster ID: 192.168.0.1
      Active Cluster IDs:  192.168.0.1
      Fast external fallover enabled
      Platform Loadbalance paths max: 16
      Platform RLIMIT max: 2147483648 bytes
      Maximum limit for BMP buffer size: 409 MB
      Default value for BMP buffer size: 307 MB
      Current limit for BMP buffer size: 307 MB
      Current utilization of BMP buffer limit: 0 B
      Neighbor logging is enabled
      Enforce first AS enabled
      iBGP to IGP redistribution enabled
      AS Path multipath-relax is enabled
      Use SR-Policy admin/metric of color-extcomm Nexthop during path comparison: disabled
      Default local preference: 100
      Default keepalive: 60
      Graceful restart enabled
      Restart time: 120
      Stale path timeout time: 360
      RIB purge timeout time: 600
      Non-stop routing is enabled
      ExtComm Color Nexthop validation: RIB
      
      Update delay: 120
      Generic scan interval: 15
      Configured Segment-routing Local Block: [0, 0]
      In use Segment-routing Local Block: [15000, 15999]
      Platform support mix of sr-policy and native nexthop: No
      Segment Routing SRv6 Locator Name: LOC2 (WLIB allocation enforced)
      Segment Routing SRv6 uSID WLIB allocation: Enforced
      
      VRF foo Address family: IPv4 Unicast
      Dampening is enabled
      Client reflection is not enabled in global config
      Dynamic MED is Disabled
      Dynamic MED interval : 10 minutes
      Dynamic MED Timer : Not Running
      Dynamic MED Periodic Timer : Not Running
      Scan interval: 60
      Total prefixes scanned: 85
      Prefixes scanned per segment: 100000
      Number of scan segments: 1
      Nexthop resolution minimum prefix-length: 0 (not configured)
      IPv6 Nexthop resolution minimum prefix-length: 0 (not configured)
      Main Table Version: 152
      Table version synced to RIB: 152
      Table version acked by RIB: 152
      IGP notification: IGPs notified
      RIB has converged: version 1
      RIB table prefix-limit reached ?  [No], version 0
      Permanent Network Unconfigured
      Segment Routing SRv6 uSID WLIB allocation: Enforced
      
      
    2. Verify the advertised SRv6 W-LIB uSID for the default VRF.

      Example:

      RP/0/0/CPU0:PE1# show bgp ipv4 unicast 192.168.4.1/32
      
      BGP routing table entry for 192.168.4.1/32
      Versions:
        Process           bRIB/RIB  SendTblVer
        Speaker                 419          419
          SRv6-VPN SID: fccc:cccc:a:fff0:4::/80
      Last Modified: Apr  3 10:35:41.000 for 136y10w
      Paths: (1 available, best #1)
        Advertised IPv4 Unicast paths to peers (in unique update groups):
          192::4
        Path #1: Received by speaker 0
        Advertised IPv4 Unicast paths to peers (in unique update groups):
          192::4
        Local
          0.0.0.0 from 0.0.0.0 (192.168.0.1)
            Origin incomplete, metric 0, localpref 100, weight 32768, valid, redistributed, best, group-best
            Received Path ID 0, Local Path ID 1, version 419
      
      
    3. Verify the advertised SRv6 W-LIB uSID for a specific VRF (foo).

      Example:

      RP/0/0/CPU0:PE1# show bgp vrf foo 192.168.7.1/32 
      
      BGP routing table entry for 192.168.7.1/32, Route Distinguisher: 23:1
      Versions:
        Process           bRIB/RIB  SendTblVer
        Speaker                 439          439
          SRv6-VPN SID: fccc:cccc:a:fff0:4::/80
      Last Modified: Apr  3 10:31:00.000 for 00:00:44
      Paths: (1 available, best #1)
        Advertised to PE peers (in unique update groups):
          192::4
        Advertised to CE peers (in unique update groups):
          10.10.10.2
        Path #1: Received by speaker 0
        Advertised to PE peers (in unique update groups):
          192::4
        Advertised to CE peers (in unique update groups):
          10.10.10.2
        Local
          0.0.0.0 from 0.0.0.0 (192.168.0.1)
            Origin incomplete, metric 0, localpref 100, weight 32768, valid, redistributed, best, group-best, import-candidate
            Received Path ID 0, Local Path ID 1, version 439
            Extended community: RT:23:23