Epipe services support SRv6 End.DX2 behavior. Currently, the SRv6 SID for End.DX2 is signaled by EVPN-VPWS AD per-EVI routes.
The following CLI configures an Epipe service for SRv6:
+--epipe
+--segment-routing-v6 <instance-id>
| +--locator <locator-name>
| | +--function
| | | +--end-dx2 <integer>
| +--bgp-evpn
| | +-- segment-routing-v6 <number>
| | | +-- admin-state <keyword>
| | | +-- default-route-tag <number>
| | | +-- ecmp <number>
| | | +-- force-vc-forwarding <keyword>
| | | +-- oper-group <reference>
| | | +-- route-next-hop
| | | | +-- ip-address <ip-address>
| | | | +-- system-ipv4
| | | | +-- system-ipv6
| | | +-- source-address <global-unicast-ipv6-address>
| | | +-- srv6
| | | +-- default-locator <reference>
| | | +-- instance <reference>
Where the following conditions apply:
The SRv6 Epipe is configured with the locator that is used. This determines the SID structure and value that is advertised in the AD per EVI route for the service.
A single SRv6 instance with a single locator is supported on Epipes.
The SRv6 Epipe uses an End.DX2 function value that, if not configured, is dynamically allocated by the system, out of the dynamic range available for the locator. If the end-dx2 function is configured, then this value is used instead of a dynamic value.
The following is supported in SRv6 Epipes:
EVPN-VPWS is the control plane technology to signal SRv6 Epipes. The local-attachment-circuit Ethernet-tag value is advertised in an AD per-EVI route that may have a zero or non-zero ESI (if multi-homing is used). The AD per-EVI routes are advertised along with the Layer-2 SRv6 Services TLV encoding with an End.DX2 behavior and using the transposition procedures described in Transposition procedures when advertising service routes. Upon reception the ingress PE creates an EVPN destination, as long as the received route includes the remote expected Ethernet-tag and route-target. The following CLI excerpt shows a configuration example and the created EVPN SRv6 destination on the PE:
*A:PE-3# configure service epipe 200
*A:PE-3>config>service>epipe# info
----------------------------------------------
segment-routing-v6 1 create
locator "LOC-1"
function
end-dx2 200
exit
exit
exit
bgp
exit
bgp-evpn
local-attachment-circuit ac-23 create
eth-tag 23
exit
remote-attachment-circuit ac-5 create
eth-tag 5
exit
evi 200
segment-routing-v6 bgp 1 srv6-instance 1 default-locator "LOC-1" create
source-address 2001:db8::3
ecmp 2
route-next-hop system-ipv6
no shutdown
exit
exit
sap lag-1:200 create
no shutdown
exit
no shutdown
----------------------------------------------
*A:PE-3>config>service>epipe# /show service id 200 segment-routing-v6 destinations
===============================================================================
TEP, SID
===============================================================================
Instance TEP Address Segment Id
-------------------------------------------------------------------------------
1 2001:db8::5 cafe:1:0:5:c:8000::
-------------------------------------------------------------------------------
Number of TEP, SID: 1
-------------------------------------------------------------------------------
===============================================================================
===============================================================================
Segment Routing v6 Ethernet Segment Dest
===============================================================================
Instance Eth SegId Num. Macs Last Change
-------------------------------------------------------------------------------
No Matching Entries
===============================================================================
SRv6 Epipes support EVPN Multi-homing. Their associated Ethernet Segments (ES) can be shared among MPLS services and other SRv6 services.
EVPN Multi-homing for SRv6 Epipes follows these guidelines:
The ES used by SRv6 Epipes is only supported in evi-rt mode, therefore separate AD per-ES routes per service are advertised for SRv6 Epipes.
If evi-rt-set is configured in the ES, the SRv6 services are skipped when packing route-targets for the AD per-ES route. This is the same behavior as having a Epipe services with a configured vsi-export policy; the system also skips the route-targets for Epipes with vsi-export when packing multiple route-targets in the same AD per-ES route.
22 2021/05/21 18:23:10.247 UTC MINOR: DEBUG #2001 Base Peer 1: 2001:db8::2
"Peer 1: 2001:db8::2: UPDATE
Peer 1: 2001:db8::2 - Received BGP UPDATE:
Withdrawn Length = 0
Total Path Attr Length = 125
Flag: 0x90 Type: 14 Len: 48 Multiprotocol Reachable NLRI:
Address Family EVPN
NextHop len 16 Global NextHop 2001:db8::2
Type: EVPN-AD Len: 25 RD: 192.0.2.2:200 ESI: 01:d8:47:ff:00:00:00:00:01:
00, tag: MAX-ET Label: 0
Flag: 0x40 Type: 1 Len: 1 Origin: 0
Flag: 0x40 Type: 2 Len: 0 AS Path:
Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
Flag: 0xc0 Type: 16 Len: 16 Extended Community:
target:64500:200
esi-label:3/Single-Active
Flag: 0xc0 Type: 40 Len: 37 Prefix-SID-attr:
SRv6 Services TLV (37 bytes):-
Type: SRV6 L2 Service TLV (6)
Length: 34 bytes, Reserved: 0x0
SRv6 Service Information
Service Information Sub-TLV Type 1
Type: 1 Len: 30 Rsvd1: 0x0
SRv6 SID: ::
SID Flags: 0x0 Endpoint Behavior: 0x18 Rsvd2: 0x0
SRv6 SID Sub-Sub-TLV
Type: 1 Len: 6
BL:0 NL:0 FL:0 AL0 TL:0 TO:0
The creation of ES destinations follows the same rules as in EVPN-VPWS services with MPLS transport, except that the ES destination is resolved to remote SRv6 SIDs, as shown in the following example:
*A:PE-5# show service id 200 segment-routing-v6 destinations
===============================================================================
TEP, SID
===============================================================================
Instance TEP Address Segment Id
-------------------------------------------------------------------------------
No Matching Entries
===============================================================================
===============================================================================
Segment Routing v6 Ethernet Segment Dest
===============================================================================
Instance Eth SegId Num. Macs Last Change
-------------------------------------------------------------------------------
1 01:d8:47:ff:00:00:00:00:01:00 0 06/18/2021 17:04:15
-------------------------------------------------------------------------------
Number of entries: 1
-------------------------------------------------------------------------------
===============================================================================
*A:PE-5# show service id 200 segment-routing-v6 esi 01:d8:47:ff:00:00:00:00:01:00
===============================================================================
Segment Routing v6 Ethernet Segment Dest
===============================================================================
Instance Eth SegId Num. Macs Last Change
-------------------------------------------------------------------------------
1 01:d8:47:ff:00:00:00:00:01:00 0 06/18/2021 17:04:15
-------------------------------------------------------------------------------
Number of entries: 1
-------------------------------------------------------------------------------
===============================================================================
===============================================================================
Segment Routing v6 Dest TEP Info
===============================================================================
Instance TEP Address Segment Id Last Change
-------------------------------------------------------------------------------
1 2001:db8::2 cafe:1:0:2:c:8000:: 06/18/2021 17:04:15
-------------------------------------------------------------------------------
Number of entries : 1
-------------------------------------------------------------------------------
===============================================================================