Hi Ernesto, On Fri, 11 Jul 2025, Ernesto Ruffini wrote:
Hi, We found a strange behavior of the E810 VLAN offload. We are running DPDK 24.11.2 with ice driver 1.15.4, firmware 4.60 and COMMS DDP 1.3.46 The NIC receives an IPv4/UDP packet inside VLAN 300. If we run dpdk-testpmd with a single queue, everything seems fine: dpdk-testpmd -a 0000:4b:00.0 -c ffffff -n 8 -- -i set verbose 5 port stop 0 port config 0 rx_offload vlan_strip on port start 0 start And the packet is correctly displayed: src=08:02:03:04:05:06 - dst=00:1A:CA:01:00:96 - pool=mb_pool_0 - type=0x0800 - length=142 - nb_segs=1 - VLAN tci=0x12c - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Destination UDP port=5398 - 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_GOOD But if we use a different number of queues: dpdk-testpmd -a 0000:4b:00.0 -c ffffff -n 8 -- -i --rxq=4 --txq=4
It would be helpful to enable debug logs with EAL argument --log-level='.*',8 so that one can see which 'rx_pkt_burst' method gets selected by the driver. Then one can inspect the implementation of that particular function to see whether offloads are handled correctly. Thank you.
The VLAN is in fact removed, but there is no evidence of that: src=08:02:03:04:05:06 - dst=00:1A:CA:01:00:96 - pool=mb_pool_0 - type=0x0800 - length=142 - nb_segs=1 - RSS hash=0xfae3080 - RSS queue=0x0 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Destination UDP port=5398 - Receive queue=0x0 ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD There was a bug in some previous versions of DPDK about E810 and VLAN offload, but it was fixed. Are we doing something wrong or is there a problem with the driver? Thank you Ernesto