From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BFD5A46B71 for ; Mon, 14 Jul 2025 15:50:56 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 601F74021F; Mon, 14 Jul 2025 15:50:56 +0200 (CEST) Received: from authsmtp.register.it (authsmtp17.register.it [81.88.48.40]) by mails.dpdk.org (Postfix) with ESMTP id B0EDF400D5 for ; Mon, 14 Jul 2025 15:50:54 +0200 (CEST) Received: from DESKTOPPE5KR91 ([31.190.102.67]) by cmsmtp with ESMTPSA id bJa1uMrArvBcVbJa1uXtWQ; Mon, 14 Jul 2025 15:50:54 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outsys.org; s=key_65m6du3g3t; t=1752501054; bh=02Gw+Nq+elaXS5m51zpOEJVs4Yg77iZInRE1P8srS6Y=; h=From:To:Cc:References:In-Reply-To:Subject:Date; b=ZQ7oiZmZD75tN3bpreszHbdAWzy8pLlyWqm0mfsvHKmO3XD9g6R84dEeFhpu1M57y am7yFebiiVEyn8n4KRrOWEinfbQUrCnw95iHLDa76OL4rYG0aR+Z9WaOXs7iriVvk4 Ig7cuORoxCOxSOGsjgUsaiocuXewchvLsnWAo/1lHnYYiEDf5ZctnrFv1umutbaZPy sERzjg586sOdxNOczj55itzhFAxysV/wsS/x2GhA8yvj4yZpoWtYkYq+oeXD0LqqyN 9PaYakh30rLUei3vbmXy6C6xe3fv4KEAlM+K/Q5ObHEGQBsSh34Y3rdMHPbTeyx6/S +Ctdda/KDByPQ== X-Rid: smtp@outsys.eu@31.190.102.67 From: "Ernesto Ruffini" To: "'Ivan Malov'" Cc: References: <000001dbf256$f00e2650$d02a72f0$@outsys.org> <11486c31-cc82-58aa-a6ac-69247ff45e68@arknetworks.am> <002201dbf493$baece9e0$30c6bda0$@outsys.org> <89dacb09-664d-fb2b-ff4c-5fe76bf742dd@arknetworks.am> In-Reply-To: <89dacb09-664d-fb2b-ff4c-5fe76bf742dd@arknetworks.am> Subject: RE: E810 VLAN offload wrong behavior Date: Mon, 14 Jul 2025 15:50:58 +0200 Message-ID: <002b01dbf4c6$54216be0$fc6443a0$@outsys.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQJy21vQeHAL9+ttTW64NQW+tC737gITSxd8AiK70z0CEETYDLLRodmg Content-Language: en-us X-CMAE-Envelope: MS4xfFlYW7IkBRL7d5vH9hamji5xh4UkCsThTtgeUGVIg04S2TIYNzOGHJOD2alknCsQAubAm4vVRmr3UoZxFoUsPvN+1D+b3o3zr6UsCBaOQ3TAeOnKBGFq EAZbH84Phn9fZqQcAnqUlDkxZ4A8I/ypBmYRKR8r0wKBx03QkQHfXgINgLRAtHPzn7/InfHiS8JOraBjWCHS4I3JVhGCxjB2yIBLr76x+x8SpvrSW27Y1aXz X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org 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 =91const struct ci_rx_queue=92 qrx_context_offset =3D 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 =20 Sent: Monday, July 14, 2025 14:49 To: Ernesto Ruffini 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=20 > 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 > Sent: Monday, July 14, 2025 02:04 > To: Ernesto Ruffini > 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 >> >> =A0 >> >> The NIC receives an IPv4/UDP packet inside VLAN 300. >> >> If we run dpdk-testpmd with a single queue, everything seems fine: >> >> =A0 >> >> dpdk-testpmd -a 0000:4b:00.0 -c ffffff -n 8 -- -i >> >> =A0 >> >> set verbose 5 >> >> port stop 0 >> >> port config 0 rx_offload vlan_strip on >> >> port start 0 >> >> start >> >> =A0 >> >> And the packet is correctly displayed: >> >> =A0 src=3D08:02:03:04:05:06 - dst=3D00:1A:CA:01:00:96 - = pool=3Dmb_pool_0 - > type=3D0x0800 - length=3D142 - nb_segs=3D1 - VLAN tci=3D0x12c - hw = ptype:=20 > L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP=A0 - sw ptype: >> L2_ETHER L3_IPV4 L4_UDP=A0 - l2_len=3D14 - l3_len=3D20 - l4_len=3D8 - = >> Destination UDP port=3D5398 - Receive queue=3D0x0 >> >> =A0 ol_flags: RTE_MBUF_F_RX_VLAN RTE_MBUF_F_RX_L4_CKSUM_GOOD=20 >> RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_VLAN_STRIPPED=20 >> RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD >> >> =A0 >> >> But if we use a different number of queues: >> >> =A0 >> >> dpdk-testpmd -a 0000:4b:00.0 -c ffffff -n 8 -- -i --rxq=3D4 --txq=3D4 > > It would be helpful to enable debug logs with EAL argument > --log-level=3D'.*',8 so that one can see which 'rx_pkt_burst' method=20 > gets selected by the driver. > Then one can inspect the implementation of that particular function to = > see whether offloads are handled correctly. > > Thank you. > >> >> =A0 >> >> The VLAN is in fact removed, but there is no evidence of that: >> >> =A0 >> >> =A0 src=3D08:02:03:04:05:06 - dst=3D00:1A:CA:01:00:96 - = pool=3Dmb_pool_0 - >> type=3D0x0800 - length=3D142 - nb_segs=3D1 - RSS hash=3D0xfae3080 - = RSS >> queue=3D0x0 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP=A0 - sw = ptype: >> L2_ETHER L3_IPV4 L4_UDP=A0 - l2_len=3D14 - l3_len=3D20 - l4_len=3D8 - = >> Destination UDP port=3D5398 - Receive queue=3D0x0 >> >> =A0 ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD=20 >> RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD >> >> =A0 >> >> 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? >> >> =A0 >> >> Thank you >> >> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Ernesto >> >> =A0 >> >> >> >