L2VPN pseudowire (PW) behavior differs between vendor platforms and device models, particularly around how VLAN tags are handled. Understanding the differences between VC type 4 (VLAN-based) and VC type 5 (Ethernet port-based) pseudowires, and the interoperability gotchas between EVC-based and non-EVC platforms, is critical when building multi-vendor L2VPN networks.

L2VPN Packet Structure

The basic structure of a packet traversing an L2VPN pseudowire is:

Tunnel header + VC label + Control Word + L2 PDU

Control Word

The control word is a 4-byte field inserted between the VC label and the L2 payload. In Cisco IOS/IOS XR, the control word is enabled by default.

The control word serves multiple purposes:

  • Provides a way to distinguish L2 frames from IP packets (disambiguates forwarding decisions at the remote PE).
  • Acts as an alternative to MPLS flow labels or entropy labels for ECMP load balancing on LSP paths.

Some MPLS implementations can use the control word to improve entropy (label-based load balancing), which is useful when traditional flow-based ECMP hashing doesn’t provide good load distribution.

VC Types

VC Type 4: VLAN-Based Pseudowire

A type 4 PW is VLAN-based. The ingress PE is not supposed to remove the incoming VLAN tags; the tags are transported transparently over the PW.

In EVC-based platforms (like Cisco ASR 9000 with IOS XR), the incoming attachment circuit (AC) may have a rewrite command that pops VLAN tags. Since type 4 PWs require at least one VLAN tag to be transported, EVC platforms solve this by inserting a dummy VLAN tag 0 on top of the frame. This ensures there is always a tag to send over the PW. The remote PE (also EVC-based) strips this dummy tag.

Problem: If you connect an EVC platform to a non-EVC platform with a type 4 PW, the non-EVC platform doesn’t recognize the dummy VLAN tag 0 and forwards it as a real outer tag. This breaks the connection.

Solution: Use transport-mode vlan passthrough (available in recent IOS XR releases). This disables the dummy tag insertion. Instead, the VLAN tags resulting from the EFP (Ethernet Flow Point) rewrite are sent transparently through the PW. The AC configuration must ensure at least one tag remains after rewrite.

VC Type 5: Ethernet Port-Based Pseudowire

A type 5 PW is Ethernet port-based. The ingress PE transports frames received on a main interface, or — for subinterfaces — frames after subinterface tags are removed.

Type 5 PWs have no requirement for a tagged frame. EVC platforms do not add a dummy tag for type 5 PWs. VLAN tag manipulation is applied, and the result (tagged or untagged) is transported transparently.

Cisco Defaults

PlatformDefault VC TypeEVC-Based?
IOS XR (ASR 9000)Type 5 (Ethernet)Yes
IOS XEVaries by AC typeNo (uses main/sub interfaces, not EVC)

Interoperability: EVC vs Non-EVC

EVC-based platforms (IOS XR) can insert a dummy VLAN tag 0 for type 4 PWs when VLAN rewrite occurs. Non-EVC platforms do not understand this behavior. When the two platforms connect:

  • EVC platform sees the dummy tag as metadata (strip it).
  • Non-EVC platform sees it as a real VLAN tag (forward it as outer VLAN).

This mismatch causes interoperability failures.

The fix is to use transport-mode vlan passthrough on the EVC side, which sends VLAN tags without adding the dummy tag. This requires that the AC rewrite rules leave at least one VLAN tag in the frame.

Configuration Example: IOS XE to IOS XR

Here’s a test case showing the problem and the solution.

IOS XE Configuration

IOS XE is not EVC-based. Use a main interface to avoid EVC features. Define a pseudowire class and attach it to the interface with xconnect:

pseudowire-class deniz_test
 encapsulation mpls
 interworking vlan

interface GigabitEthernet0/1/5
 description DENIZ_TEST_1
 mtu 9000
 no ip address
 load-interval 30
 negotiation auto
 xconnect 192.168.1.241 10027 encapsulation mpls pw-class deniz_test

IOS XR Configuration (Initial — with Problem)

IOS XR is EVC-based and defaults to type 5. To enable the dummy VLAN tag behavior, use type 4 with transport-mode vlan:

interface GigabitEthernet0/3/0/16.100 l2transport
 encapsulation dot1q 100
 mtu 9014

l2vpn
 pw-class deniz_test
  encapsulation mpls
  transport-mode vlan
 !
 xconnect group deniz_test
  p2p deniz_test
   interface GigabitEthernet0/3/0/16.100
   neighbor ipv4 192.168.1.251 pw-id 10027
   pw-class deniz_test

CE Configuration (Both Sides)

! IOS XR CE
interface GigabitEthernet0/3/0/17.100
 ipv4 address 10.100.20.2 255.255.255.0
 encapsulation dot1q 100

! IOS XE CE
interface GigabitEthernet0/1/6.100
 encapsulation dot1Q 100
 ip address 10.100.20.1 255.255.255.0

Test Result (Fails)

With transport-mode vlan on IOS XR (type 4 with dummy tag), ping fails:

ping 10.100.20.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.20.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

Why it fails: IOS XR sends VLAN 0 (dummy) + VLAN 100. IOS XE receives and forwards with both tags. The frame arrives at the CE with two VLAN tags, which doesn’t match the expected single tag.

Solution: transport-mode vlan passthrough

Replace transport-mode vlan with transport-mode vlan passthrough on the IOS XR side:

l2vpn
 pw-class deniz_test
  encapsulation mpls
  transport-mode vlan passthrough
 !

Test Result (Succeeds)

ping 10.100.20.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.20.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Why it works: transport-mode vlan passthrough disables dummy tag insertion. IOS XR sends VLAN 100 directly. IOS XE forwards it as-is. The frame arrives at the CE with the expected single VLAN tag.

Key Takeaways

  1. Type 4 PWs require a VLAN tag to be transported. EVC platforms add a dummy tag if rewrite removes all tags; non-EVC platforms don’t understand this.
  2. transport-mode vlan passthrough is the fix for multi-vendor type 4 PW deployments. Ensure the AC rewrite leaves at least one tag.
  3. Type 5 PWs (port-based) are simpler for multi-vendor deployments since no dummy tag is involved.
  4. Test thoroughly when mixing EVC (IOS XR ASR9000) and non-EVC (IOS XE) platforms.

References


The content of this post was created by the author; AI was used for editing and restructuring.