SRv6 End.DX2 Function

In the MPLS Data plane, we have a lot of experience over P2P L2VPN services. SRv6 can provide same functionality with MPLS Data plane and MPLS VPN label. Instead of MPLS Tunnel label and VPN label we can use Segment Routing Header (SRH). SRH is a new type of IPv6 Routing Extension Header. Any kind of function can be defined with IPv6 address as a SID inside the SRH.

SRv6 End.DX2 Function for E-Line

An E-Line is a service type which connects exactly 2 UNIs where those 2 UNIs can communicate only with one another. With SRv6 data plane, End.DX2 function is used for that kind of services.

End.DX2: The “Endpoint with decapsulation and Layer-2 cross-connect to OIF” function.

When a Node receives a packet destined to one of its local SID which is End.DX2 SID,

IF NH=SRH and SL > 0

 drop the packet (*)         

ELSE IF ENH  = 59 (**)                    

 pop the (outer) IPv6 header and its extension headers

 forward the resulting frame to OIF bound to the SID S

ELSE

 drop the packet

(*) An End.DX2 SID must always be the last SID, or it can be the    Destination Address of an IPv6 packet with no SRH header.

(**)The next-header value 59 allocated to IPv6 No Next Header. When the SID corresponds to function    End.DX2 and the Next-Header value is 59, it means that there is no more header.

According to topology;

We have one customer and they have 2 sites; C1 and C2 are customer routers or switches.

On A1 and A6, there are 2 local SID defined and they have End and End.DX2 function. Both of the SIDs have the same Locator.

Locator A1: 2981:40:A1::/64

Locator A6: 2981:40:A6::/64

Let’s assume there is a unicast packet (it will be also same for BUM traffic) sent from C1 to C2. The packet will be received from int_c1 interface of A1. And these packets will be forward through SRv6 data plane according to SR policy.

SR Policy on A1:

SR Encapsulation Source Address: 2981:40:A1::1

Next SID: 2981:40:A6::2:1

Behavior: Encapsulation

In this case, we are using best effort path, that’s why SRv6 tunneling without SRH will be enough. Our IPv6 destination address is SRv6 SID which already provides the E-Line service.

Packets 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::2:1

Behavior: End.DX2 OIF: int_c2

End.DX2 with Path Optimization

In the previous example, SRH is not used, because our SR policy was already working with best effort. But if we have some SR Policy optimization constraints we may need SRH.  For example if you have following SR policy on A1 and applied to this service, your packet will be encapsulated into IPv6 with SRH.

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::2:1

Behavior: Encapsulation with SRH

Packets would be sent with IPv6 encapsulation with SRH;

About: fabricplane