Hi Ivan,
Thank you for your quick answer.
I tried to apply the patch but got a compilation error:

../drivers/net/ice/ice_ethdev.c:5003:71: error: dereferencing pointer to
incomplete type ‘const struct ci_rx_queue’
   qrx_context_offset = QRX_CONTEXT(ICE_L2TSEL_QRX_CONTEXT_REG_IDX,
rxq->reg_idx);

So I did "git clone git://dpdk.org/next/dpdk-next-net" and from there it
compiled.
Unfortunately it got consistent, but worse:
The selected rx function is the same:
ICE_DRIVER: ice_set_rx_function(): Using AVX2 OFFLOAD Vector Rx (port 0).
But it now drops the VLAN, without signaling it, in all cases.
With 1 queue:
  ol_flags: RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD
RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD
With 4 queues:
  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

I double checked with plain 24.11.2 and indeed with just one queue it is
still
  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

So I'm confident the lab environment is still good

Thank you
        Ernesto


-----Original Message-----
From: Ivan Malov <ivan.ma...@arknetworks.am> 
Sent: Monday, July 14, 2025 14:49
To: Ernesto Ruffini <eruff...@outsys.org>
Cc: users@dpdk.org
Subject: RE: E810 VLAN offload wrong behavior

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
>>
>>  
>>
>>
>>
>

Reply via email to