End.DT4 function provides L3VPN service over SRv6 data plane for the customers who use IPv4 address space. Working mechanism is almost same with MPLS data plane because we we will still have VRFs and MP-BGP. End.DT4 function provides FIB lookup in a specific tenant table (VRF) at the egress PE. This would be equivalent to the per-VRF VPN label in MPLS but of course we will use SRv6 SID instead of VPN Label.
According to topology, let’s assume we have some SR Policy optimization constraints and that means we will need SRH. Let’s assume we have defined explicit-path through A3 and A5.
SR Policy on A1: SR Encapsulation Source Address: 2981:40:A1::1 SID List: 2981:40:A3::1, 2981:40:A5::1, 2981:40:A6::4:1 Behavior: Encapsulation with SRH
(2981:40:A3::1 --> End, 2981:40:A5::1 --> End)
Packets will be sent with IPv6 encapsulation with SRH insertion.
Packets again will be sent through the path with the locator. (We already assumed that locator is part of our IGP) After packets arrived to the A6, A6 will use following entries;
Address: 2981:40:A6::4:1 Behavior: End.DT4 Table: VRF Table of C2
Note that IPv6 L3VPN will work same. The only difference we will need to use End.DT6 function which is Endpoint with decapsulation and specific IPv6 table lookup.
Note that, End.DT4 and End.DT6 can be also defined to lookup for global routing table. In that cases they support IPv4inIPv6 and IPv6inIPv6 decapsulation.