The SRv6 processing is performed in a specialized SRv6 FPE. The origination or termination of SRv6 on services require each the configuration of a dedicated SRv6 FPE and therefore cannot share the same FPE. A single FPE can be configured for SRv6 origination. One or more FPEs can be configured for SRv6 termination. Transit SRv6 routers do not need SRv6 FPEs.
Figure: Packet walkthrough showing both origination and termination on different SRv6 FPEs shows a couple of SRv6 FPEs that are used to originate and terminate a VPRN service with SRv6 encapsulation.
The SRv6 FPE egress datapath receives the L2 or L3 service packet and pushes the SRv6 encapsulation header for the primary path or the backup path.
The hop-limit field in the outer IPv6 header of the SRv6 tunnel is set to 255 for all transit IPv4, IPv6, and Ethernet packets encapsulated into SRv6. The hop-limit for OAM packets originated by the CPM on the router is set according to the specific OAM probe. See the 7450 ESS, 7750 SR, 7950 XRS, and VSR OAM and Diagnostics Guide for more details.
The SRv6 FPE ingress datapath does the lookup on the outer DA field and forwards the packet to one of the candidate egress network IP interfaces based on the flow label and or SA/DA fields of the outer IPv6 packet header. See Using flow label in load-balancing of IPv6 and SRv6 encapsulated packets for more details on the spraying of SRv6 packets.
The following diagram describes details of the datapath processing of a service packet that is originated on a VPRN with SRv6 encapsulation.
The following procedure is common to the transit router role and the service termination router role.
On the ingress IP network interface, the SRv6 feature concurrently performs a couple of IPv6 address lookups on a received IPv6 packet: a first (longest prefix match) lookup checks if the address in the outer header DA field matches either the SRv6 local locator subnet, a local End function or local End.X function. This first lookup is for the current SID. A second lookup is performed on the next-SID in the SRH (when the IPv6 packet has an SRH). The SRv6 feature reads next-SID using the index value after decrementing the Segments-Left field.
The subsequent processing depends on the outcome of the first lookup:
If the match is on the locator only:
if the payload type is IPv4, IPv6, or Ethernet, the packet is forwarded to the SRv6 FPE for potential service function processing; see Service origination and termination roles for further details.
The payload type refers to the value of the last next-header field in the processing chain of the packet. This could be the next-header field of the outer IPv6 packet, if there is no SRH. This could also be the next-header field of the active SRH (Segments-Left=1) for which the last SID matches the locator.
If the payload type indicates any other protocol, including ICMPv6 (ICMP ping packet) and UDP (potential traceroute message when hop-limit field has a value of 1), the packet is redirected to the CPM for further processing. Protocol matching ICMPv6 ping and UDP traceroute have their packets processed as described in 7450 ESS, 7750 SR, 7950 XRS, and VSR OAM and Diagnostics Guide. Other protocol packets are dropped.
If the match is on a specific local End function and the next SID lookup is not a local locator, the packet is processed as per the transit router role for these functions as detailed in Transit router role with or without segment termination.
If the match is on a specific local End function and the next SID resulted in a match on a local locator, the packet is processed as per the above parent bullet item with the next-header field used in the processing is that of the SRH.
If the match is on a specific local End.X function, regardless of the next SID match outcome the packet is processed as per the transit router role for these functions; see Transit router role with or without segment termination.
If the match is on a regular IPv6 route or there is no match, the packet is forwarded or dropped. For forwarded packets, the destination address could match the locator prefix or a regular IPv6 prefix of a remote node.
When the match is on the locator entry of the FIB, the egress SRv6 FPE datapath receives the SRv6 encapsulated packet and performs the detailed processing of the specific SID function as per https://tools.ietf.org/html/rfc8986. It then removes the SRv6 encapsulation headers, including SRH if any, and inserts a service label, with the value derived from the FUNCTION field value, into the inner service packet.
The egress SRv6 FPE decrements and propagates, into the forwarded inner packet’s IPv4 TTL field or the IPv6 hop-limit field, the minimum of the incoming outer header hop-limit and inner header hop-limit (or TTL) values.
The ingress SRv6 FPE does an ILM lookup on the service label and forwards the packet to the service context for further processing.
The following diagram describes details of the datapath processing of a service packet that is terminated on a VPRN with SRv6 encapsulation.