The ingress (SR source) inserts an SRH containing a list of IPv6 SIDs into the packet. The "Segments Left" field points to the current segment to process โ its address is the active IPv6 destination. Each SR-aware node, when the destination matches one of its local SIDs, decrements Segments Left, copies the next SID into the destination address, and executes the function encoded in the SID (END, END.X, END.DT4/DT6 for VPN, END.B6 for binding, etc.). Non-SRv6-aware routers simply forward the packet via standard IPv6 longest-prefix match because a SID is just an IPv6 address.
Traditional MPLS-TE requires a complex control plane (LDP, RSVP-TE) and per-flow state in the network core. SRv6 removes both by placing path information inside the packet header and using IPv6 as the data plane.
Each SID is 128 bits; long segment lists inflate overhead and may fragment packets or exceed MTU.
Not all linecards process full SRv6 Network Programming in hardware โ older ASICs may only handle the SRH in slow path.
Source routing has been an attack vector historically (RFC 5095 deprecates IPv6 RH0); SRv6 requires careful edge policy to drop untrusted SRHs from outside the SR domain.
Cisco (Clarence Filsfils et al.) publishes the initial drafts introducing the Segment Routing concept in the SPRING working group.
The IETF standardizes the general Segment Routing architecture (SR-MPLS and SRv6) in RFC 8402.
The SRH is standardized โ the SRv6 data plane becomes an official IETF standard.
SID behaviors (END, END.X, END.DT4, END.DT6, etc.) are defined โ the formal specification of SRv6 Network Programming.
Hyperscalers (Microsoft Azure, Alibaba HPN) report SRv6 deployments for routing RoCE traffic in AI-training clusters.
SRv6 is an IPv6 layer-3 protocol; it runs on any IPv6 forwarder, although full Network Programming requires SR-aware hardware.