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
>

Reply via email to