IPv6 Source Routing · SRH Extension Header

Segment Routing over IPv6

SR applied to the IPv6 data plane: segment lists encoded as a sequence of IPv6 addresses in an SRH extension header, enabling source routing without MPLS labels or additional encapsulation overhead.

SRv6 SID List Forwarding

A packet traverses three SR endpoints. The SID list is encoded directly in the IPv6 destination address: each hop pops the active uSID and forwards on the next.

SRv6 packet flow through three endpoints with IPv6 SID list fc00::1, fc00::2, fc00::3
SRv6: packet traversal through three endpoints driven by an IPv6 SID list.

What is Segment Routing?

Segment Routing (RFC 8402) is a source-routing architecture. The head-end encodes the path a packet takes as an ordered list of instructions called segments, and the network forwards on that list without holding per-flow state at every hop. It runs on two data planes: SR-MPLS carries the segment list as an MPLS label stack, and SRv6 carries it as a list of IPv6 addresses. This page covers SRv6, and the SR-MPLS data plane is documented on its own page.

What SRv6 Is

SRv6 (RFC 8986) encodes a source-initiated path as an ordered list of IPv6 addresses called SIDs, each representing a topological instruction (segment) at a specific node. The Segment Routing Header (SRH, RFC 8754) carries the SID list in the IPv6 extension header stack. At each SR node, the active SID is processed, the SL (Segments Left) pointer is decremented, and the IPv6 DA is updated to the next SID.

SRv6 SIDs are routable IPv6 addresses structured with a Locator (topologically significant prefix, typically /48 or /64) and a Function (behavior identifier). This means SR forwarding state is embedded in the IPv6 routing table: no separate label space, no LFIB, no MPLS-specific HW resources. Transit nodes need no SRH awareness unless they are SR endpoints.

SRv6 uSID (draft-ietf-spring-srv6-srh-compression) compresses the SID encoding significantly: multiple micro-SIDs are packed into a single 128-bit IPv6 address, reducing per-hop processing and header overhead to levels competitive with SR-MPLS in typical SP deployments.

SRv6 Network Programming

RFC 8986 defines a set of SRv6 endpoint behaviors: End (SR endpoint), End.X (endpoint with cross-connect), End.T (endpoint with table lookup), End.DT4/DT6/DT46 (endpoint with decap and L3 table lookup). These behaviors implement the full VPN forwarding function within the SID semantics, enabling L3VPN and L2VPN services over a pure IPv6 core.

OcNOS-SP Implementation

IS-IS SRv6 Extensions

IS-IS with SRv6 extensions (draft-ietf-lsr-isis-srv6-extensions). Locator advertisement, SID sub-TLV per prefix. Flexible Algorithms for topology-aware SID assignment.

uSID Compression

uSID implementation per draft-ietf-spring-srv6-srh-compression. /32 block, /48 locator. Multiple uSIDs packed per 128-bit address. Compatible with existing IPv6 forwarding HW: no SRH processing at transit.

H.Encaps Behavior

Head-end encapsulation inserting a new IPv6 outer header with SRH. H.Encaps.Red for reduced SRH (single SID). Supports policy-based steering by match criteria.

SRv6-TE Policies

SRv6 traffic engineering policies with explicit SID lists. PCE-computed paths via PCEP. BGP SR-TE for cross-domain policy distribution.

L3VPN over SRv6

End.DT46 behavior for decap and VRF lookup. BGP L3VPN with SRv6 transport per RFC 9252 (BGP Overlay Services on SRv6). Per-VRF SID allocation from Locator block.

SR-MPLS Co-existence

SRv6 and SR-MPLS active simultaneously on the same node. Per-VPN transport plane selection. Interworking function for cross-domain stitching at domain boundaries.

OcNOS-Validated Hardware

For reference only. The platforms below are a representative subset of SRv6-validated hardware. The complete, current list of qualified platforms, with ASIC, port density, and version coverage, is maintained in the OcNOS Hardware Compatibility List.

UfiSpace S9600-56DX
Qumran2c · 4×25G + 48×100G + 8×400G
UfiSpace S9600-28DX
Qumran2c · 4×25G + 24×100G + 4×400G
UfiSpace S9600-32X
Qumran2c · 32×100G
UfiSpace S9600-64X
Qumran2c · 64×100G
UfiSpace S9610-46DX
Qumran2c+ · 4×25G + 40×100G + 6×400G
UfiSpace S9510-28DC
Qumran2a · 24×25G + 2×100G + 2×400G
Edgecore AS7535-28XB
Qumran2a · 24×25G + 2×100G + 2×400G
UfiSpace S9510-30XC
Qumran2u · 28×25G + 2×100G

Compare SRv6 support across all OcNOS-validated platforms

Open Feature Matrix →
FAQ

Frequently asked questions

What is SRv6?
SRv6 (Segment Routing over IPv6) is segment routing that uses the IPv6 data plane directly. Each segment is encoded as a 128-bit IPv6 address called a SID, so the network steers traffic along an engineered path using native IPv6 forwarding, with no MPLS label stack.
What is the difference between SRv6 and SR-MPLS?
SRv6 encodes segments as 128-bit IPv6 addresses and forwards on the IPv6 data plane, while SR-MPLS encodes segments as MPLS labels and forwards on the MPLS data plane. SRv6 needs only IPv6 in the core, where SR-MPLS keeps an MPLS forwarding plane.
What is a uSID in SRv6?
A uSID (micro-SID) packs several SRv6 instructions into a single 128-bit IPv6 address, so one address can carry many segments. This shortens the segment list, reduces packet overhead, and lets longer engineered paths fit within standard IPv6 forwarding.
Does SRv6 need MPLS?
No, SRv6 does not need MPLS. It runs on the native IPv6 data plane and uses IPv6 addresses as segment identifiers, so the core forwards on IPv6 alone. This lets operators run traffic engineering and service routing without an MPLS label-switching plane.
What is the SRH in SRv6?
The SRH (Segment Routing Header) is an IPv6 extension header that carries the ordered list of SIDs a packet must follow. As the packet traverses the path, the active segment in the SRH determines the next hop, encoding the engineered route inside the IPv6 packet itself.
Should I choose SRv6 or SR-MPLS?
It depends on the core data plane. SRv6 removes MPLS and runs traffic engineering and VPN services on native IPv6, which suits IPv6-first and greenfield networks. SR-MPLS keeps the MPLS forwarding plane, which suits operators with an installed MPLS base who want segment routing without changing the data plane. OcNOS-SP runs both, so a network can migrate one domain at a time and interwork at the boundary.
Does SRv6 support L3VPN?
Yes. SRv6 carries L3VPN using the End.DT4, End.DT6, and End.DT46 endpoint behaviors from RFC 8986, which decapsulate a packet and look it up in the target VRF. BGP advertises the per-VPN SIDs as SRv6 services per RFC 9252, so a VPN runs over a pure IPv6 core with no MPLS service label.
What hardware supports SRv6 in OcNOS?
OcNOS-SP runs SRv6 on Broadcom Qumran service-provider platforms with uSID compression, so transit nodes forward on standard IPv6 with no SRH processing. The current list of SRv6-qualified platforms, with ASIC, port density, and version, is maintained in the OcNOS Hardware Compatibility List.