[RFC PATCH] doc: clarify VLAN and QinQ stripping behaviour
Dean Marx
dmarx at iol.unh.edu
Thu Jul 17 23:03:13 CEST 2025
I've created a v1 of a QinQ test suite around the set of test cases
discussed earlier (which is not set in stone, and I expect it to
change significantly across many future versions.) The PASS/FAIL
values can be mostly disregarded in the context of this conversation,
but I've added logging to explain which packets are sent, and what
happened upon reception, which I hope will be more informative. After
running on mlx5/i40e drivers, I got the following results:
test_vlan_strip: QinQ strip OFF and VLAN strip ON
test_qinq_strip: QinQ strip ON and VLAN strip ON
i40e:
test_qinq_strip (sent packet: Single VLAN): FAIL
reason: VLAN tags found in packet when should have been
stripped: Ether / Dot1Q / 802.1q (0x1c) vlan 1280 / LLC / Raw /
Padding
test_qinq_strip (sent packet: Stacked VLAN): FAIL
reason: Expected one VLAN tag but found 2: Ether / Dot1Q / Dot1Q
/ 802.1q (0x1c) vlan 1280 / LLC / Raw / Padding
test_qinq_strip (sent packet: Single S-VLAN): FAIL
reason: VLAN tags found in packet when should have been
stripped: Ether / Dot1Q / 802.1q (??) vlan ?? / LLC / Raw / Padding
test_qinq_strip (sent packet: QinQ): FAIL
reason: VLAN tags found in packet when should have been
stripped: Ether / Dot1Q / Dot1AD / 802.1q (0x1c) vlan 1280 / LLC / Raw
/ Padding
test_vlan_strip (sent packet: Single VLAN): PASS
reason: VLAN tag stripped from packet
test_vlan_strip (sent packet: Stacked VLAN): PASS
reason: Received packet had outer VLAN stripped, with inner VLAN intact
test_vlan_strip (sent packet: Single S-VLAN): PASS
reason: S-VLAN tag stripped from packet
test_vlan_strip (sent packet: QinQ): FAIL
reason: Neither tag stripped
mlx5_core:
test_qinq_strip: SKIP
reason: Required capability
'{NicCapability.RX_OFFLOAD_QINQ_STRIP}' not found.
test_vlan_strip (sent packet: Single VLAN): PASS
reason: VLAN tags found in packet when should have been
stripped: Ether / 802.1q 24:8a:07:aa:83:ee > 0c:42:a1:54:25:86 (0x1c)
vlan 1280 / LLC / Raw / Padding
test_vlan_strip (sent packet: Stacked VLAN): PASS
test_vlan_strip (sent packet: Single S-VLAN): PASS
reason: S-VLAN tag stripped from packet
test_vlan_strip (sent packet: QinQ): FAIL
reason: VLAN tag 0x8100 not found in packet: Ether / Dot1Q /
802.1q (??) vlan ?? / LLC / Raw / Padding
Hopefully this can give a clearer picture of the current QinQ/VLAN
strip behavior. If anyone wants to take a look at the suite I'll link
it here:
https://patchwork.dpdk.org/project/dpdk/patch/20250717205718.108826-2-dmarx@iol.unh.edu/
More information about the dev
mailing list