If you work in service provider networking, the question is no longer whether your network will move from MPLS to SRv6 — it is when. By early 2026, over 85,000 Cisco routers are running SRv6 uSID in production across more than 60 operators worldwide. Swisscom, Rakuten Mobile, SoftBank, and Jio Platforms have either completed or are actively executing their SRv6 uSID migrations.
This is not a lab curiosity anymore. It is the dominant transport transformation in the SP space.
In this article, we'll break down what SRv6 uSID actually is, why it matters, how to configure it on Cisco IOS XR, and how to execute a lossless migration from legacy MPLS or SR-MPLS to SRv6 uSID F3216.
What Is SRv6 uSID and Why Should You Care?
SRv6 (Segment Routing over IPv6) encodes forwarding instructions directly into IPv6 addresses. Each Segment Identifier (SID) is a 128-bit IPv6 address, and a list of SIDs in the IPv6 Segment Routing Header (SRH) describes the packet's path through the network.
The problem with early SRv6 implementations was overhead. A full 128-bit SID per hop adds up fast — four waypoints meant 64 bytes of SRH, which created MTU headaches in real networks.
SRv6 micro-SIDs (uSIDs) solve this by compressing multiple segment instructions into a single 128-bit IPv6 address, called a uSID Carrier. The dominant production format is F3216:
- 32-bit uSID Block — identifies the SRv6 domain
- 16-bit uSID IDs — identifies specific nodes or functions
A single uSID carrier encodes up to 6 micro-SIDs, which means you can describe 18 source-routing waypoints in only 40 bytes of overhead. That is comparable to or better than an MPLS label stack for the same path complexity.
Pro Tip: When planning your SRv6 addressing scheme, choose your 32-bit uSID block prefix carefully. This prefix identifies your entire SRv6 domain, and changing it later requires touching every node. Treat it like your BGP AS number — pick it once, document it everywhere.
SR-MPLS vs. SRv6 uSID: Key Differences
| Attribute | SR-MPLS | SRv6 uSID (F3216) |
|---|---|---|
| Encoding | MPLS label stack | IPv6 SRH with compressed uSIDs |
| Path description | Label per hop (4 bytes each) | Up to 6 waypoints per 16-byte carrier |
| Data plane | MPLS forwarding | Native IPv6 forwarding |
| Programmability | Limited to label operations | Full IPv6 extension header programmability |
| Network slicing | Complex, requires dedicated LSPs | Native support via FlexAlgo + uSID |
The programmability advantage is significant. With SRv6, you can define custom behaviors (called SRv6 functions) at each segment endpoint — enabling service chaining, VPN overlay binding, and traffic engineering that would require multiple protocol interactions in MPLS.
Configuring SRv6 uSID on Cisco IOS XR
Let's walk through a complete SRv6 uSID deployment on a Cisco 8000 Series router running IOS XR.
Step 1: Define SRv6 Locators
The locator is the foundation of your SRv6 configuration. It defines the prefix that the router will use to generate its local SIDs:
segment-routing srv6
encapsulation
source-address fcbb:bb00:0001::1
!
locators
locator myuSID
micro-segment behavior unode psp-usd
prefix fcbb:bb00:0001::/48
!
!
!
Key points:
- The
source-addressis the IPv6 address used as the outer source in SRv6-encapsulated packets. It must be reachable in your IGP. -
micro-segment behavior unode psp-usdenables the F3216 uSID format with Penultimate Segment Pop (PSP) and Ultimate Segment Decapsulation (USD) behaviors. - The
/48prefix defines the locator block. The first 32 bits (fcbb:bb00) are the uSID block, and bits 33-48 (0001) are this node's uSID ID.
Pro Tip: Always use
psp-usdas your default uSID behavior. PSP removes the SRH at the penultimate hop, reducing processing overhead on the endpoint node. USD handles decapsulation cleanly when this node is the final destination.
Step 2: Integrate with IS-IS
IS-IS advertises SRv6 locator reachability across the network:
router isis CORE
is-type level-2-only
net 49.0001.0000.0000.0001.00
address-family ipv6 unicast
metric-style wide
segment-routing srv6
locator myuSID
!
!
interface Loopback0
address-family ipv6 unicast
!
!
interface HundredGigE0/0/0/0
point-to-point
address-family ipv6 unicast
!
!
!
When applied, the router advertises its /48 locator prefix into IS-IS. Other routers install this as a route in their IPv6 RIB, enabling SRv6 forwarding.
Step 3: Enable BGP and EVPN Overlays
For L3VPN and EVPN services, bind the uSID locator to BGP:
router bgp 65001
address-family vpnv4 unicast
!
address-family vpnv6 unicast
!
address-family l2vpn evpn
!
segment-routing srv6
locator myuSID
!
neighbor 2001:db8::2
remote-as 65001
update-source Loopback0
address-family vpnv4 unicast
!
address-family l2vpn evpn
!
!
!
evpn
segment-routing srv6
locator myuSID
!
!
With this, BGP allocates SRv6 uSIDs for VPN prefixes and advertises them to PE peers. The receiving PE uses the uSID to forward encapsulated traffic directly over the IPv6 underlay — no LDP, no RSVP, no separate MPLS signaling stack.
Migration Strategy: Ship in the Night
The most critical question for any production network: how do we get from MPLS to SRv6 without dropping traffic?
Cisco's recommended approach is Ship in the Night — running both forwarding planes simultaneously during the transition.
State 1: Initial (Legacy MPLS or SR-MPLS)
Your network runs traditional MPLS with LDP/RSVP, or SR-MPLS with format1 SIDs. All services use MPLS transport. No SRv6 configuration exists.
State 2: In-Migration (Dual Mode)
You deploy SRv6 uSID locators alongside the existing MPLS configuration. Both forwarding planes coexist:
- Existing MPLS/SR-MPLS control plane continues to signal labels and forward traffic
- SRv6 uSID locators are advertised in IS-IS concurrently
- BGP and EVPN are configured with uSID locators on all PE nodes
- Traffic can flow over either transport depending on which SIDs the ingress PE selects
This is the critical phase. You must enable overlay F3216 locators under BGP and EVPN on all PE nodes before cutting over any services.
State 3: End State (SRv6 uSID Only)
Once all services are verified on SRv6 uSID transport, you remove legacy MPLS configuration.
Pro Tip: Use the
delayed-deletecommand when removing format1 locators during cutover. This keeps old SIDs active in the forwarding table for a configurable period while F3216 SIDs take over. A 60-second delay is usually sufficient for BGP to reconverge.
Migration Caveats
- Line card reloads may be required during hardware profile transitions on some platforms. Plan maintenance windows.
- Cisco 8000 Series (K100, A100 ASICs) and 8700-MOD support dual-mode natively. Verify your hardware.
- For mixed-vendor networks, check
draft-ietf-spring-srv6-mpls-interworkingfor SRv6-MPLS gateway interworking standards.
Verification and Troubleshooting
Verify SRv6 Locator Status
RP/0/RP0/CPU0:PE1# show segment-routing srv6 locator
Name Prefix Status
---- ------ ------
myuSID fcbb:bb00:0001::/48 Up
If status shows Down, check:
- No prefix conflict with another locator on the same node
- IS-IS is configured to advertise the locator
- The platform supports the specified uSID behavior
Verify IS-IS SRv6 Advertisement
RP/0/RP0/CPU0:PE1# show isis segment-routing srv6 locators detail
IS-IS CORE Level-2 SRv6 Locators:
Locator: myuSID
Prefix: fcbb:bb00:0001::/48
Topology: IPv6 Unicast
Algorithm: 0
Metric: 1
Advertised: Yes
Verify BGP SRv6 SID Allocation
RP/0/RP0/CPU0:PE1# show bgp vpnv4 unicast vrf CUSTOMER-A 10.1.1.0/24
BGP routing table entry for 10.1.1.0/24, Route Distinguisher: 65001:100
Local
fcbb:bb00:0001:: (via SRv6 SID: fcbb:bb00:0001:e004::)
Origin IGP, metric 0, localpref 100, valid, sourced, best
SRv6 SID: fcbb:bb00:0001:e004::
Function: End.DT4
Locator: myuSID
The End.DT4 function indicates a decapsulation-and-lookup behavior for IPv4 VPN traffic — the SRv6 equivalent of a VPN label in MPLS.
Common Troubleshooting Scenarios
SRv6 locator is Up but BGP is not allocating SIDs:
Ensure segment-routing srv6 locator myuSID is configured under both router bgp and evpn.
Traffic is blackholing after enabling uSID locators:
Verify all transit routers have IS-IS SRv6 locator routes in their IPv6 RIB. A single router without the locator route will drop SRv6-encapsulated packets.
MTU issues after migration:
SRv6 encapsulation adds a minimum of 40 bytes (IPv6 outer header) plus SRH overhead. Core links need at least 9216-byte MTU.
Key Takeaways
SRv6 uSID is production-ready at scale. 85,000+ routers deployed globally across 60+ operators. This is not early-adopter tech.
F3216 solves the MTU problem. Six micro-SIDs per 128-bit carrier means SRv6 overhead is comparable to MPLS label stacks.
Ship in the Night enables lossless migration. Run both planes in parallel, validate per-service, cut over at your own pace.
Configuration is straightforward. Three building blocks — locators, IS-IS integration, and BGP/EVPN binding — cover the majority of deployments.
Open-source support is growing. FRRouting 10.5 now supports SRv6 uSID, extending this beyond Cisco-only shops to SONiC and other FRR-based platforms.
The MPLS-to-SRv6 migration is the defining infrastructure shift for service providers in 2026. Start with a lab, validate with Ship in the Night, and build operational confidence before touching production. The technology is ready — the question is whether you are.
Originally published at FirstPassLab. For more deep dives on networking protocols and infrastructure, visit firstpasslab.com.
AI Disclosure: This article was adapted and edited with AI assistance. All technical content is based on published vendor documentation, IETF standards, and real-world deployment data.
Top comments (0)