The Locator part provides the location function. In general, each locator value must be unique in an SR domain. However, in certain scenarios, such as the scenario where anycast protection is configured, multiple devices may be configured with the same locator value. After a locator value is configured for a node, the system generates a locator route and propagates the route in the SR domain through an IGP, allowing other nodes to locate the node based on the route information received. In addition, all SRv6 SIDs advertised by the node can be reached through the route.
The Function part identifies an instruction bound to the node that generates the SRv6 SID.
In addition to the Locator and Function parts, an SRv6 SID can also include the Arguments part. If this is the case, the SRv6 SID is expressed in the Locator:Function:Arguments format. The Arguments part occupies the least significant bits of the IPv6 address and can be used to define packet flow and service information. Currently, an important application is to use arguments to implement split horizon for broadcast, unknown-unicast, and multicast (BUM) traffic forwarding in an EVPN VPLS scenario where CE multi-homing is deployed. For details about the application, see Split Horizon.
The Function and Arguments parts can both be defined, resulting in an SRv6 SID structure that improves network programmability.
There are a wide range of SRv6 SIDs associated with different functions.
An End SID is an endpoint SID that identifies a destination node. It is similar to a node SID in SR-MPLS.
After an End SID is generated on a node, the node propagates the SID to all the other nodes in the SRv6 domain through an IGP. All nodes in the SRv6 domain know how to implement the instruction bound to the SID.
An End.X SID is a Layer 3 cross-connect endpoint SID that identifies a link. It is similar to an adjacency SID in SR-MPLS.
After an End.X SID is generated on a node, the node propagates the SID to all the other nodes in the SRv6 domain through an IGP. Although the other nodes can all obtain the SID, only the node generating the SID knows how to implement the instruction bound to the SID.
An End.DT4 SID is a provider edge (PE)-specific endpoint SID that identifies an IPv4 VPN instance. The instruction bound to the End.DT4 SID is to decapsulate packets and search the routing table of an IPv4 VPN instance for packet forwarding. The End.DT4 SID is equivalent to an IPv4 VPN label and used in L3VPNv4 scenarios. It can also be used to identify a public network instance.
An End.DT4 SID can either be manually configured or automatically allocated by BGP within the dynamic SID range of the specified locator.
An End.DT6 SID is a PE-specific endpoint SID that identifies an IPv6 VPN instance. The instruction bound to the End.DT6 SID is to decapsulate packets and search the routing table of an IPv6 VPN instance for packet forwarding. The End.DT6 SID is equivalent to an IPv6 VPN label and used in L3VPNv6 scenarios. It can also be used to identify a public network instance.
An End.DT6 SID can either be manually configured or automatically allocated by BGP within the dynamic SID range of the specified locator.
An End.DX4 SID is a PE-specific Layer 3 cross-connect endpoint SID that identifies an IPv4 CE. The instruction bound to the End.DX4 SID is to decapsulate packets and forward the decapsulated IPv4 packets over the Layer 3 interface bound to the SID. The End.DX4 SID is equivalent to a label identifying a CE-connected adjacency and used in L3VPNv4 scenarios.
An End.DX4 SID can either be manually configured or automatically allocated by BGP within the dynamic SID range of the specified locator.
An End.DX6 SID is a PE-specific Layer 3 cross-connect endpoint SID that identifies an IPv6 CE. The instruction bound to the End.DX6 SID is to decapsulate packets and forward the decapsulated IPv6 packets over the Layer 3 interface bound to the SID. The End.DX6 SID is equivalent to a label identifying a CE-connected adjacency and used in L3VPNv6 scenarios.
An End.DX6 SID can either be manually configured or automatically allocated by BGP within the dynamic SID range of the specified locator.
An End.DX2 SID is a Layer 2 cross-connect endpoint SID that identifies an endpoint. The instruction bound to the End.DX2 SID is to pop the IPv6 header and extension headers and then forward the remaining packet content to the outbound interface bound to the SID. The End.DX2 SID can be used in EVPN VPWS scenarios.
If a bypass tunnel exists on the network, an End.DX2L SID is generated automatically.
If a bypass tunnel exists on the network, an End.DT2UL SID is generated automatically. The SID can be used to send unicast traffic over the bypass tunnel when a CE is dual-homed to PEs.
An End.OP SID (OAM endpoint with punt) is an OAM SID that specifies the punt behavior to be implemented for OAM packets in ping and tracert scenarios. On the network shown in Figure 11, if ingress node A attempts to ping the End.X SID 2001:DB8:A4::45 between nodes D and E through the End.X SID 2001:DB8:A2::23, node D needs to process and respond to the ICMPv6 Echo Request packet sent by node A. When constructing the ping packet, node A needs to insert the End.OP SID 2001:DB8:A4::1 of node D into the packet. After receiving the packet, node D finds that the destination address of the packet is its own End.OP SID. Then, node D checks whether 2001:DB8:A4::45 is its local SID. If yes, node D returns a ping success packet. If not, node D reports an error indicating that the SID is not its local SID.
End.B6 (short for endpoint bound to an SRv6 TE Policy) is mainly used in scenarios such as traffic steering into SRv6 TE Policies and tunnel stitching. End.B6 covers End.B6.Insert and End.B6.Encaps.
An End.M SID is used in an SRv6 egress protection scenario. For details about the functions of the End.M SID, see Egress Protection.