SID Structure¶
An SRv6 Segment Identifier (SID) is a 128-bit value, formatted as a standard IPv6 address. It encodes both the location of a node and the behavior to be executed.
Anatomy of an SRv6 SID¶
|<------------ 128 bits ------------->|
| Locator | Function | Arguments|
|<-- L bits --->|<-F bits->|<-A bits->|
| Field | Description | Typical Size |
|---|---|---|
| Locator | Routable prefix identifying the node | 40-64 bits |
| Function | Identifies the local behavior (End, End.DT4, etc.) | 16-24 bits |
| Arguments | Optional parameters for the function | 0-48 bits |
Decode a SID
Paste any SID into the SRv6 SID Decoder to see its block, node, function and argument bits for the lengths you choose, and whether it sits in 5f00::/16.
Example¶
SID: 5f00:0:1::100
Breakdown:
Locator: 5f00:0:1::/48 (identifies the node)
Function: ::100 (End.DT4 - decap and lookup in IPv4 table)
Args: (none)
Locator as an IGP route
The locator block is advertised as a regular IPv6 route in the IGP (IS-IS or OSPFv3). This ensures reachability to any SRv6-capable node in the network.
IANA-Allocated SRv6 SID Block (5f00::/16)¶
RFC 9602 (October 2024) allocates a dedicated IPv6 prefix for SRv6 Segment Identifiers. IANA assigned the block from the IPv6 Unicast Address Registry and recorded it in the IPv6 Special-Purpose Address Registry.
| Property | Value |
|---|---|
| Address Block | 5f00::/16 |
| Name | Segment Routing (SRv6) SIDs |
| RFC | RFC 9602 |
| Allocation Date | 2024-04 |
| Source | True |
| Destination | True |
| Forwardable | True |
| Globally Reachable | False |
| Reserved-by-Protocol | False |
The 5f00::/16 block is forwardable within SR domains but is explicitly marked as not globally reachable: packets carrying these addresses as destination should not transit the public Internet.
A typical allocation hierarchy within this block:
5f00::/16 <- IANA SRv6 SID block
5f00:<domain>::/32 <- Operator / SR domain
5f00:<domain>:<node>::/48 <- Node locator
5f00:<domain>:<node>:<func>::/64 <- SID (locator + function)
Using Operator GUA Prefixes vs 5f00::/16¶
RFC 9602 does not mandate 5f00::/16. Operators can continue using their own globally unique address (GUA) prefixes as SRv6 locators. Both approaches are valid:
| Approach | Prefix Source | Pros | Cons |
|---|---|---|---|
| IANA SRv6 block | 5f00::/16 | Instantly recognizable in captures and ACLs; easy filtering; no GUA consumption | Not globally routable; requires explicit IGP/BGP advertisement within the SR domain |
| Operator GUA | Provider /32 or /48 | Already routable in the operator's network; dual-use as IPv6 reachability | Consumes GUA space; harder to distinguish SRv6 traffic from regular IPv6 |
Most early SRv6 deployments (China Mobile, SoftBank, and others) use operator-assigned GUA prefixes. RFC 9602 provides a complementary option, especially useful for greenfield deployments and inter-domain SRv6 where a common recognizable prefix simplifies filtering.
Filtering 5f00::/16 at Domain Boundaries¶
Whether you use 5f00::/16 or your own GUA, you must prevent SRv6 SIDs from leaking outside the SR domain.
For deployments using operator GUA prefixes, apply the same principle with your locator prefix range (see also RFC 8754 Section 5.1).
Further Reading¶
- SRv6 SID Decoder - Decode a SID or uSID container bit by bit
- Network Programming - How SIDs map to behaviors
- What is SRv6? - Back to overview
- uSID Compression - Compressed SID encoding (RFC 9800)
- Security - SRv6 security considerations
- RFC 9602 - The IANA 5f00::/16 SRv6 SID block
References¶
- RFC 8986 - SRv6 Network Programming - Defines SID structure, locator, function, and argument fields
- RFC 9602 - SRv6 SIDs in the IPv6 Addressing Architecture - IANA allocation of
5f00::/16for SRv6 SIDs - RFC 8754 - IPv6 Segment Routing Header (SRH) - SRH specification and security considerations
- IANA IPv6 Special-Purpose Address Registry - Official registry entry for
5f00::/16 - Segment Routing - segment-routing.net - Community resource with tutorials, demos, and SRv6 deployment information