mlx4 driver stripping inner vlan from double-tagged frame


I’m trying to send a frame that has two VLAN tags (two 0x8100 tags) out of a Mellanox ConnectX-3 40G NIC.

When tx-vlan-offload is turned on (which it is by default), I see the inner VLAN tag is missing when I sniff the frame on the wire, despite being present when the frame is sent out to the interface (as seen in tcpdump).

When I turn tx-vlan-offload off, then both VLAN tags are present on the wire as expected.

I’m using version 3.1-1.0.4 of the mlx4 driver.

Does anyone know why this is happening? Is it a bug in the driver? Is it a known issue?


See also HowTo Configure QinQ Encapsulation per VF in Linux (VST) for ConnectX-3 Pro



you can try the last driver Mellanox OFED Linux (MLNX_OFED)

in the release notes of MLNX_OFED 3.4- Release Notes mentioned that added VST Q-in-Q feature.

VST Q-in-Q Added support for Q-in-Q encapsulation per VF in Linux (VST) for ConnectX-3 Pro adapter cards.