Hi Ernesto,
On Mon, 14 Jul 2025, Ernesto Ruffini wrote:
Hi Ivan,
Thanks for the hint.
I ran testpmd with the suggested parameter, but I cannot find where the
function gets selected.
I attach the full log here.
Thanks. The message to look for appears closer to the end of start sequence:
ICE_DRIVER: ice_set_rx_function(): Using AVX2 OFFLOAD Vector Rx (port 0).
But before investigating the code of that Rx function, perhaps it pays to make
sure patch [1] is applied. Everything is so recent that most likely it has not
landed 24.11 release yet. Theoretically, the bug the patch is trying to fix has
something to do with multi-queue and VLAN stripping. See if you can't apply the
patch in 24.11 or rebuild from the current main of dpdk-next-net repository.
Thank you.
[1] https://mails.dpdk.org/archives/dev/2025-June/320530.html
Thanks
Ernesto
-----Original Message-----
From: Ivan Malov <ivan.ma...@arknetworks.am>
Sent: Monday, July 14, 2025 02:04
To: Ernesto Ruffini <eruff...@outsys.org>
Cc: users@dpdk.org
Subject: Re: E810 VLAN offload wrong behavior
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