From patchwork Mon Mar 17 17:37:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 14019788 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2052.outbound.protection.outlook.com [40.107.223.52]) (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 537F41ACED5 for ; Mon, 17 Mar 2025 17:40:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233217; cv=fail; b=ChO5LVFKLYWMYAWqNRgXIoJNxMbQoZJcSphRdJObeC4t0fi82aTAM6sU+x1EbG4w68OzkAXvxdw8hULs52glYE/zOKZGgJgAF/MafcvklszOeGNpB1zhJsf/FfNcTXAbf/w1VZj0sXCH8MRzb1VCHhyPYttsOSHf6Pqd3nZ6GBA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233217; c=relaxed/simple; bh=ElmsW+oRGrk+lNI9Z66SEn8luxq9f1Zk2jOf4OmrMYI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Z3K8EaDEXZOz5BUE3FGlwOKDEc4r0RrUppgkFoWQXhJXv7BfFpKBXG1nG09tjVjM5KEhu3iZz04sGncyRG77LCsp+lNNA68p1BnoIwCgcn0qkBH1iZGkkVj5v5yfAyJ/tkiOtk6QYJQ/TB5O1LoGR21dt/tkOyTW9WmdqAlCgEY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=AjprF0b1; arc=fail smtp.client-ip=40.107.223.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="AjprF0b1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DJHaKADA+CDKSMhRcsED8w/4pVsTDksTHqDpHXDDQeyHcZCXr4na3JXXmts972xmg3uZt3cX7T6c5THJUNqfW93fMsja4cWJIYFLwIjp675VC/O5Ba789KXPYjT2ijo6Qwxdag0IQAIE9WuVYURUHyEODhtcZVWHJ1VeaiuaE1Lj9MyiFMmAbggHFpKxNqGWX+j72foZJp2gYvqtCWXUmwcWnffINTCrZ7+dmhnqbA8i48LTEsvD3NKgonGQSK1gw9SskkwYmXiWGNm2kd3bqIc4lMc6LbmT8lTXmXYGNJ7s0Ntz1y7cDHP+bQERfwbX7DHYDeYIQFqUKfBPulEKiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XPAGq+zWVhBr5mWZn1/+oQm8GaC9LPtZzMZSEkxo3cc=; b=xTxg88qQ/aLI9kM9mktxwuxZbcI8k7YL0RUmpbd2bEmrvfbcdBJQrc+HXm2pS/Sj92W93pWxTAE3jI1pQrf9Cl2l7WTKqxpeBw0lumIiZ2IfAnIbVTIsmYVhzkzQYrtvFmAAoePlui8/8Q5NMCJK7kRwv/jh+Sm8T/2JGucin/KQGh3km7K5blQ1aMdooksyYrk3qEJxw2PdJ97qqODjft4toUAw45hvp1qgBGzopSzQV8eDUIcGGXkva28vptUoqRE/1crchEmGgiO9gkqDjj7nSW3n7BW7MNXFZy2d0Db8lceUqfptiBqlpgAllAHaddygd9jqrDVYrGZCYid8Ew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XPAGq+zWVhBr5mWZn1/+oQm8GaC9LPtZzMZSEkxo3cc=; b=AjprF0b1JlaSuJj/b4oD31jvSwa73900EJzlSE11ezn/j/MBIvEC+QGA6sEnWzf+FXC8YWF0g6EZTso8THLx4R2uBwxUYEKlzPGsBPvpqb9hOTrcNMG5Hy7ahBpDFhbS5d4id8zIAlgP/67uuzsLsqq7WgfLKyWmn2bzAOqgmf7x336kjMNMUzwLr7LxC5uhk9f4tU/eivpf2c9kRnMhL2gZSpBn+c7Bv/c/HILUrQ4CgmRVDNAM9ZId1hskNFDwSzVNfjayDRFQN4pLC/o54qsnzNkyezVZ0TjtyPNfq+C5NEuh6rcOanXE7wcxdmGNGewxs2VOWj5pbp5e/Oh0GA== Received: from BN9P222CA0001.NAMP222.PROD.OUTLOOK.COM (2603:10b6:408:10c::6) by CH1PR12MB9576.namprd12.prod.outlook.com (2603:10b6:610:2ad::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.33; Mon, 17 Mar 2025 17:40:11 +0000 Received: from BN2PEPF0000449D.namprd02.prod.outlook.com (2603:10b6:408:10c:cafe::ea) by BN9P222CA0001.outlook.office365.com (2603:10b6:408:10c::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.33 via Frontend Transport; Mon, 17 Mar 2025 17:40:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BN2PEPF0000449D.mail.protection.outlook.com (10.167.243.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 17 Mar 2025 17:40:10 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 17 Mar 2025 10:39:58 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 17 Mar 2025 10:39:54 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , CC: Ido Schimmel , Petr Machata , "Amit Cohen" , Subject: [PATCH net-next 1/6] mlxsw: Trap ARP packets at layer 2 instead of layer 3 Date: Mon, 17 Mar 2025 18:37:26 +0100 Message-ID: X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF0000449D:EE_|CH1PR12MB9576:EE_ X-MS-Office365-Filtering-Correlation-Id: d6779719-27b3-4df8-3320-08dd657ac444 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: cNwoX6jKSgW9kFL7RgY0nf5NhvhbdsKs32JkJ5Yv26GRzTML5ocSseyFZi67421td72qzH2c5PE4DC+3T158iD+QZVd31w9KX381cl2MXHJXGwuti9rgXKKNGhq3UHX9K8sMn4e8JvrDuGMDpwnYUq3IV2KyaihP94YCEltCG9TDcTpTtHdhwO8do+rGiGrG7OSdVp7QvQKEeTnMvXT55v8cBf12LeF45BW3SRFOivtwQTKtGWg3tZVZzBv0KUewC5mgoMbe+0njxfgk+LSNMMXx++ewGYX81OXgb1hfZDoA8OWDjN5rrjY/SxRtLX/GGiyH5ehtygFcP82hOVXgRKskaIb3XakysqwbxaGtryoknaP6Km3+6yJExbWHDPaAs8XaZNvT6ngf4aCWRglXLxTKNrwVcXgdz842lagCb96NpxzpOQvhB3+Ut1AT0HJ8+Tw90ElOj/whmU34SMHWC0FeaGr+h8HHJN1pTZ89rjqc/Fjs0FbqqqxcpRMnrDQEiVZTh0DRXw1C5EAvh+n7ULGKpBauA1ZHko60tbN/7Z/2w8cL4XU7tfiIJIxW2gBExtBJ1lSS1jYMKe7kNYf071YrG+6llw42ns8Cg7K5I/Xdl7bkFiyE3u2qTfQRVJeJ6+IQaNucGlLV2L1cfg/o095EhSxAoP0047EOC0bx1DjlTXCZBCRlOrguKBaax+9/qbaw3ZDSnvjWEUDvEOqeRpX00dIbPqIFez9Ztpog+CYMV34OmUtDtq6lFMGZC7bWpRgI3JE0WnM/xW5nNqkqauojjoo0qNVWc39A5rNYRhv0yIJB7SPTm+HgC18kBwL7S/ZD/ImRz+NnuoQSBSZm9l8jZXMzwaqWhpxSbPtGoYfauGlcW34Uf0n4otBepv33w3WppY9248M5BjsjCFTHlhT2fplUUbgjuxWvLtNioXOpaicPwwvbnBPVxtWabuWeRTChgLc2khj7pCxfeRq7994X2e3y+r+yDWnuCHGg6FnouRpypjpSdScTyv6ckvrzbAQSP8qL+ON1/VkoTTQruLkyAiyx9kt0VKXmvLf83xYDyVXzDe8s3amYv4xzlOwNMHVfTKuo5MlcHLzXnrbJB6mKmErVOyUbC8nRJwBYlI0Qo9tw//aZ1Ws8QIk9Dow2uwqel1hkCs+MNnvc2PoN5k3n6ylWHxHFqCvGiH7su5SaJS6q5/4NiTMRoM085TOeHR4Tg3haHdL22eIAHXR5ZjNg7wB79gyzc3/K3PVfqQOHR9zJ91hhnYdkiDdaBJraOWra+MnN6iVpJZVgcDwo0CShV7q4UXOLqLcvv72V4U5dwdfLVKTUUfHDacyWnrdYqjpNIEfEKQ3CMRuzqMQxU1TtKREdlPKa/M+do7thsAS2VY+IGEgrgLrBNHhGXUpbLQn4dRw17zROKo5qhtmMCyZyIm7tt2OeJeeVRAACRyUzmn0kst6kmYdEuafd1yK512kfcSUhW9MX3ux3cA+vjKX79Wqo/MqN9QpG23VDNe8= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2025 17:40:10.8291 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d6779719-27b3-4df8-3320-08dd657ac444 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF0000449D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9576 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Next patch will set the same hardware domain for all bridge ports, including VXLAN, to prevent packets from being forwarded by software when they were already forwarded by hardware. ARP packets are not flooded by hardware to VXLAN, so software should handle such flooding. When hardware domain of VXLAN device will be changed, ARP packets which are trapped and marked with offload_fwd_mark will not be flooded to VXLAN also in software, which will break VXLAN traffic. To prevent such breaking, trap ARP packets at layer 2 and don't mark them as L2-forwarded in hardware, then flooding ARP packets will be done only in software, and VXLAN will send ARP packets. Remove NVE_ENCAP_ARP which is no longer needed, as now ARP packets are trapped when they enter the device. Signed-off-by: Amit Cohen Reviewed-by: Petr Machata Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata --- drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 -- drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c | 12 ++++++------ drivers/net/ethernet/mellanox/mlxsw/trap.h | 5 ++--- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index c7e6a3258244..2bc8a3dbc836 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -2409,8 +2409,6 @@ static const struct mlxsw_listener mlxsw_sp_listener[] = { /* Multicast Router Traps */ MLXSW_SP_RXL_MARK(ACL1, TRAP_TO_CPU, MULTICAST, false), MLXSW_SP_RXL_L3_MARK(ACL2, TRAP_TO_CPU, MULTICAST, false), - /* NVE traps */ - MLXSW_SP_RXL_MARK(NVE_ENCAP_ARP, TRAP_TO_CPU, NEIGH_DISCOVERY, false), }; static const struct mlxsw_listener mlxsw_sp1_listener[] = { diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c index 1f9c1c86839f..b5c3f789c685 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c @@ -959,18 +959,18 @@ static const struct mlxsw_sp_trap_item mlxsw_sp_trap_items_arr[] = { }, { .trap = MLXSW_SP_TRAP_CONTROL(ARP_REQUEST, NEIGH_DISCOVERY, - MIRROR), + TRAP), .listeners_arr = { - MLXSW_SP_RXL_MARK(ROUTER_ARPBC, NEIGH_DISCOVERY, - TRAP_TO_CPU, false), + MLXSW_SP_RXL_NO_MARK(ARPBC, NEIGH_DISCOVERY, + TRAP_TO_CPU, false), }, }, { .trap = MLXSW_SP_TRAP_CONTROL(ARP_RESPONSE, NEIGH_DISCOVERY, - MIRROR), + TRAP), .listeners_arr = { - MLXSW_SP_RXL_MARK(ROUTER_ARPUC, NEIGH_DISCOVERY, - TRAP_TO_CPU, false), + MLXSW_SP_RXL_NO_MARK(ARPUC, NEIGH_DISCOVERY, + TRAP_TO_CPU, false), }, }, { diff --git a/drivers/net/ethernet/mellanox/mlxsw/trap.h b/drivers/net/ethernet/mellanox/mlxsw/trap.h index 83477c8e6971..80ee5c4825dc 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/trap.h +++ b/drivers/net/ethernet/mellanox/mlxsw/trap.h @@ -29,6 +29,8 @@ enum { MLXSW_TRAP_ID_FDB_MISMATCH = 0x3B, MLXSW_TRAP_ID_FID_MISS = 0x3D, MLXSW_TRAP_ID_DECAP_ECN0 = 0x40, + MLXSW_TRAP_ID_ARPBC = 0x50, + MLXSW_TRAP_ID_ARPUC = 0x51, MLXSW_TRAP_ID_MTUERROR = 0x52, MLXSW_TRAP_ID_TTLERROR = 0x53, MLXSW_TRAP_ID_LBERROR = 0x54, @@ -66,13 +68,10 @@ enum { MLXSW_TRAP_ID_HOST_MISS_IPV6 = 0x92, MLXSW_TRAP_ID_IPIP_DECAP_ERROR = 0xB1, MLXSW_TRAP_ID_NVE_DECAP_ARP = 0xB8, - MLXSW_TRAP_ID_NVE_ENCAP_ARP = 0xBD, MLXSW_TRAP_ID_IPV4_BFD = 0xD0, MLXSW_TRAP_ID_IPV6_BFD = 0xD1, MLXSW_TRAP_ID_ROUTER_ALERT_IPV4 = 0xD6, MLXSW_TRAP_ID_ROUTER_ALERT_IPV6 = 0xD7, - MLXSW_TRAP_ID_ROUTER_ARPBC = 0xE0, - MLXSW_TRAP_ID_ROUTER_ARPUC = 0xE1, MLXSW_TRAP_ID_DISCARD_NON_ROUTABLE = 0x11A, MLXSW_TRAP_ID_DISCARD_ROUTER2 = 0x130, MLXSW_TRAP_ID_DISCARD_ROUTER3 = 0x131, From patchwork Mon Mar 17 17:37:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 14019789 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2075.outbound.protection.outlook.com [40.107.100.75]) (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 5D42517D346 for ; Mon, 17 Mar 2025 17:40:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.100.75 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233223; cv=fail; b=Yjv8gfojWE9V+8FI3KSDNtONDHdWFLpiw18e12YVe8UFBE7drObJ6/ah3H5cTlZkIAAUp61uQHaOlNuqzRYDSwszI2TZxL5pQQ5QhJwy9jVf4VQMqCXRSN0nbiZv6MALw7O+xb/M0TGdZWMPOjLLpQidHZezWDroNb5ugQ8PsWY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233223; c=relaxed/simple; bh=AZEDJRFStbuBN+7ndH1MQjwYeEifT6zOGRKIZKczMvQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=iRqloUN7B84Rx5WY3wQPmymRX1MfHpLD2BVjKAMv3lvTgnX6oQB5C5FpHxVX78Z5IgPwSUqKhkwq7mCpdZOKqQkMtGJenopHuNKuoQruSOqK0WqaQGX+4u9oSWVsYCSV5IkM3H//qL7Y/yLooGmcrhPgQBrIFiW+JdK9UfR8aTQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=iMQ0twEX; arc=fail smtp.client-ip=40.107.100.75 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="iMQ0twEX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UgqVvhJmZdu/MvoKnNlgjQVrnmFMFWdiAVdojrfGHpvhhe6+FPYz4fBeHSfsOUa2jBtIo4t9t0YrzKHu4lkq6rp4fw8Cy4yTq85N3LWocvnV1c84cuOvwgOj91qOcOYB3S7J8inbLW2hvTfa2qrwVy1St4oXadqXkRRSxwp/P7EvjouncfhgrHCpAIdh/BryuVqYFnQt7KvCkw+4xYACqLWjJn+2CNX5gsPMENYwo8Zbz0st/mhSNJ0TPf9Dp2ynW0F7p+AEzjnH0JPFhWrOurS+1kQMvlXfDMIm1Ru/CROa8yDHVPTpTrAY6LZg7n6fMkkJUDdr5ZGP/HhUMM5BnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=c6/5Tk6K5qIDGHag+80GovjF0N6dse4ITi0Xps+8ooM=; b=dmvtWPFEyo7Q16poneM82LmVj7MuFdu5+GmLaOzuhOAJbfFflDsYfRqigTH5npVnF8EqAqjC9r7rScU4YFF7o3vaWDew9Fxbf0/EkqpE46Zkk2gcHn915i97e3tzp2BmaVipzqrhvPScSmfu9GElV4ujUX1fsRlLRf+E0eMJl/ozx7RHExwW8kIHV93Pxl6uX8Gq6ujyiPp6VG7hmK3PqWPnZ6thWihH6TVpePn+OD7Bj0fHF56JTu2+6qnEfet36SEsFEouX0zzvIhD1MwoZRm+enuPGcGMyUTHuNC27o4clOAHSSA+Pu8nhVEJGclImQoPXu8tsjeebrKfvKgQoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c6/5Tk6K5qIDGHag+80GovjF0N6dse4ITi0Xps+8ooM=; b=iMQ0twEXldkVJk64J4By2lAX91rfk1KuGY7/4aZMBZ7IKbU0fk+7H8cLAF4XKHqfXW5z667sjKt8XAOAygN7ZVj45ut87tefVq86x99xfuy1hkK2BnBWE6IuBA79a/yw9z27iJTMXaCBNJC+XXTpK35Tskg+XoXxBWxL9XzXOjwRZN8Qw0o3wQWltzMvq+FTWmz3kezJd0E/HDo18NbfD0dPXjv95iv7nJhLHzehXE0j4UZRV7MlHJOHSpVOBK6RsDzBFl1/Hnn9GO6ItL6FiZPKCtTdizr8BxNjg7JBgEYMkxHM71d2sRXPil4fWXWa4PVe0JSpw7JlCSiXaD0hng== Received: from BN9P222CA0016.NAMP222.PROD.OUTLOOK.COM (2603:10b6:408:10c::21) by DM3PR12MB9413.namprd12.prod.outlook.com (2603:10b6:8:1af::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.33; Mon, 17 Mar 2025 17:40:15 +0000 Received: from BN2PEPF0000449D.namprd02.prod.outlook.com (2603:10b6:408:10c:cafe::9c) by BN9P222CA0016.outlook.office365.com (2603:10b6:408:10c::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.33 via Frontend Transport; Mon, 17 Mar 2025 17:40:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BN2PEPF0000449D.mail.protection.outlook.com (10.167.243.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 17 Mar 2025 17:40:15 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 17 Mar 2025 10:40:03 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 17 Mar 2025 10:39:59 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , CC: Ido Schimmel , Petr Machata , "Amit Cohen" , Subject: [PATCH net-next 2/6] mlxsw: spectrum: Call mlxsw_sp_bridge_vxlan_{join, leave}() for VLAN-aware bridge Date: Mon, 17 Mar 2025 18:37:27 +0100 Message-ID: <994c1ea93520f9ea55d1011cd47dc2180d526484.1742224300.git.petrm@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF0000449D:EE_|DM3PR12MB9413:EE_ X-MS-Office365-Filtering-Correlation-Id: 17df3c30-54ed-41d8-00d1-08dd657ac6db X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: 2X7pT604b5TWDZrigGSHMgr7vyHKzVZ4IJKX0sY4DINiPER5zXwPJV9Tr1QMfcV3sDF4BUVtX4V5o0LwmkzQiT7xLRu6ynSy8McbgyrsmuwOvlMrPCzdoTN9rutCXHVY012oWi8gChK2YxyYX93zX2ZpuN24V8n2skLGkxO+YuiEr0SIp6486HNHf2YA6ByM0/6hwmy9iZd6p0OKpsrT1mBA5ja1QWxNLPS8Xv1qL736gdK3sLDHMxBeLoKU4OQkDNr1BH2XhvTqoFY5TYNc7j1fOOdMJuGzmHg4N/e1SuPAiVfdEhnsAYokQY72GmUdRlJ1Ov7Lk8lCLjVCCR5uBx7rQoKbIgQe7JignEljIFguyv8OFx7jePuKvelIlZcFrm17Q1TV0v3ZaXdwUzjtDlj+UuHj3I+GwAFErv8yGIDF80a5stPQ+7zbV8xFkY0seIYuKHIyhK6KYMGWeAT9ousEf+7btaJirTdbbmXEaeOIXeVAAIowHr2rKktJDIZ66+7VGdQHK1m0aqGUpfcRxhfLyuWt5xRaRnu0uf5bfSuVcxsTKIc5OCh+CMdRQI4h57AgL4kcZvR7cH3326wL1BjAa7FMlZHS3tRAK2dH8YUaCovSRYVNdGIo9dnCzUj8zGHecQ9rGYCet9b1wfP3tS25LIyeD+mSaD1VE5zW4sqTgfuyLmpLAGY5CyqSaWFzg5YPY0CvUTZQ8ANd264StIeKP0JRkpeaw9lbf5a2UtEt9OZN1owWa6OFlqaqx9r/BzEqkiHm6FPm1pglgUnDZT3I0/754ldPSYTimc0jLzCuQRwrJG3MPoSKa00zHSroll1L/Qq5KcxMOBwlP8TQxLVeB1cxQKtMQauzhrOaS7kRLNBHOXwOLD/PMHvCywFJSqt8pEF8k05NBMmYyK1wI6rbr+YwxNzoGtKYIbB/Eg0ZkC96wVWAtmUIpkexR25gvIswYi/vca5le+W6w/Q5F6amHeJTEd/ok7JFAai2R+2h1XAiGV5YCtCmT7J+0kusY/rpTbSsiPNmmCdpglHM1z5JMtSPwPFayPJfQzxJe8YVZwaNj0WvbEfEa56bO485IcpFmgVwQLf2RNpgXkIyvQSNS4ez8V8exlnxlTo2Bs+WQGfquzgqO4hGE1KZCjPNhIDpgtF8pZJjaCuoK9qWGkWhfGuG7Q/Hh3zdqX2uc0eYGT9bpOOfm5Xg8lsEckWwDLO49LMlt6Df1Nq8IXYmaN+FtkP/AEqpcQf+ZCsOKcu0AWuMxdBZIFopJtFkADbueFm7A3Lj4kAPvtPdkynjkwJd86sLoDDAEiFjyX61bFIL39hQJd/5zeDpnEfqBaOujEqsB2/eXzM9AXLSIJB9Tb98oezacCNkjGx3tJwvsnzQq4qu/A8k902D2Ugwp8lXP5bcwKIO1sc2NIlH29nTakG/IQ1fXohQkJSikhoc9tuWNFztNyYs93asHRkY88DBLUNgnteoeZ7eBMhILCFDw+b2G/CeB7xCKh4cCV7vpjw= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2025 17:40:15.0947 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 17df3c30-54ed-41d8-00d1-08dd657ac6db X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF0000449D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9413 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen mlxsw_sp_bridge_vxlan_{join,leave}() are not called when a VXLAN device joins or leaves a VLAN-aware bridge. As mentioned in the comment - when the bridge is VLAN-aware, the VNI of the VXLAN device needs to be mapped to a VLAN, but at this point no VLANs are configured on the VxLAN device. This means that we can call the APIs, but there is no point to do that, as they do not configure anything in such cases. Next patch will extend mlxsw_sp_bridge_vxlan_{join,leave}() to set hardware domain for VXLAN, this should be done also when a VXLAN device joins or leaves a VLAN-aware bridge. Call the APIs, which for now do not do anything in these flows. Align the call to mlxsw_sp_bridge_vxlan_leave() to be called like mlxsw_sp_bridge_vxlan_join(), only in case that the VXLAN device is up, so move the check to be done before calling mlxsw_sp_bridge_vxlan_{join,leave}(). This does not change the existing behavior, as there is a similar check inside mlxsw_sp_bridge_vxlan_leave(). Signed-off-by: Amit Cohen Reviewed-by: Petr Machata Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata --- .../net/ethernet/mellanox/mlxsw/spectrum.c | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index 2bc8a3dbc836..3080ea032e7f 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -5230,25 +5230,13 @@ static int mlxsw_sp_netdevice_vxlan_event(struct mlxsw_sp *mlxsw_sp, return 0; if (!mlxsw_sp_bridge_vxlan_is_valid(upper_dev, extack)) return -EOPNOTSUPP; - if (cu_info->linking) { - if (!netif_running(dev)) - return 0; - /* When the bridge is VLAN-aware, the VNI of the VxLAN - * device needs to be mapped to a VLAN, but at this - * point no VLANs are configured on the VxLAN device - */ - if (br_vlan_enabled(upper_dev)) - return 0; + if (!netif_running(dev)) + return 0; + if (cu_info->linking) return mlxsw_sp_bridge_vxlan_join(mlxsw_sp, upper_dev, dev, 0, extack); - } else { - /* VLANs were already flushed, which triggered the - * necessary cleanup - */ - if (br_vlan_enabled(upper_dev)) - return 0; + else mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, dev); - } break; case NETDEV_PRE_UP: upper_dev = netdev_master_upper_dev_get(dev); From patchwork Mon Mar 17 17:37:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 14019790 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2072.outbound.protection.outlook.com [40.107.237.72]) (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 4525E1ABEA5 for ; Mon, 17 Mar 2025 17:40:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.72 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233229; cv=fail; b=onc+r4bv7e4D8S3i7vfs1y5J2fjsVdK7fch4L3TY0lgYI+M0lIQBqVwHNaJpz0zhtwfejWVUvl/8ZD1Pm/pb3JymResCZ0T9a71EOk9QQ2c9X2qdazOU+Lw8lZvseIlKAkKAt/jSaCo2V3cjihFnN3cBqEiWqlb75eZBcbwGm9M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233229; c=relaxed/simple; bh=GPPtvlzFiJaebU9KFUOa9GfAEBPTE+jcVG1IwvgLyYQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mjtRvlks7ESFMVoIm6NMRuVbam45/iWe0jl/WvN2PBVZN0YphJOu4/yiK8capytkAJndVfQPqZILjpU6CE4FWwzpkrm+1FN83hVHMLgFGPCQh83gXsHWibiuBtPD+iZEqCqY60YpSyVBEHnJt8q3aUA6CyBIT6zrCojzNWZGoi8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=YeITCX9N; arc=fail smtp.client-ip=40.107.237.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="YeITCX9N" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dt/1IARCUneNiIIhUkWgMH1FZg/3ospnmq4CZ6v2LaHeKN+hXr/G8ayAQl7Diue/GahfIS3QewPfe2FaEYtNbR526beWa9MhSC9uZaS/Gh+7dLbYijOaYKzWJoGJb5hXP+PpiQeASI9ixrFqhp4QTa6lZ6jvDLhuviwswBdy5TE940SKGX8nu5Y52XAY54eILGMTOrVMi7M98CG+YS+ragUqT1M5N3N6wkHFt5wXdMUJpw14PC0i4LAVNX/Yz7JqM9c5SYMY4bdk9i0eVrNYOcBwXMJHxEBgcWI2acWsXzKMhBXgm+D3x6Azme9ww4JYskmBXR1I++iFs46iFK9/ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VS5CZPpUcd7hkZcIRme6IG+s+BQAfE6wReJKpxMxD9I=; b=DaA1VtGnDuiRHKI2CBTEofQ72U0I2qfzzpXuNWiuFANchHCkc9hJ+cbmZxUALcTPCsbghaGdccyJyO4tgE7pWzSamVi3Zn1lVQaOEbTk69WvzMEWBqEaSXXmWW5cjp2rew+v165r8rMyiDGykGQZieU6wV+LgRnWn+pm1Ep5k48x8YNPINwD/mfnJzKNCaTRcoE60HZDA9P7ZHv34PKkQm6kxL3PG83vlW2CAfCMEjmhzV/DRf76ERMx+WWd3AjVAzDstHdz1G3GNCiEPSwDlVjPC3ZG1lyEIhinfIAMh4ElqMPMnwRLrER+LR6mMP8PQeWgbPUWoDMZHZvhhEoHJw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VS5CZPpUcd7hkZcIRme6IG+s+BQAfE6wReJKpxMxD9I=; b=YeITCX9NIHipSu7eiQd6ZXSobRM5Av7xCGcexiKHsDTdQDQrPjOb8WzOiCWv4Bxsh3MmQLsOJVlXKEDhiOHUgszaB4A7VPcrQkTTYr6G4VhZ95KEAeZQzwFq1S1FXD0280P2o9zCam1LS/tAm5Q3ZQmZ5PDFQMuUpXVlCIphwylljClgmaUXCdZmLTZfQwWB+QYCr7AKSHUjGoQ2Ngfv3dQAfry8VFhMHjP+vzTRRyUHLJSiylAnuBcmVtz4sMoSN5GrrkNWibRhACK2ntxZHBZecoOYVwSCTAjVYhICu6z4+66kR+hSVAub+LsGJz5xOjrQgniY5J+q/+2NRVWJ+g== Received: from BN9PR03CA0372.namprd03.prod.outlook.com (2603:10b6:408:f7::17) by PH7PR12MB6393.namprd12.prod.outlook.com (2603:10b6:510:1ff::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.33; Mon, 17 Mar 2025 17:40:22 +0000 Received: from BN1PEPF0000468B.namprd05.prod.outlook.com (2603:10b6:408:f7:cafe::7e) by BN9PR03CA0372.outlook.office365.com (2603:10b6:408:f7::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.33 via Frontend Transport; Mon, 17 Mar 2025 17:40:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN1PEPF0000468B.mail.protection.outlook.com (10.167.243.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 17 Mar 2025 17:40:21 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 17 Mar 2025 10:40:08 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 17 Mar 2025 10:40:03 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , CC: Ido Schimmel , Petr Machata , "Amit Cohen" , Subject: [PATCH net-next 3/6] mlxsw: spectrum_switchdev: Add an internal API for VXLAN leave Date: Mon, 17 Mar 2025 18:37:28 +0100 Message-ID: X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0000468B:EE_|PH7PR12MB6393:EE_ X-MS-Office365-Filtering-Correlation-Id: d2979940-c739-4ab3-e2f5-08dd657aca82 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: R+NnaGqqY6VSkibbM/OunCnHpyW+r4rNP+v9HnGicfmnHRRPNUywjVyRSL3PBhQw/x0EN855RFTC70brElpS743pvxu5SVI+rKviksGg4k4gjpaSUvB/rZxRUF+l2W1OoXZSKDtYF6HtfLjY/bJndwCCay4x05GUwtVYEF4bLLFuuklZiWlql2I6+30a6VfmKXLLwKQS06gXy5geC+5PETdk+6ZaxiXEOJO77MI3Xb9udMSpoUNtrJ5RZN22ovQkpuFjrsENrhwoeS1vUeqhzwg37Yy2kXx1yBwM/IqnHsqmq1smPP7T/jRSh1e27pCL0GzT7Hvt4rJKh73o4B32gW35jYjtCxmG4Q65qFGVsRQ5VWHRdDeHJRzrqgbSZwsSRUIRQ1EsMabwaVQNBmjKx+zc496mBkbn35z/fQNNQWzk5NFeb710FVLDuqriaSJBknQFwKWffFLNyC85CqevcR/IcMkPgbTKIY5JC/vV9q8Tfh4Xz2F1l/6fOL6U0UyE05xzkGHz4+csDwRRewTL/0dRoK2+OIZKOO6PdPHwzpJs5YHuoFl/FWolIlMOZCxrrg9MkPQ9/zEF78F0IEeOZ9aji/Linwd44Rf7kjaEWlCXWkAsexwq9CbCer0oZlfEp+5JwTT2YYurRRVOl+JR21PJJyKxrWttAZTW/zMbkZ2mEP4F/sSRlfDAzAQhyqNS3vsqVCyRdpwCdgcrSvnheue7QZhEEie1DGsziZYzAv7vEBgI5WvX/GcIALT6nICd4zg+FamN77I2YwoUPlg/aYqv+037ZvYH7Kt8cn/LepeFKLx3IAgXJ+w8ZsAe8MWREfozmSLlVKOeJvBmM3Z0tqMt1+9quYxb5t4sXLXC1Fk8aQit+jmC9PP6cZmuPGh8+HSssgtT1tPvjtMmZgqrnGdH7d/+1CLJxfrdDIxJaJi/57SqG+CH2RlUxXscNFfH7vwLI76v18+mFYTubABSDuIUFEMFjIKgx0Dz5v1lIXbfJZcRrOTw9lotueSPPsBEjwRKuy2LJmxCWHmlMUvHnn4uLvDjqNEh0C1VamOKaWs5WyeWWRfb+G4PtY0dDdlu4eaK1oMZZWIB47ba4eSpGxFoXLlhlx9WWtEieF1r2jAGvlOGjtpZNk67Vt++wvLiXBVejz92s1WV96Za3fxpazZt4z1/oTH36ku4PiqQSka68x4ITsPt4R2SWQsZnmj+iCLHgJRY1pul+LL+8//OVobZ073G6LuzkENOpUq9mhYxQEbSiYBLaEMHfUDGb51dRf2Lm4PxEK9485WzM+3LPAt9tzMFweYvjO05nFwqlE9xG4D5mfD3EwUS+waphFED2gOOypXbgbTaAql6FYmO0C4zxWGft4sMSBtl4s9AwYU4SJGmBrm8781RCLJBx+9E1aMoXIqvIs/3s0zsHesJwnlwOiTk11zvsbiFnjBX00uzfFQygSdL4fWOWKlseD/xYa0HM1af96lE4kzOSt+eTYijTuyoWAJCRqeABkVzgf0= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2025 17:40:21.2438 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d2979940-c739-4ab3-e2f5-08dd657aca82 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0000468B.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6393 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen There is asymmetry in how the VXLAN join and leave functions are used. The join function (mlxsw_sp_bridge_vxlan_join()) is only called in response to netdev events (e.g., VXLAN device joining a bridge), but the leave function is also called in response to switchdev events (e.g., VLAN configuration on top of the VXLAN device) in order to invalidate VNI to FID mappings. This asymmetry will cause problems when the functions will be later extended to mark VXLAN bridge ports as offloaded or not. Therefore, create an internal function (__mlxsw_sp_bridge_vxlan_leave()) that is used to invalidate VNI to FID mappings and call it from mlxsw_sp_bridge_vxlan_leave() which will only be invoked in response to netdev events, like mlxsw_sp_bridge_vxlan_join(). No functional changes intended. Signed-off-by: Amit Cohen Reviewed-by: Petr Machata Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata --- .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 6397ff0dc951..c95ef79eaf3d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -2944,8 +2944,8 @@ int mlxsw_sp_bridge_vxlan_join(struct mlxsw_sp *mlxsw_sp, extack); } -void mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, - const struct net_device *vxlan_dev) +static void __mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, + const struct net_device *vxlan_dev) { struct vxlan_dev *vxlan = netdev_priv(vxlan_dev); struct mlxsw_sp_fid *fid; @@ -2963,6 +2963,12 @@ void mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_fid_put(fid); } +void mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, + const struct net_device *vxlan_dev) +{ + __mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, vxlan_dev); +} + static void mlxsw_sp_switchdev_vxlan_addr_convert(const union vxlan_addr *vxlan_addr, enum mlxsw_sp_l3proto *proto, @@ -3867,7 +3873,7 @@ mlxsw_sp_switchdev_vxlan_vlan_add(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_fid_put(fid); return -EINVAL; } - mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, vxlan_dev); + __mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, vxlan_dev); mlxsw_sp_fid_put(fid); return 0; } @@ -3883,7 +3889,7 @@ mlxsw_sp_switchdev_vxlan_vlan_add(struct mlxsw_sp *mlxsw_sp, /* Fourth case: Thew new VLAN is PVID, which means the VLAN currently * mapped to the VNI should be unmapped */ - mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, vxlan_dev); + __mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, vxlan_dev); mlxsw_sp_fid_put(fid); /* Fifth case: The new VLAN is also egress untagged, which means the @@ -3923,7 +3929,7 @@ mlxsw_sp_switchdev_vxlan_vlan_del(struct mlxsw_sp *mlxsw_sp, if (mlxsw_sp_fid_8021q_vid(fid) != vid) goto out; - mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, vxlan_dev); + __mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, vxlan_dev); out: mlxsw_sp_fid_put(fid); From patchwork Mon Mar 17 17:37:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 14019791 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2079.outbound.protection.outlook.com [40.107.220.79]) (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 751911A3BD8 for ; Mon, 17 Mar 2025 17:40:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233234; cv=fail; b=Rm+2McTyAqHQYzshmB/jgzssJMXmfqgpJZEr+tB0smvsXrwoOSX4/pNiOiy92c/wHjoYhquU4n6yL0aLsWPHJ9wonC3bVmjHruNdCYR6cgh62rg9caF8P9KkSQ2f21zlqNT/fM/bnkPt55iQeuCbLHAvd1vHRCfBTB0lOTe720Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233234; c=relaxed/simple; bh=CuHdI96jeowwsuQVEzllgMg+cNxtT5+claVO1iiyvkY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EyMpeFdaKQMues80pSR/nwW4FufaaGJOclaeL6vaZQVymDJsqkZvMVxXrM+gSo2dAleeVnss63qjQIYYWBTzzsx3/aQIEdxEj0Gfa+ahX0u2S/suk77psMz66NF76ZUbB4Sln059YbGBxUuvPs6N+bfLznLLeYUnl/R3EX8Jddw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=JhlLTv9y; arc=fail smtp.client-ip=40.107.220.79 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="JhlLTv9y" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E59wTTRxfaRdrjWjWUPgjmjrJCOn1B/HQ2JBQhifXBENcvb1XJrgfblIVxhvofZejRLb52Xq33UpDpuDWksyJOJyFiMIpQggI3T9f91AZRxpUdBIYNyID2MRHIh2nax9J9qDk3ylYOmJwdYJvI34psH4BOzbdGsbcGPgxD6cJxKPwpy47Ug6co1sau99y7iJsCAPnW4Mv6LvrG6mqvJiyHcY0hEdnQx5F0rMf/NzUt+jxQVufi423/RczZlW7AK9L7mhuGJQNUP5wKhThnfQwaafFNJYF9M88bNR6BKdx33g/Jqlombffn6FmEMINAG+WLNXNaPU9QsHquM90OcgAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=u46+UHEKviopyN1/H1v4qeV0ZyLM8r7KQN7wZnRoXcM=; b=Jv0iUtpRR4g1tajufad7pUQYXhqcS1XfQrUgNkL50RTo55M5IBb2ESfR12bXQ55d+om9agkA44WzjaWCBO+c1cILbMb1KtUCdEoVuHYNq+RYaLGBMdwjPCirLbz9STtHgEnUKCNB10oV2regqT29cIsO201r9E2FCqRzyCJnCesOBNzzu6m11nQXi/B2PpftowLxkAV2t1r9HbJmwFiLb+n4Vg55H7GpvveRWzr32GLcNDhVpSgQYsMth0TaLC9pCrtnzbYsnDyvnHQCO/xgIXy46AKwcxNRpBgD2IcFaUMCyHb36iCgz+7ckgf+ePH6x1A813zX6nmemtASRFdEvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u46+UHEKviopyN1/H1v4qeV0ZyLM8r7KQN7wZnRoXcM=; b=JhlLTv9yB14lFpvxUrlpZC2g/mdjgHCQYj7BjKXn11/Qf706SC+452+nWF9beYD+BnVu7u7vAtoMNJmqqIktGDN106VxFrM2luJ9C9zd6C04w60VeTrAsfvVGhnNu0pVcZe102CUM4FPw7kyuM03xNpylAJ4024dyYUBbPgG0WPOdxLC+3LBShy62JGTSWyvBADKQfkK6RAtJKYF0GwYN80Sug3TBzF+7bH75SogWDFieRuD1pp9utKnGf7dNURB3z9aFbMD+s+Y17LT+8Q3z8ICZHmPdqg/2aiTcu3p+ms1aLXt36uzXKSbDcsjGHfZzt0MdmFdGVDBwQP/td02fg== Received: from BL1PR13CA0399.namprd13.prod.outlook.com (2603:10b6:208:2c2::14) by IA1PR12MB9029.namprd12.prod.outlook.com (2603:10b6:208:3f0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.33; Mon, 17 Mar 2025 17:40:28 +0000 Received: from BN1PEPF0000468E.namprd05.prod.outlook.com (2603:10b6:208:2c2:cafe::30) by BL1PR13CA0399.outlook.office365.com (2603:10b6:208:2c2::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.33 via Frontend Transport; Mon, 17 Mar 2025 17:40:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN1PEPF0000468E.mail.protection.outlook.com (10.167.243.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 17 Mar 2025 17:40:27 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 17 Mar 2025 10:40:13 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 17 Mar 2025 10:40:08 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , CC: Ido Schimmel , Petr Machata , "Amit Cohen" , Subject: [PATCH net-next 4/6] mlxsw: spectrum_switchdev: Move mlxsw_sp_bridge_vxlan_join() Date: Mon, 17 Mar 2025 18:37:29 +0100 Message-ID: <64750a0965536530482318578bada30fac372b8a.1742224300.git.petrm@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0000468E:EE_|IA1PR12MB9029:EE_ X-MS-Office365-Filtering-Correlation-Id: e5832b03-6e7e-414d-922f-08dd657ace41 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: 0dJlFw39pUelDevV7x+S/bhekQyK3wgjQ+ojX6YoJYjIfyuzmHWFMlEOL920VpngpwBOImxQHRfPSandCGmhiLkbGdQNtc6aJ1zGxbddZDEL5mxIBSrj69XjrYfzhJKYv5rxoxq9Ew91W5Z7GwokdxZLZI9slEgUemcYpl2aowyoWXQF1E+ceBpELcm0tWqiQIoD2Z785h2epLteT4bOxyy2MiMVkDotQwdQ5Zz0NMARxZTV9l5yKifVzwIku18vwgjiogk3VFLdxRIz6rFpX9puM0hPa3fx1As4xmaQH2vH1Lqyinrv3yXgDh9pvkTw006hzs3H2JP6lo+pI7Ql9kT0/RXRZpjoTjm3xJYgjnUYrGsui0C+hZv+mInHRM+eNl1DhbspOBjeZ8FjsynQVWkfFwcIXUs96XuvYFM732R0JCD7hMSskIbFcElHsHXqLg5b4X1b/xvwOjUHvc7DsOhslVKHpftJiBjB2ttbFs9N8YNxp9z+YlKLWuaYxofIBHYBJ2rJ1cdMW98EuPivtK9sRFexa7SYIeRkHsyqqnPURPI7tGi2knw9xf/9VTP/RSAsawI26oGAPvHknl9nEootrr20GkjxuoT0xEW6DCFw4D8w1X7+TTtXE/BNfeAztX+Y4KDA7Rs0aC1ALiDQuImcX0CKY32VDEwvfhRb8wbMqPE0s4nfKjOfnBTvhQI+oO4r5jL3/w1nYLBlBj5zcnh4t1LVI50rBrz5Rz5NmpJjHt5F5Hr9bpzTwk1jJimYkWWVxwip38+yG8VCR9tmkgCIB5DTDRPsaIRSeRzIIoiF9FRJCHLKJM6PpitzoeBptMQfhVX3TLIjb0w98CdG6gGt1VGNBMHPbV6KyVfjrBnRHRh8/Sl2wztTdbPSNNF1bjSIhiSr3mZp188+GqOxAptu8Bble94qhmj7YEODa/h5APgj7PQ1Xd0BsCW4CrZkakDXL3H7q99xE4YA/fxSgvkupjLC5+VGdab2cPPkQUBZAftTUxxzSUmhNGYiVRLBDzEPaMSo+HhDTm4jdr3v8YEHWREK3TPTwTgkGc03exdcfujhbFJUZzeCyRhsLKqwKNarACnR3f4z35am7un32tfGdt4hph3QwjrGsdgpIkE20yQDFN7wMba/r9/MBCejtMz4WUbtb7YhVgnITR5D+v0oxQQuwUw/MMkRqGiJj41y5DfNWp/pfzKs2kSFOQHHxSUnEyDZhYwxVwq+SkI8n7sxtztwWaqiQ7ucLs9BbOvLXQZ8qL7gIgUJ2aYcMIOddzd2Q65SMBjt2GSq6TnJwVcLi07Z95TEDQ2Kp6LIXcdUALXHOQnTyeaXTWQBs00YaEXi2sgieZmwNN35jCw98M9LFnhNoJ+SDgDgzbJuu0PsapqRlNOE5c3mlAfJovniNBCfLvUrmJFC6399gr8l04t7+0iXxchrdHRtfnRNjqxCe9lc0Z+6c6vLavoTYmrLEPmfUUFRHwYeIPDYuspwPzBIg6vQqj0c4F1NEEsjm+k= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2025 17:40:27.5422 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e5832b03-6e7e-414d-922f-08dd657ace41 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0000468E.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9029 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Next patch will call __mlxsw_sp_bridge_vxlan_leave() from mlxsw_sp_bridge_vxlan_join() as part of error flow, move the function to be able to call the second one. Signed-off-by: Amit Cohen Reviewed-by: Petr Machata Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata --- .../mellanox/mlxsw/spectrum_switchdev.c | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index c95ef79eaf3d..13ad4e31d701 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -2929,21 +2929,6 @@ void mlxsw_sp_port_bridge_leave(struct mlxsw_sp_port *mlxsw_sp_port, mlxsw_sp_bridge_port_put(mlxsw_sp->bridge, bridge_port); } -int mlxsw_sp_bridge_vxlan_join(struct mlxsw_sp *mlxsw_sp, - const struct net_device *br_dev, - const struct net_device *vxlan_dev, u16 vid, - struct netlink_ext_ack *extack) -{ - struct mlxsw_sp_bridge_device *bridge_device; - - bridge_device = mlxsw_sp_bridge_device_find(mlxsw_sp->bridge, br_dev); - if (WARN_ON(!bridge_device)) - return -EINVAL; - - return bridge_device->ops->vxlan_join(bridge_device, vxlan_dev, vid, - extack); -} - static void __mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, const struct net_device *vxlan_dev) { @@ -2963,6 +2948,21 @@ static void __mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_fid_put(fid); } +int mlxsw_sp_bridge_vxlan_join(struct mlxsw_sp *mlxsw_sp, + const struct net_device *br_dev, + const struct net_device *vxlan_dev, u16 vid, + struct netlink_ext_ack *extack) +{ + struct mlxsw_sp_bridge_device *bridge_device; + + bridge_device = mlxsw_sp_bridge_device_find(mlxsw_sp->bridge, br_dev); + if (WARN_ON(!bridge_device)) + return -EINVAL; + + return bridge_device->ops->vxlan_join(bridge_device, vxlan_dev, vid, + extack); +} + void mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, const struct net_device *vxlan_dev) { From patchwork Mon Mar 17 17:37:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 14019792 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 3A6E71ACECE for ; Mon, 17 Mar 2025 17:40:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233241; cv=fail; b=stb68IVUXbfVeV6l9lgS3hcTNL1IH+Q784PHphAIq9pVbXs2HS8ofwpsTlctKJK8zkxIY+VhnI78k83LT4ECZ5Yobo42M7kVzvjWgc0aY4UJHauyFiOicWXXaXgITysSyrMao6h8Wntbo6osdw+Z3UrDAQJl4J8iCqznGgkB+IU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233241; c=relaxed/simple; bh=4gLtf+yt6c62EkfgKWhCgywY/7J2I9czV/pPdq/HpcE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Q7MEiQugkqpkX9mBvOOadg+7lMVStUq97ve7gf4u7fKh/cU63YIdLPNffDpD285uESg/siMKrsHe1Fob09r7eajfTMxqpHhPbWcZaQPeu2JNVR/cql31lI6h1R8VO0T1M13fPJbqoE8RtOIap7M0yyz2ZYSeOrcnIsEdy2HJU4Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=XRKI2kIR; arc=fail smtp.client-ip=40.107.94.79 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="XRKI2kIR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UYqtSKAYI4PpaW2ffGdx9oNLuIv9sv3R1fMKUWmvELKF3Nu3jrp2sMul1AxqgAJSvmL3wVIaMmjzr7BuwF2B2cR1QrnRDlUA8xlh0cdLg4uZwdC/vFoc91wBr7u1uKS1wXNyXOv5tKI0T4C49rn1S3Mf/YMUyl5u5p+WoGoaYa2B13yr+C2eLYGb+GEw90dDBZfr9O7rG7mb0k/5FOz7DCUj+ISijYO1GqTgIZQzKkki8otkphq641t8eDDatJFUvQNKnkrddNlLdgxCiW856TFN1ou4xHMRTWOcaYUn0NwFAiBp6jt9E95htFDg8GQz+/gopQfsSiZjY6g1Q6Jykw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=uyfjVq5laykueUcFx31nQXMz11sty6JOLXq2+ua0GBs=; b=BnkUr1/YMe5zuP4tCew04znH9xd51rc7yTiXegjQ2ZxQDVStxhYxIkbtL6gVH3J07cgOUqvHYEE4x1J9s9chLo0+oKTF2UPZLbZopCbkhDaKW+qngv/GOYEGpNovmdws0SJVEwwjuTd0VTR4BamzeELWTW2w/AXX9uL1alRG9Do3+3YwvBJ/nAkNy7cujYaf9PbD8wRx6pgqMqnOnAFQDnC7bIS9h9J01b+wx6lUhPAIPnNye00p1Bg1HNPVfpmoHLlumlngdN2aStHKIooqjyCINIrH6Qu6DYWq9iKwPQCPNkeFA5Po6NsjGFz4vm65DNQ5vtAPmPFidO1gfvS/CA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uyfjVq5laykueUcFx31nQXMz11sty6JOLXq2+ua0GBs=; b=XRKI2kIRq1I7SnGi4uFHd5JFACRgQw41RCDUZgJJFPTOhki5vZwitNEc+J4TtlZrc8CKV5XwqVAVmpmlLVHATlL7gdcVykJtpQ/WyVsR4vu7pgauQQYisDYQVCAHf8Jw6HDwpRsCG0SZy04eHGfhUPjsV6fde+XArdeUK0nl0E/WXQgkObetKavLJ2Zq8mNVkPqwQeDGMwKeZa2qbIZyUzc9yRyQalf1aZCxXhAtZNvyUlLBeLOkYTEPTq9UU5EFHDk1dTNxFYhG1Alyzcr3E4n4VX7EL3elHdoA2XvrjrJccxYP8WpWRxj2XxkdkM7KesLo8sBXxvh73lSjve75yQ== Received: from MN0PR04CA0028.namprd04.prod.outlook.com (2603:10b6:208:52d::27) by CY3PR12MB9631.namprd12.prod.outlook.com (2603:10b6:930:ff::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.33; Mon, 17 Mar 2025 17:40:36 +0000 Received: from BN2PEPF000044A2.namprd02.prod.outlook.com (2603:10b6:208:52d:cafe::f7) by MN0PR04CA0028.outlook.office365.com (2603:10b6:208:52d::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.33 via Frontend Transport; Mon, 17 Mar 2025 17:40:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BN2PEPF000044A2.mail.protection.outlook.com (10.167.243.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 17 Mar 2025 17:40:35 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 17 Mar 2025 10:40:19 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 17 Mar 2025 10:40:13 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , CC: Ido Schimmel , Petr Machata , "Amit Cohen" , , Vladimir Oltean , Vladyslav Mykhaliuk Subject: [PATCH net-next 5/6] mlxsw: Add VXLAN bridge ports to same hardware domain as physical bridge ports Date: Mon, 17 Mar 2025 18:37:30 +0100 Message-ID: <7279056843140fae3a72c2d204c7886b79d03899.1742224300.git.petrm@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044A2:EE_|CY3PR12MB9631:EE_ X-MS-Office365-Filtering-Correlation-Id: 24115f95-902c-4df8-ea25-08dd657ad321 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014; X-Microsoft-Antispam-Message-Info: 0nfePRECHFp+ehIod8JfeuWGfncBTF7mB+pqBq1QdToc0qbI95AfFnRB2yMFX7NWncM0YIQWANKK8/DaV9by17glao/lmPFDT5PCxS4DHK5khNeTbySw0KAwCSyvNR11zRBM/iM51EI4/VAP0uTL0DK15oZfENmGjdu3Yw7i6X+hlicpoeC5M85YvJ4i0sAgP1qUvRUmVYgd0LO+fjhaHWHNBN/CdkKIF2Oph9rZ4t/0caVQuZEN4xsyphy5cX13NLyntCF0xtVuozE6UaP2YZuyis9Psp8D4mDAxRnN8XXG5ByUlhbmtxWva/NA7OVGUHubOuSCBZRzhwg5r7j8P1+vz4FUQ34l1FY6sVZMfreggZdwFiA6c16Sr6K+1PruCwSz+g3f8/++tShBKb3bxOMHq67Y1Z6fVGpZPzw1a0/V/iNyqYzoGZ/h74UZF+VVtGXDGKwHs6dKfarLGdflOPrA8rX4BMpCkD6L5ndWnIhyz0f+9pylw750p8A8KaQ04PNYztw+ocw+lGojMiKJZPj8eVBL/QvCIWhm8dyFNrZKXIbrtA0ihezC7hse+1VxFStpD57j8gEXPgO+/mfg0OLoppjR+M9UeVc+gFo1XzMBFZ0SU/ECQJs0Xi+sydBzA7FpMMhXe/2aIOBEEmN+WBAkddcfNVYkGqdTHjO2zkCxZ0h7XihiSyPqMzWTyIQJ6qJCuBvOUVqU9104OCTtqLRwBhwx7qeybotO1UOS4GQJ3pXXy1aqoAjDF5Zr6dGgWxUWIx07vr+ZJHnLv6Lyt8+lRgTBxj9dObH05Xzy4lIv657IZRmsduTuzN2COHe8ciUJ/BCL7UjzqUKjN92+mZXAqFeNOnVyiS4imBVWWahMgKcrekKrewA+aGE0XUpw8dEE/SSj1F7Qv0/Kd2f1gT0LK3B1Yq9tPxjA8qCTQXNu+fEOo0vPaHyZDr0Y2IMR+p++3vYF4d1EV8kP0XJDm0GTsC4bE4hAYO5mplcnuJaZrI6cgzebz+z91MfH3qbP5TJkOpHehM/3ouLRv5EYzEIs/cBPAjm+QrWUspdiFqpfmav6IGss+VU/LtjTBHOuPvZbJDyp7z9YyNKtzuLWYshIUF1UeTaesiFAj1+2QEEGtswHdrvMIovJ1ET5PZU+MQNy3SnDxfQRGZrAdbYwWN0ReV/2iy1K8w52ZKEOeZqQe6pppthpCcEXMnr/0/vX8sFH1jZN9vPiDnlGsgAs74M8yEVr+c/AMBkKt9uDFKIt9cv3ZIcMNZK/3FUXci0yTQtb9BZOHONxICwqif84b5kOeRCGGlZb2gS+0ai8y7fwXy0UdYeRWg/gqc1/9UC6Sa9K3Sf0K4jEY+49wK1wAl5xVkeTyFxd74/p2phhOsZlYSISwDVjvUtbBfpC2gQ2++ofAAGprW3MWfXWI7Yu+A4NrGw+4mO+pUkSOO8Mbeq9McUaNXeiGNmZqI7uvo0+DS6ZN3VDPtAV+/uzoCK1rLq3wmgFOo3nRM+W1H4Vxi8= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2025 17:40:35.7077 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 24115f95-902c-4df8-ea25-08dd657ad321 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044A2.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9631 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen When hardware floods packets to bridge ports, but flooding to VXLAN bridge port fails during encapsulation to one of the remote VTEPs, the packets are trapped to CPU. In such case, the packets are marked with skb->offload_fwd_mark, which means that packet was L2-forwarded in hardware. Software data path repeats flooding, but packets which are marked with skb->offload_fwd_mark will not be flooded by the bridge to bridge ports which are in the same hardware domain as the ingress port. Currently, mlxsw does not add VXLAN bridge ports to the same hardware domain as physical bridge ports despite the fact that the device is able to forward packets to and from VXLAN tunnels in hardware. In some scenarios (as mentioned above) this can result in remote VTEPs receiving duplicate packets. The packets are first flooded by hardware and after an encapsulation failure, they are flooded again to all remote VTEPs by software. Solve this by adding VXLAN bridge ports to the same hardware domain as physical bridge ports, so then nbp_switchdev_allowed_egress() will return false also for VXLAN, and packets will not be sent twice from VXLAN device. switchdev_bridge_port_offload() should get vxlan_dev not as const, so some changes are required. Call switchdev API from mlxsw_sp_bridge_vxlan_{join,leave}() which handle offload configurations. Reported-by: Vladimir Oltean Closes: https://lore.kernel.org/all/20250210152246.4ajumdchwhvbarik@skbuf/ Reported-by: Vladyslav Mykhaliuk Signed-off-by: Amit Cohen Reviewed-by: Petr Machata Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata --- .../net/ethernet/mellanox/mlxsw/spectrum.h | 4 +-- .../mellanox/mlxsw/spectrum_switchdev.c | 28 ++++++++++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h index fa7082ee5183..37cd1d002b3b 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h @@ -661,10 +661,10 @@ bool mlxsw_sp_bridge_device_is_offloaded(const struct mlxsw_sp *mlxsw_sp, const struct net_device *br_dev); int mlxsw_sp_bridge_vxlan_join(struct mlxsw_sp *mlxsw_sp, const struct net_device *br_dev, - const struct net_device *vxlan_dev, u16 vid, + struct net_device *vxlan_dev, u16 vid, struct netlink_ext_ack *extack); void mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, - const struct net_device *vxlan_dev); + struct net_device *vxlan_dev); extern struct notifier_block mlxsw_sp_switchdev_notifier; /* spectrum.c */ diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 13ad4e31d701..a48bf342084d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -2950,22 +2950,42 @@ static void __mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_bridge_vxlan_join(struct mlxsw_sp *mlxsw_sp, const struct net_device *br_dev, - const struct net_device *vxlan_dev, u16 vid, + struct net_device *vxlan_dev, u16 vid, struct netlink_ext_ack *extack) { struct mlxsw_sp_bridge_device *bridge_device; + struct mlxsw_sp_port *mlxsw_sp_port; + int err; bridge_device = mlxsw_sp_bridge_device_find(mlxsw_sp->bridge, br_dev); if (WARN_ON(!bridge_device)) return -EINVAL; - return bridge_device->ops->vxlan_join(bridge_device, vxlan_dev, vid, - extack); + mlxsw_sp_port = mlxsw_sp_port_dev_lower_find(bridge_device->dev); + if (!mlxsw_sp_port) + return -EINVAL; + + err = bridge_device->ops->vxlan_join(bridge_device, vxlan_dev, vid, + extack); + if (err) + return err; + + err = switchdev_bridge_port_offload(vxlan_dev, mlxsw_sp_port->dev, + NULL, NULL, NULL, false, extack); + if (err) + goto err_bridge_port_offload; + + return 0; + +err_bridge_port_offload: + __mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, vxlan_dev); + return err; } void mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp, - const struct net_device *vxlan_dev) + struct net_device *vxlan_dev) { + switchdev_bridge_port_unoffload(vxlan_dev, NULL, NULL, NULL); __mlxsw_sp_bridge_vxlan_leave(mlxsw_sp, vxlan_dev); } From patchwork Mon Mar 17 17:37:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 14019793 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2082.outbound.protection.outlook.com [40.107.92.82]) (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 C92A01AD403 for ; Mon, 17 Mar 2025 17:40:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.82 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233253; cv=fail; b=WrhEtuADM07gG/a8zDtYBHIMivJgs2kWIc6yQhw7rGmR+6fJV1mYjSKiqTNyg/dP4akxU9I5Q6JsNhaz++I/Yv26uQSxP09dZf1k9sHiIiYR1nIKOTGtoyBEnYbHBo2sqFBrbigaoWOSrDA9A9EFlU7y5OdR4ZzFri2jBppMb4w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742233253; c=relaxed/simple; bh=5ZEYOx23O9gpQxAqMCO3qo9m6MFtekgYfFmAVoag80E=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OP8yiuYc7x0+Lt3EjK/hNxM3VU8oJkpN4Zw+vK40Q2gppig8UyjGJUiaGGBMbI/eKhX1PHeAvXumPXoELVfL5XsdlEXm+zFfUg01soJnscYtuGTj1KYeAn0JJJPhUMIdr9mdK9E/1x/HIwkznGJmKLuFf1XaiW3NnVRl2CXgjTc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=gsrdP8d6; arc=fail smtp.client-ip=40.107.92.82 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="gsrdP8d6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q2Ab1RIZJa52ghXwLLP1V8GYk0velAF084tyM/viWcsk5fi+ClYjXo/DMH4Vs9E0ojE7DRaqBCMCuZp0mNLvPkdJZRm7M6EtU2Dk+b8dO8dzMBgur5HK0n1RNmT3V84fqj+eAfbkR7PbCk5HvsadErwEu5XliYhzYzzYRvtCSudWijearS4RSyjibK4uPT2+dpQdapnUddPZCAxMj6odHfWLM5Q1GtE5vwDzqU5ATBYdmFD2WXhcJbbqXPs2t8mAdHKgxj5Z1xodYtQqqWRUCP3uMFpvU5ceCuKhdb7qD71LeLfGxiBPGiBlYEFrkDLUN91FbfZBmNMmGctHgRqJQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bDevXCxqCoryhSRa6kCWQXUHvxm0Wb0ENQVIq88/Ctg=; b=lPV/VNctqlzFqvS1ppbaZYbbVt5UAsGyfw6uSqyL2xsJi+hOr1xJ1KPhRLM+pwvZaefDuIS5vvOGXfK1yj4eKINNRa9PJ4FiwzWZGacSofFPPsURtV4rUI1DB4fPVFPXlUcuvsOR5cElfZHDp8jt60RCQSq292uWnNAHESG5aLEPnlpXjWsgdgu4uOEkUD8g1R+lBlVwYk0OKuzKycB0UYNqkUa06HIyJT0pN/1sjVMQzFs148+WpqaVxo9WB2ddhgeCi3frGrpLkEIxQvD12f5YC5LfnJWJfSAts5GQNvNZeCF3ycis11bkUs5EGU+CpygeQUaCh2fVcTdRO7zS4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bDevXCxqCoryhSRa6kCWQXUHvxm0Wb0ENQVIq88/Ctg=; b=gsrdP8d62UjsOS4Bdl0ZjNSDIYWcsSXPGG4EusW7H35Ng+fMLGQ4CODC7f53szJpNBgbEacfieLhbbKFic066PuhyzQxiKpicg+RD0pgvA0LYKueQRaGEynYtFNt+sWnaTxL8pqA3I7SNvbmQLJI637pS3guBYjEmvVAXYPGC0uTn/lg6mq4Fhq2z84czGFfEzdAiJWrxSin23+xRlAtLHrg05axPo5li2PgBF7MWfMnwBhO2+qFZrYiqXIkgQlcJX2f03R6PXz18rWcS8ONaxIbhiLfkhC2xKn4aMny64cJhUgfMmVwNLFNp3WN7fcch2Oaj6ix8pAZSXV3m3NKhw== Received: from BN0PR02CA0038.namprd02.prod.outlook.com (2603:10b6:408:e5::13) by MW6PR12MB8999.namprd12.prod.outlook.com (2603:10b6:303:247::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.33; Mon, 17 Mar 2025 17:40:44 +0000 Received: from BN2PEPF000044A0.namprd02.prod.outlook.com (2603:10b6:408:e5:cafe::78) by BN0PR02CA0038.outlook.office365.com (2603:10b6:408:e5::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.33 via Frontend Transport; Mon, 17 Mar 2025 17:40:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BN2PEPF000044A0.mail.protection.outlook.com (10.167.243.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 17 Mar 2025 17:40:42 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 17 Mar 2025 10:40:25 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 17 Mar 2025 10:40:19 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , CC: Ido Schimmel , Petr Machata , "Amit Cohen" , Subject: [PATCH net-next 6/6] selftests: vxlan_bridge: Test flood with unresolved FDB entry Date: Mon, 17 Mar 2025 18:37:31 +0100 Message-ID: <7bc96e317531f3bf06319fb2ea447bd8666f29fa.1742224300.git.petrm@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044A0:EE_|MW6PR12MB8999:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b863ef2-1983-4e88-50b4-08dd657ad759 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024; X-Microsoft-Antispam-Message-Info: TKucp1fLQKMKyod0mSot08ZkLghTkLBKWpote208LoHseeQoaUV0RiNeX9lPLJUJcvP+UPJDpbnKpZPYnuKyfwdUOlWc9oSdOjbcawEhIxqx++exXhztFKqpsE1PYAXBYXOmWD9wAY9701odDcDWK8amnKI6lhYU/NYk+I4Y4g9uaskP2BamFvsgQ5PpxhhYgOA1hTSqSkgEeJMEactW9KQ2s8xjW9sCuYuvLu0KasLkUGVrj2RMy00BM9iLSt1mAMx15vFvTR4f9HgMLm88prU3uhcHcBYBU5SQw/109ekMYKdz2x3GbmqMIDv/topwYNS1zpul49MMMfBrNp1kKCFD0Pd/fJjZZP2KF92hHCHXy1fT6pbXNE0EQDBSZJnL/B3KVEk+KprO/oM0odvcbOP97264FYEjyRIKriceVOs+gqiHfqDQqlW1JTctvyrs5cbniheNQHQ69vV0Rx5ucKX0+CZoTayAsFDMt5+xhkpYCBNbIBtrhNKiBqT9uwuX2gnmd83YeOa1k1ICVWJ+IOZMpIb7GUBG6tMc1txTsYQS4y0B2RsmNof0Hpo4JrDcH9tyweqyWJavWLtFoCuikrtCnWsZOUXqGxVRNlpr0oZ5i+xfssupDBHVFLLxjv8KXCyveYsdZKPB+VNyRcMCWwAhnOQ94W48biN2C2tOr7kiPbUuYtBqLRZ3OBzfgUfevTxvZMPv6mxQL6/Q5YLpZRjdMgkL913za0k9aBQQAQD9J6oBzHx0Cp0exa7UqjuVmNkZMzzojcjzDFXuQT3/edD4u3DXMr/ap3OTra1Q8nVeDc52Edwsn9F+ZKeLubij/jvTA9OO3BzcjLhvdwNskOoNVuhR7r/LiLztGfiRQ5vkkgynwO9sqlry5I6LqfdIwY6PlNXA68HWQjwVPNH5u7gERPGGEZprv0qrPPmKOgXQYnV9BuybFEOMStIXy/ctHsebZZC2QGsroDERoSsMwjRMlsRucV2FEzJq/CvZHWCf0OfT3MAGUhPF5kdcon60D/5/Sdr2RLg4kQaGTSSCKEvvz6rd9yF8LDXluDehS/tOeBBpCuoNDayplU6mB+9nIkYFd4fIbhWw74NK+ZSJKKLGMwNI/QD4ntwgQGkOIweSTE2OfVHw2hZz7WCU/YFi8AomcHQq8zFs6etfxS2yHNEAft9N/220EedzdkP6jXyH+2+Jq/1aq2h+xkwYWqcDAAS8T3509WzO4ntlFVafIEzpLqdXBmu4GBhHdwVvd7NLgY66HTOlQ6GVniHvNS7ITcriQyfzMQlN9YAaou9ZcAlzfyly48t0rId4kq5XN+BfnOGGWL5VGPa37i09CNfowIJNTvjicTKx0YxXVXMRsHMV6qP6M28Zxfq9OWmnpnn+RYMT1K8T9mBpgjt2O/Le7VW/lbGVSOpiXDa1LI8pN2CWZ4ABkwNICKbb8IV5EhKDY0bYla3GxGlGCq2ev0GZ0TDtDGgHBTGkhp70scUOdPb1+OqwnI5f2OXVbz9d56M= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2025 17:40:42.7817 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1b863ef2-1983-4e88-50b4-08dd657ad759 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044A0.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8999 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Extend flood test to configure FDB entry with unresolved destination IP, check that packets are not sent twice. Without the previous patch which handles such scenario in mlxsw, the tests fail: $ TESTS='test_flood' ./vxlan_bridge_1d.sh Running tests with UDP port 4789 TEST: VXLAN: flood [ OK ] TEST: VXLAN: flood, unresolved FDB entry [FAIL] vx2 ns2: Expected to capture 10 packets, got 20. $ TESTS='test_flood' ./vxlan_bridge_1q.sh INFO: Running tests with UDP port 4789 TEST: VXLAN: flood vlan 10 [ OK ] TEST: VXLAN: flood vlan 20 [ OK ] TEST: VXLAN: flood vlan 10, unresolved FDB entry [FAIL] vx10 ns2: Expected to capture 10 packets, got 20. TEST: VXLAN: flood vlan 20, unresolved FDB entry [FAIL] vx20 ns2: Expected to capture 10 packets, got 20. With the previous patch, the tests pass. Signed-off-by: Amit Cohen Reviewed-by: Petr Machata Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata --- .../selftests/net/forwarding/vxlan_bridge_1d.sh | 8 ++++++++ .../selftests/net/forwarding/vxlan_bridge_1q.sh | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh b/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh index 180c5eca556f..b43816dd998c 100755 --- a/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh +++ b/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh @@ -428,6 +428,14 @@ __test_flood() test_flood() { __test_flood de:ad:be:ef:13:37 192.0.2.100 "flood" + + # Add an entry with arbitrary destination IP. Verify that packets are + # not duplicated (this can happen if hardware floods the packets, and + # then traps them due to misconfiguration, so software data path repeats + # flooding and resends packets). + bridge fdb append dev vx1 00:00:00:00:00:00 dst 198.51.100.1 self + __test_flood de:ad:be:ef:13:37 192.0.2.100 "flood, unresolved FDB entry" + bridge fdb del dev vx1 00:00:00:00:00:00 dst 198.51.100.1 self } vxlan_fdb_add_del() diff --git a/tools/testing/selftests/net/forwarding/vxlan_bridge_1q.sh b/tools/testing/selftests/net/forwarding/vxlan_bridge_1q.sh index fb9a34cb50c6..afc65647f673 100755 --- a/tools/testing/selftests/net/forwarding/vxlan_bridge_1q.sh +++ b/tools/testing/selftests/net/forwarding/vxlan_bridge_1q.sh @@ -539,6 +539,21 @@ test_flood() 10 10 0 10 0 __test_flood ca:fe:be:ef:13:37 198.51.100.100 20 "flood vlan 20" \ 10 0 10 0 10 + + # Add entries with arbitrary destination IP. Verify that packets are + # not duplicated (this can happen if hardware floods the packets, and + # then traps them due to misconfiguration, so software data path repeats + # flooding and resends packets). + bridge fdb append dev vx10 00:00:00:00:00:00 dst 203.0.113.1 self + bridge fdb append dev vx20 00:00:00:00:00:00 dst 203.0.113.2 self + + __test_flood de:ad:be:ef:13:37 192.0.2.100 10 \ + "flood vlan 10, unresolved FDB entry" 10 10 0 10 0 + __test_flood ca:fe:be:ef:13:37 198.51.100.100 20 \ + "flood vlan 20, unresolved FDB entry" 10 0 10 0 10 + + bridge fdb del dev vx20 00:00:00:00:00:00 dst 203.0.113.2 self + bridge fdb del dev vx10 00:00:00:00:00:00 dst 203.0.113.1 self } vxlan_fdb_add_del()