Hello,
Wanted to follow up with some additional testing results. I believe this is a bug at the NVM firmware level but still want someone else to confirm. We can easily retest or change parameters of testpmd to provide additional information if desired. In parallel to this we will be trying to reach out to Intel and Dell (Intel branded card with firmware provided by Dell) to report this bug for additional follow up.
Device configuration:
traffic gen (trex) --> sw1 (basic vlan -- vl 200) --> sw2 (qinq push -- vl 300) -- dut (testpmd)
OS: CentOS 7.9
DPDK 21.11 (different than initial report, used to move to a current version and try to rule out other issues, but same issue)
testpmd cmd: sudo /tmp/dpdk-testpmd -c 0xffff -- -i --enable-hw-vlan --enable-hw-vlan-strip --enable-hw-vlan-extend --enable-hw-qinq-strip
NVM version(s): 8.15 (working) and 8.40 (non-working)
Offload configuration (these were the same under both 8.15 and 8.40 so only providing one copy)
testpmd> show port 0 rx_offload configuration
Rx Offloading Configuration of port 0 :
Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
Queue[ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
testpmd> show port 1 rx_offload configuration
Rx Offloading Configuration of port 1 :
Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
Queue[ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
testpmd> show port 2 rx_offload configuration
Rx Offloading Configuration of port 2 :
Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
Queue[ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
testpmd> show port 3 rx_offload configuration
Rx Offloading Configuration of port 3 :
Port : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
Queue[ 0] : VLAN_STRIP QINQ_STRIP VLAN_FILTER VLAN_EXTEND
When running testpmd with the above cmdline parameters and then setting "set fwd rxonly" we observe the following results with the different firmwares.
8.15 (working)
src=F8:F2:1E:31:96:D0 - dst=F8:F2:1E:31:96:D1 - type=0x0800 - length=74 - nb_segs=1 - QinQ VLAN tci=0xc8, VLAN tci outer=0x12c - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER L3_IPV4 L4_TCP - l2_len=14 - l3_len=20 - l4_len=40 - Receive queue=0x0
ol_flags: RTE_MBUF_F_RX_VLAN RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_VLAN_STRIPPED RTE_MBUF_F_RX_QINQ_STRIPPED RTE_MBUF_F_RX_QINQ RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
8.40 (non working)
src=F8:F2:1E:31:96:D0 - dst=F8:F2:1E:31:96:D1 - type=0x8100 - length=78 - nb_segs=1 - VLAN tci=0xc8 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER_VLAN L3_IPV4 L4_TCP - l2_len=18 - l3_len=20 - l4_len=40 - Receive queue=0x0
ol_flags: RTE_MBUF_F_RX_VLAN RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_VLAN_STRIPPED RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
Thanks,
Ben