SRv6 Segments

SRv6 segments are identified using segment identifiers (SIDs) encoded as IPv6 addresses. An SRv6 SID consists of two parts: Locator and Function, expressed in the Locator:Function format, as shown in Figure 1. The Locator part occupies the most significant bits of the IPv6 address, and the Function part occupies the remaining bits.
Figure 1 SRv6 SID

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.

Local SID Table

Each SRv6-capable node keeps a local SID table (named My Local SID Table) containing all SRv6 SIDs generated on the node. An SRv6 forwarding table (FIB) can be generated based on this table. The local SID table provides the following functions:
  • Defines locally generated SIDs, such as End.X SIDs.
  • Specifies instructions bound to the SIDs.
  • Stores forwarding information related to the instructions, such as outbound interface and next hop information.

There are a wide range of SRv6 SIDs associated with different functions.

End SID

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.

Figure 2 End SID

End.X 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.

Figure 3 End.X SID

End.DT4 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.

Figure 4 End.DT4 SID

End.DT6 SID

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.

Figure 5 End.DT6 SID

End.DX4 SID

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.

Figure 6 End.DX4 SID

End.DX6 SID

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.

Figure 7 End.DX6 SID

End.DX2 and End.DX2L SIDs

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.

Figure 8 End.DX2 and End.DX2L SIDs

End.DT2U and End.DT2UL SIDs

An End.DT2U SID is a Layer 2 cross-connect endpoint SID to which unicast MAC table lookup is bound. It also identifies an endpoint. The instruction bound to the End.DT2U SID is to pop the IPv6 header and extension headers, search the MAC address table based on the exposed destination MAC address, and then forward the remaining packet content to the outbound interface bound to the SID. The End.DT2U SID can be used in EVPN VPLS unicast scenarios.
Figure 9 End.DT2U SID

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.

End.DT2M SID

An End.DT2M SID is a Layer 2 cross-connect endpoint SID to which broadcast-based flooding is bound. It also identifies an endpoint. The instruction bound to the End.DT2M SID is to pop the IPv6 header and extension headers and then broadcast the remaining packet content in the bridge domain (BD). The End.DT2M SID is used in EVPN VPLS BUM scenarios.
Figure 10 End.DT2M SID

End.OP SID

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.

Figure 11 End.OP SID

End.B6 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.

  • The End.B6.Insert instruction can be disassembled into End + B6 + Insert, where B6 indicates the application of an SRv6 TE Policy and Insert indicates the insertion of an SRH after the IPv6 header. This instruction includes the following operations: inserts an SRH (including segment lists) after the IPv6 header, sets the destination address to the first SID of a specified SRv6 TE Policy, looks up the corresponding table, and forwards the new IPv6 packet accordingly.
  • The End.B6.Encaps instruction can be disassembled into End + B6 + Encaps, where B6 indicates the application of an SRv6 TE Policy and Encaps indicates the encapsulation of an outer IPv6 header and SRH. This instruction includes the following operations: decrements the SL value of the inner SRH by 1, copies the SID to which the SL field is pointing to the DA field of the inner IPv6 header, encapsulates an IPv6 header and SRH (including segment lists), sets the source address to the address of the current node and the destination address to the first SID of the involved SRv6 TE Policy, sets other fields in the outer IPv6 header, looks up the corresponding table, and forwards the new IPv6 packet accordingly.

End.M SID

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.

Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
< Previous topic Next topic >