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
| Platform | Default VC Type | EVC-Based? |
|---|---|---|
| IOS XR (ASR 9000) | Type 5 (Ethernet) | Yes |
| IOS XE | Varies by AC type | No (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
- 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.
transport-mode vlan passthroughis the fix for multi-vendor type 4 PW deployments. Ensure the AC rewrite leaves at least one tag.- Type 5 PWs (port-based) are simpler for multi-vendor deployments since no dummy tag is involved.
- 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.