* E810 VLAN offload wrong behavior @ 2025-07-11 11:28 Ernesto Ruffini 2025-07-14 0:03 ` Ivan Malov 0 siblings, 1 reply; 4+ messages in thread From: Ernesto Ruffini @ 2025-07-11 11:28 UTC (permalink / raw) To: users [-- Attachment #1: Type: text/plain, Size: 1739 bytes --] 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 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 [-- Attachment #2: Type: text/html, Size: 6108 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: E810 VLAN offload wrong behavior 2025-07-11 11:28 E810 VLAN offload wrong behavior Ernesto Ruffini @ 2025-07-14 0:03 ` Ivan Malov [not found] ` <002201dbf493$baece9e0$30c6bda0$@outsys.org> 0 siblings, 1 reply; 4+ messages in thread From: Ivan Malov @ 2025-07-14 0:03 UTC (permalink / raw) To: Ernesto Ruffini; +Cc: users [-- Attachment #1: Type: text/plain, Size: 2228 bytes --] 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 > > > > > ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <002201dbf493$baece9e0$30c6bda0$@outsys.org>]
* RE: E810 VLAN offload wrong behavior [not found] ` <002201dbf493$baece9e0$30c6bda0$@outsys.org> @ 2025-07-14 12:49 ` Ivan Malov 2025-07-14 13:50 ` Ernesto Ruffini 0 siblings, 1 reply; 4+ messages in thread From: Ivan Malov @ 2025-07-14 12:49 UTC (permalink / raw) To: Ernesto Ruffini; +Cc: users [-- Attachment #1: Type: text/plain, Size: 3415 bytes --] 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.malov@arknetworks.am> > Sent: Monday, July 14, 2025 02:04 > To: Ernesto Ruffini <eruffini@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 >> >> >> >> >> > ^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: E810 VLAN offload wrong behavior 2025-07-14 12:49 ` Ivan Malov @ 2025-07-14 13:50 ` Ernesto Ruffini 0 siblings, 0 replies; 4+ messages in thread From: Ernesto Ruffini @ 2025-07-14 13:50 UTC (permalink / raw) To: 'Ivan Malov'; +Cc: users 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.malov@arknetworks.am> Sent: Monday, July 14, 2025 14:49 To: Ernesto Ruffini <eruffini@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.malov@arknetworks.am> > Sent: Monday, July 14, 2025 02:04 > To: Ernesto Ruffini <eruffini@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 >> >> >> >> >> > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-07-14 13:50 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-07-11 11:28 E810 VLAN offload wrong behavior Ernesto Ruffini 2025-07-14 0:03 ` Ivan Malov [not found] ` <002201dbf493$baece9e0$30c6bda0$@outsys.org> 2025-07-14 12:49 ` Ivan Malov 2025-07-14 13:50 ` Ernesto Ruffini
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).