From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A44442F715 for ; Fri, 2 Oct 2026 13:08:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790946516; cv=none; b=rJgdDkeTekdvPt24Y432Ua2nyAUtPFoSy0J5j15lvDBi3lCNPdTPcU84zzeNmZPgFoPcCyPk63R0WnDmH3tS+EtyVM+jbU+vtiBQnB/dSzIaLY2kK3UQJPpecu1om7q7B9GjS0jggROi4rfFw+r2GuVD2qL8NP27/faVrcbcs7g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790946516; c=relaxed/simple; bh=hpORNAInQY4YIDil5qPoyicTIbpKgGs8vIsuPQzrju4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JIevxYkXFZWeP9PYZkGWCjDe0kjrxixwukwDPIvrt3BLxmVEZHMAodCGm/qQ4+ANyHab/mBO/SjN+gCFE0CsklYCQdpw9MnCmrHSekRESgiup9geCUEu+FIH6X8gSbxMWi2fD5qBbuoPUpNAX2YgeqaSUAg2A/LQTK15UNkvyUg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=DWxgby7u; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="DWxgby7u" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1790946498; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Zob1KtCjSCYBg2TkSrCdgcCYXcxGjfohAaytPDnT6AI=; b=DWxgby7uTkIkDj/31GF9Jammsr6wKTXiand5sjlUM2/R0FY7SAQQ7tnMmvhgW46n4Jrw74 7MD2OaMWDk9vgN9wV1hnaju6Ci1ggxF8YTFMDRaAMsV/qW1ZRfGRM/b/6kYweOyF2eGwFt k8XBwKthbqyXD1qZwGBd2JKZX0vcl1o= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-358-PRbX39NwOhW8XAmihcVDpw-1; Fri, 02 Oct 2026 09:08:15 -0400 X-MC-Unique: PRbX39NwOhW8XAmihcVDpw-1 X-Mimecast-MFC-AGG-ID: PRbX39NwOhW8XAmihcVDpw_1790946492 Received: from mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.95]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7919E1800627; Fri, 2 Oct 2026 13:08:11 +0000 (UTC) Received: from ShadowPeak.redhat.com (unknown [10.44.32.39]) by mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 52B8B214; Fri, 2 Oct 2026 13:08:04 +0000 (UTC) From: Petr Oros To: netdev@vger.kernel.org Cc: Petr Oros , Tony Nguyen , Przemek Kitszel , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Alexander Lobakin , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Henry Tieman , Anirudh Venkataramanan , Michal Swiatkowski , Jesse Brandeburg , Preethi Banala , Kiran Patil , Dan Nowlin , Stephen Hemminger , intel-wired-lan@lists.osuosl.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org Subject: [PATCH iwl-net 01/10] ice: replay UDP tunnel ports after a core or global reset Date: Fri, 2 Oct 2026 15:07:43 +0200 Message-ID: <20261002130752.2597259-2-poros@redhat.com> In-Reply-To: <20261002130752.2597259-1-poros@redhat.com> References: <20261002130752.2597259-1-poros@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.6 on 10.30.177.95 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 --- drivers/net/ethernet/intel/ice/ice_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index 8c4b0fbc790644..f2121e79fca993 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -7859,8 +7859,11 @@ static void ice_rebuild(struct ice_pf *pf, enum ice_reset_req reset_type) ice_rebuild_arfs(pf); } - if (vsi && vsi->netdev) + if (vsi && vsi->netdev) { netif_device_attach(vsi->netdev); + if (reset_type != ICE_RESET_PFR) + udp_tunnel_nic_reset_ntf(vsi->netdev); + } ice_update_pf_netdev_link(pf); -- 2.55.0