Depending on how the SRH is handled, different behavior variants are defined for the End and End.X behaviors. The End and End.X behaviors can support these variants, either individually or in combinations.
Penultimate Segment Pop (PSP) of the SRH variant
Penultimate Segment Pop (PSP) of the SRH variant: An SR Segment Endpoint Nodes receive the IPv6 packet with the Destination Address field of the IPv6 Header equal to its SID address.
A penultimate SR Segment Endpoint Node is one that, as part of the SID processing, copies the last SID from the SRH into the IPv6 Destination Address and decrements the Segments Left value from one to zero.
The PSP operation takes place only at a penultimate SR Segment Endpoint Node and does not happen at non-penultimate endpoint nodes. When a SID of PSP-flavor is processed at a non-penultimate SR Segment Endpoint Node, the PSP behavior is not performed since Segments Left would not be zero.
The SR Segment Endpoint Nodes advertise the SIDs instantiated on them via control plane protocols. A PSP-flavored SID is used by the Source SR Node when it needs to instruct the penultimate SR Segment Endpoint Node listed in the SRH to remove the SRH from the IPv6 header.
Ultimate Segment Pop (USP) of the SRH variant
The SRH processing of the End and End.X behaviors are modified. If Segments Left is 0, then:
-
Update the Next Header field in the preceding header to the Next Header value of the SRH.
-
Decrease the IPv6 header Payload Length by 8*(Hdr Ext Len+1).
-
Remove the SRH from the IPv6 extension header chain.
-
Proceed to process the next header in the packet.
One of the applications of the USP flavor is when a packet with an SRH is destined to an application on hosts with smartNICs implementing SRv6. The USP flavor is used to remove the consumed SRH from the extension header chain before sending the packet to the host.
Ultimate Segment Decapsulation (USD) variant
The Upper-layer header processing of the End and End.X behaviors are modified:
-
End behavior: If the Upper-layer Header type is 41 (IPv6), then:
-
Remove the outer IPv6 Header with all its extension headers.
-
Submit the packet to the egress IPv6 FIB lookup and transmission to the new destination.
-
Else, if the Upper-layer Header type is 4 (IPv4).
-
Remove the outer IPv6 Header with all its extension headers.
-
Submit the packet to the egress IPv4 FIB lookup and transmission to the new destination.
-
Else, process as per Section 4.1.1 (Upper-Layer Header) of IETF RFC 8986 SRv6 network programming.
-
End.X behavior: If the Upper-layer Header type is 41 (IPv6) or 4 (IPv4), then:
-
Remove the outer IPv6 Header with all its extension headers.
-
Forward the exposed IP packet to the L3 adjacency.
-
Else, process as per Section 4.1.1 (Upper-Layer Header) of IETF RFC 8986 SRv6 network programming.
One of the applications of the USD flavor is the case of TI-LFA in P routers with encapsulation with H.Encaps. The USD flavor allows the last Segment Endpoint Node in the repair path list to decapsulate the IPv6 header added at the TI-LFA Point of Local Repair and forward the inner packet.