<div dir="ltr"><p class="gmail-isSelectedEnd">Hi,</p><p class="gmail-isSelectedEnd">A quick update on this issue.</p><p class="gmail-isSelectedEnd">I can no longer reproduce the problem with DPDK 25.11.2 on the following NIC:</p><ul><li>Intel(R) Ethernet Network Adapter E810-CQDA2</li><li>Ethernet Controller E810-C for QSFP (rev 02)</li><li>Subsystem: Intel Ethernet Network Adapter E810-C-Q2</li></ul><p class="gmail-isSelectedEnd">However, the issue is still reproducible with DPDK 25.11.2 on:</p><ul><li>E810-C 100GbE Controller</li><li>Ethernet Controller E810-C for QSFP (rev 02)</li><li>Subsystem: Intel Ethernet 100G 2P E810-C Adapter</li></ul><p class="gmail-isSelectedEnd">The same test scenario was used in both cases.</p><p>Thanks,<br>Taras</p></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Feb 10, 2026 at 11:05 AM Taras Bilous <<a href="mailto:tarasb@interfacemasters.com">tarasb@interfacemasters.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><p>Hi All,<br><br>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.</p><p>The same NIC and the same DDP package behave correctly after a cold start, but switch to a different VLAN mode after either <code>port reset (or rte_eth_dev_reset())</code> 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.</p><div><p><b><font size="4">My setup is the following:</font></b></p><div>Debian Bookworm</div><div>Ethernet controller: Intel(R) Ethernet Controller E810-C for QSFP<br>Firmware (NVM): 4.91 and 4.51 were tested<br>DDP: ICE COMMS Package 1.3.55.0 and 1.3.50.0 were tested<br>DPDK: 25.11<p><b><font size="4">First scenario: port reset in testpmd</font></b><br></p><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">:~$ 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<br>EAL: Detected CPU lcores: 90<br>EAL: Detected NUMA nodes: 1<br>EAL: Detected static linkage of DPDK<br>EAL: Multi-process socket /var/run/dpdk/rte/mp_socket<br>EAL: Selected IOVA mode 'PA'<br>ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS Package (double VLAN mode)<br>ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS Package (double VLAN mode)<br>Interactive-mode selected<br>Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.<br>testpmd: create a new mbuf pool <mb_pool_0>: n=267456, size=2176, socket=0<br>testpmd: preferred mempool ops selected: ring_mp_mc<br>Configuring Port 0 (socket 0)<br>ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 0).<br>Configuring Port 1 (socket 0)<br>ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 1).<br>Port 0: link state change event<br>Port 0: link state change event<br>Checking link statuses...<br>Done<br>testpmd> port stop all<br>Stopping ports...<br>Checking link statuses...<br>Done<br>testpmd> port reset all<br>Resetting ports...<br>ETHDEV: Device with port_id=0 already stopped<br>ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS Package (single VLAN mode)<br>ETHDEV: Device with port_id=1 already stopped<br>ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS Package (single VLAN mode)</blockquote><p><br></p><p>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.</p><p><b><font size="4">Second scenario: killing the application with SIGKILL</font></b></p><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">:~$ 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<br>EAL: Detected CPU lcores: 90<br>EAL: Detected NUMA nodes: 1<br>EAL: Detected static linkage of DPDK<br>EAL: Multi-process socket /var/run/dpdk/rte/mp_socket<br>EAL: Selected IOVA mode 'PA'<br>ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS Package (double VLAN mode)<br>ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS Package (double VLAN mode)<br>Interactive-mode selected<br>Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.<br>testpmd: create a new mbuf pool <mb_pool_0>: n=267456, size=2176, socket=0<br>testpmd: preferred mempool ops selected: ring_mp_mc<br>Configuring Port 0 (socket 0)<br>ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 0).<br>Configuring Port 1 (socket 0)<br>ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 1).<br>Port 0: link state change event<br>Port 0: link state change event<br>Checking link statuses...<br>Done<br>testpmd> Killed<br></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">:~$ 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<br>EAL: Detected CPU lcores: 90<br>EAL: Detected NUMA nodes: 1<br>EAL: Detected static linkage of DPDK<br>EAL: Multi-process socket /var/run/dpdk/rte/mp_socket<br>EAL: Selected IOVA mode 'PA'<br>ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS Package (single VLAN mode)<br>ICE_INIT: ice_load_pkg_type(): Active package is: 1.3.55.0, ICE COMMS Package (single VLAN mode)<br>Interactive-mode selected<br>Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.<br>testpmd: create a new mbuf pool <mb_pool_0>: n=267456, size=2176, socket=0<br>testpmd: preferred mempool ops selected: ring_mp_mc<br>Configuring Port 0 (socket 0)<br>ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 0).<br>Configuring Port 1 (socket 0)<br>ICE_DRIVER: ice_set_rx_function(): Using Vector AVX2 (port 1).<br>Port 0: link state change event<br>Port 0: link state change event<br>Checking link statuses...<br>Done<br>testpmd> </blockquote><div> </div>At this point the behavior is the same as after port reset: RX VLAN offloading is broken.<br></div><div><br>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:</div><div><a href="https://bugs.dpdk.org/show_bug.cgi?id=1677" target="_blank">https://bugs.dpdk.org/show_bug.cgi?id=1677</a><br>The trigger is different, but the resulting VLAN RX offload behavior appears to be the same.<br>I can reproduce this reliably and can provide more logs or information if needed.</div><div><br>Best regards,<br>Taras</div></div></div>
</blockquote></div>