12-01-2022 07:47 PM - edited 12-01-2022 07:48 PM
While labbing EVPN-VPWS on CSR1000v and XR9000v, I've found an interoperability issue. I can successfully create an EVPN-VPWS between two CSR1000vs or two XR9000vs, but not between a CSR1000v and XR9000v.
The problem is that XR9000v does not use the control word, and CSR1000v does. I cannot find a way to turn the control word on for the XR9000v, nor can I find a way to turn the control word off on the CSR1000v.
Is there a solution to this that I am overlooking?
Is this also an issue between real hardware, say an ASR920 and ASR9000?
Configs are below:
! CSR1000v
l2vpn evpn instance 1 point-to-point
vpws context EXAMPLE
service target 100 source 100
member Gi3
! XR9000v
l2vpn
xconnect group EVPN
p2p EXAMPLE
interface Gi0/0/0/4
neighbor evpn evi 1 service 100
Traffic using this VPWS has been captured in the pcap below. The ARP from 10.0.0.1 has the control word set. 10.0.0.1 is behind the CSR1000v. The raw MPLS packets are ARPs from 10.0.0.2, which do not have the control word set. 10.0.0.2 is behind the XR9000v.
https://www.cloudshark.org/captures/a014653cf4d9
You can see the CSR1000v has 8 dropped packets because it cannot decode them since the control word is missing:
#show l2vpn evpn vpws vc all det
EVPN name: EXAMPLE, state: up, type: point-to-point
EVPN ID: 1
VPWS Service Instance ID: Source 100, Target 100
Labels: Local 41, Remote 24006
Next Hop Address: 10.3.3.3
Associated member interface Gi3 up, Gi3 status is up
Dataplane:
SSM segment/switch IDs: 4141/8193 (used), PWID: 2
Rx Counters
0 input transit packets, 0 bytes
8 drops
Tx Counters
5 output transit packets, 610 bytes
0 drops
18 VC FSM state transitions, Last 10 shown
DpUp: Act -> Est, Wed Nov 30 21:51:22.221 (1d05h ago)
RemDn: Est -> RemWait, Wed Nov 30 22:03:06.127 (1d05h ago)
EviDn: RemWait -> Prov, Wed Nov 30 22:03:07.588 (1d05h ago)
EviUp: Prov -> LocWait, Wed Nov 30 22:03:51.747 (1d05h ago)
LocUp: LocWait -> RemWait, Wed Nov 30 22:03:51.748 (1d05h ago)
EviDn: RemWait -> Prov, Wed Nov 30 22:05:26.863 (1d05h ago)
EviUp: Prov -> LocWait, Wed Nov 30 22:06:42.052 (1d05h ago)
LocUp: LocWait -> RemWait, Wed Nov 30 22:06:42.053 (1d05h ago)
RemUp: RemWait -> Act, Wed Nov 30 22:08:43.747 (1d05h ago)
DpUp: Act -> Est, Wed Nov 30 22:08:43.757 (1d05h ago)
02-10-2023 01:42 AM
Hello @aohanian,
Yes, this issue could arise not only in the simulation environment with CSR1000v and XR9000v, but also in the real network environment with different platforms, such as an ASR920 and an ASR9000.
The use of control word is vendor-specific, and different vendors have different implementations and configurations for EVPN-VPWS.
In your case, it seems that the XR9000v implementation does not support the use of the control word, while the CSR1000v implementation requires it.
To resolve this interoperability issue, you can try this on the CSR1000v side (considering that XR9000v does not use/support the control word):
=> Modify the CSR1000v configuration to not use the control word.
You can do this by disabling the "mpls control-word" option under the interface configuration for the PE-CE link:
[no mpls control-word].
02-17-2023 03:22 PM
Thank you, that sounds promising but I'm not seeing that as an option on the PE-CE interface.
R1(config-if)#int gi3
R1(config-if)#no mpls ?
accounting Enable MPLS accounting on this interface
bgp MPLS BGP commands
flow Flow related commands
ip Configure dynamic MPLS forwarding for IP
label Label properties
ldp Configure Label Distribution Protocol (LDP) parameters
mldp Configure interface MLDP routing protocol
mtu Set MPLS Maximum Transmission Unit
netflow Configure Egress Netflow Accounting
propagate-cos Copy topmost MPLS Experimental value to exposed IP Prec/MPLS
Exp
tp Configure MPLS-TP for interface
traffic-eng Configure Traffic Engineering parameters
uni Enable OIF uni
02-17-2023 04:02 PM - edited 02-18-2023 02:33 AM
Hello @aohanian
And under the l2vpn config, do you have this command ? option under 'l2transport' config.?
This option is only available in the context of L2VPN configuration.
02-18-2023 01:33 PM
No I still don't see where I can configure that, can you be more specific?
R1(config-l2vpn)#?
L2VPN configuration commands:
default Set a command to its defaults
exit Exit from L2VPN configuration mode
logging Configure logging flags
no Negate a command or set its defaults
pseudowire Configure l2vpn pseudowire parameters
redundancy Configure L2VPN redundancy parameters
router-id Configure a Layer2 router-id
shutdown Shutdown Layer2 VPN
R1(config)#l2vpn evpn instance 1 point-to-point
R1(config-evpn-evi)#?
L2VPN EVPN instance configuration commands:
auto-route-target Automatically set a route-target
default Set a command to its defaults
exit Exit from L2VPN evpn instance configuration mode
no Negate a command or set its defaults
rd EVPN Route Distinguisher
route-target Route Target VPN Extended Communities
vpws EVPN Virtual Private Wire Service configuration
R1(config-evpn-evi)#vpws context TEST
R1(config-evpn-vpws)#?
L2VPN EVPN VPWS configuration commands:
default Set a command to its defaults
exit Exit from L2VPN evpn vpws configuration mode
member EVPN member configuration
no Negate a command or set its defaults
remote L2VPN remote peer configuration commands
service VPWS Service Instance
shutdown Shut down the EVPN VPWS service
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide