SRv6 vs SR-MPLS¶
Both SRv6 and SR-MPLS implement Segment Routing, but they use different data planes. Here's a practical comparison.
Comparison Table¶
| Aspect | SR-MPLS | SRv6 |
|---|---|---|
| Data Plane | MPLS | IPv6 |
| Segment ID | 20-bit label | 128-bit IPv6 address |
| SID Space | ~1M labels | Virtually unlimited |
| Encapsulation | MPLS label stack | SRv6 SRH (IPv6 ext. header) |
| Network Programming | Limited | Rich (End, End.X, End.DT4...) |
| MTU Impact | 4 bytes per label | 40B IPv6 + 8B + 16B per SID |
| Existing Infra | Requires MPLS forwarding | Uses native IPv6 |
| Signaling | None (same as SRv6) | None |
| Maturity | Widely deployed | Growing rapidly |
SRv6 overhead is no longer what it was
The 16 bytes per SID figure applies to classic SRv6. With uSID (RFC 9800), up to 6 instructions fit in a single 16-byte container, putting SRv6 on par with or better than an MPLS label stack. See uSID / SRv6 Compression.
When to Choose What¶
Choose SR-MPLS when...
- You have existing MPLS infrastructure
- MTU overhead is a concern
- Your use case is primarily TE or VPN
Choose SRv6 when...
- Building a new IPv6-native network
- You need advanced network programmability
- Simplification and future-proofing are priorities
- You want to eliminate MPLS entirely
Further Reading¶
References¶
- RFC 8402 - Segment Routing Architecture - Defines the SR architecture covering both MPLS and IPv6 data planes
- RFC 8660 - Segment Routing with the MPLS Data Plane - Specifies SR-MPLS forwarding behavior and MPLS label-based segment encoding
- Cisco Segment Routing Overview and Migration Guidelines - Practical overview of SR deployment and migration from traditional MPLS