RE: [PATCH iwl-net 01/10] ice: replay UDP tunnel ports after a core or global reset

From
Nowlin, Alexander <hidden>
Date
2026-11-07 04:51:19
Also in
bpf, intel-wired-lan, lkml
Reply to
Petr Oros, 2026-10-02
-----Original Message-----
From: Petr Oros <redacted> 
Sent: Friday, October 2, 2026 6:08 AM
To: <redacted>
Cc: Oros, Petr <redacted>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Andrew Lunn <andrew+netdev@lunn.ch>; David S. Miller <davem@davemloft.net>; Eric Dumazet <edumazet@kernel.org>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>; Lobakin, Aleksander <aleksander.lobakin@intel.com>; Alexei Starovoitov <ast@kernel.org>; Daniel Borkmann <daniel@iogearbox.net>; Jesper Dangaard Brouer <hawk@kernel.org>; John Fastabend <john.fastabend@gmail.com>; Stanislav Fomichev <sdf@fomichev.me>; Henry Tieman > <redacted>; Anirudh Venkataramanan <redacted>; Michal Swiatkowski <redacted>; Jesse Brandeburg <jbrandeb@kernel.org>; Preethi Banala <redacted>; Kiran Patil <redacted>; Dan Nowlin <redacted>; Stephen Hemminger <stephen@networkplumber.org>; <redacted>; <redacted>; <redacted>
Subject: [PATCH iwl-net 01/10] ice: replay UDP tunnel ports after a core or global reset

A CORER, GLOBR or EMPR reloads the DDP package in ice_rebuild() and
ice_init_pkg_hints() clears hw->tnl, so every offloaded VXLAN and GENEVE port is gone from both the boost TCAM and the driver table. The udp_tunnel_nic core is never told about it and still considers the ports > programmed, so the Rx tunnel offloads silently stop working after the reset. With VXLAN port 4789 offloaded, 64 flows that differ only in the inner headers are spread over all six Rx queues of the test port by RSS, after a CORER they all land in a single queue, the same as without the port. Removing the port later trips the WARN_ON() in
ice_destroy_tunnel() because its table entry is no longer valid:

  WARNING: ice_flex_pipe.c:524 at ice_udp_tunnel_unset_port+0x56/0x280 [ice]
  ice 0000:04:00.3 enp4s0f3np3: Error removing UDP tunnel - -5
  ice 0000:04:00.3 enp4s0f3np3: UDP tunnel port sync failed port 4789 type vxlan: -5

Call udp_tunnel_nic_reset_ntf() once the main VSI is rebuilt so the core programs the ports again. A PF reset keeps the package and the table, so it is left alone. No rtnl_lock is needed since commit 1ead7501094c
("udp_tunnel: remove rtnl_lock dependency").

i40e fixed the same problem in commit 1f190d936948 ("i40e: Reprogram port offloads after reset").

Fixes: a4e82a81f573 ("ice: Add support for tunnel offloads")
Assisted-by: LLM
Signed-off-by: Petr Oros <redacted>
---
 drivers/net/ethernet/intel/ice/ice_main.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Tested-by: Alexander Nowlin <redacted>
Thread (41 messages) 41 messages, 5 authors, last reply 16h ago
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help