Hi, A quick update on this issue.
I can no longer reproduce the problem with DPDK 25.11.2 on the following NIC: - Intel(R) Ethernet Network Adapter E810-CQDA2 - Ethernet Controller E810-C for QSFP (rev 02) - Subsystem: Intel Ethernet Network Adapter E810-C-Q2 However, the issue is still reproducible with DPDK 25.11.2 on: - E810-C 100GbE Controller - Ethernet Controller E810-C for QSFP (rev 02) - Subsystem: Intel Ethernet 100G 2P E810-C Adapter The same test scenario was used in both cases. Thanks, Taras On Tue, Feb 10, 2026 at 11:05 AM Taras Bilous <[email protected]> wrote: > Hi All, > > I am seeing multiple issues with net_ice where VLAN mode changes after a > device reset or an ungraceful application exit, which then breaks RX VLAN > offloading. > > The same NIC and the same DDP package behave correctly after a cold start, > but switch to a different VLAN mode after either port reset (or > rte_eth_dev_reset()) in testpmd or after killing the application with > SIGKILL. After that, VLAN tags appear to be stripped in hardware, but VLAN > metadata is no longer delivered to vlan_tci in mbuf structure. > > *My setup is the following:* > Debian Bookworm > Ethernet controller: Intel(R) Ethernet Controller E810-C for QSFP > Firmware (NVM): 4.91 and 4.51 were tested > DDP: ICE COMMS Package 1.3.55.0 and 1.3.50.0 were tested > DPDK: 25.11 > > *First scenario: port reset in testpmd* > >> :~$ sudo ./DPDK/dpdk-25.11.0/dpdk-25.11/build/app/dpdk-testpmd -l 0-15 -a >> 0000:04:00.0 -a 0000:04:00.1 -- -i >> EAL: Detected CPU lcores: 90 >> EAL: Detected NUMA nodes: 1 >> EAL: Detected static linkage of DPDK >> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket >> EAL: Selected IOVA mode 'PA' >> ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS >> Package (double VLAN mode) >> ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS >> Package (double VLAN mode) >> Interactive-mode selected >> Warning: NUMA should be configured manually by using --port-numa-config >> and --ring-numa-config parameters along with --numa. >> testpmd: create a new mbuf pool <mb_pool_0>: n=267456, size=2176, socket=0 >> testpmd: preferred mempool ops selected: ring_mp_mc >> Configuring Port 0 (socket 0) >> ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 0). >> Configuring Port 1 (socket 0) >> ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 1). >> Port 0: link state change event >> Port 0: link state change event >> Checking link statuses... >> Done >> testpmd> port stop all >> Stopping ports... >> Checking link statuses... >> Done >> testpmd> port reset all >> Resetting ports... >> ETHDEV: Device with port_id=0 already stopped >> ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS >> Package (single VLAN mode) >> ETHDEV: Device with port_id=1 already stopped >> ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS >> Package (single VLAN mode) > > > After this reset, RX VLAN offload no longer behaves correctly. VLAN tags > are stripped from packets, but VLAN TCI information is missing in the > received mbufs vlan_tci fields. > > *Second scenario: killing the application with SIGKILL* > >> :~$ sudo ./DPDK/dpdk-25.11.0/dpdk-25.11/build/app/dpdk-testpmd -l 0-15 -a >> 0000:04:00.0 -a 0000:04:00.1 -- -i >> EAL: Detected CPU lcores: 90 >> EAL: Detected NUMA nodes: 1 >> EAL: Detected static linkage of DPDK >> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket >> EAL: Selected IOVA mode 'PA' >> ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS >> Package (double VLAN mode) >> ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS >> Package (double VLAN mode) >> Interactive-mode selected >> Warning: NUMA should be configured manually by using --port-numa-config >> and --ring-numa-config parameters along with --numa. >> testpmd: create a new mbuf pool <mb_pool_0>: n=267456, size=2176, socket=0 >> testpmd: preferred mempool ops selected: ring_mp_mc >> Configuring Port 0 (socket 0) >> ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 0). >> Configuring Port 1 (socket 0) >> ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 1). >> Port 0: link state change event >> Port 0: link state change event >> Checking link statuses... >> Done >> testpmd> Killed >> > > >> :~$ sudo ./DPDK/dpdk-25.11.0/dpdk-25.11/build/app/dpdk-testpmd -l 0-15 -a >> 0000:04:00.0 -a 0000:04:00.1 -- -i >> EAL: Detected CPU lcores: 90 >> EAL: Detected NUMA nodes: 1 >> EAL: Detected static linkage of DPDK >> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket >> EAL: Selected IOVA mode 'PA' >> ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS >> Package (single VLAN mode) >> ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS >> Package (single VLAN mode) >> Interactive-mode selected >> Warning: NUMA should be configured manually by using --port-numa-config >> and --ring-numa-config parameters along with --numa. >> testpmd: create a new mbuf pool <mb_pool_0>: n=267456, size=2176, socket=0 >> testpmd: preferred mempool ops selected: ring_mp_mc >> Configuring Port 0 (socket 0) >> ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 0). >> Configuring Port 1 (socket 0) >> ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 1). >> Port 0: link state change event >> Port 0: link state change event >> Checking link statuses... >> Done >> testpmd> > > > At this point the behavior is the same as after port reset: RX VLAN > offloading is broken. > > The observed RX VLAN offloading behavior then is very similar to the issue > described in the following bug report, where VLAN stripping works but > metadata is missing: > https://bugs.dpdk.org/show_bug.cgi?id=1677 > The trigger is different, but the resulting VLAN RX offload behavior > appears to be the same. > I can reproduce this reliably and can provide more logs or information if > needed. > > Best regards, > Taras >

