From nobody Sun Feb 8 05:37:08 2026 Received: from mx0b-000eb902.pphosted.com (mx0b-000eb902.pphosted.com [205.220.177.212]) (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 AAEC01E1E1D; Thu, 3 Apr 2025 23:45:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.212 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743723949; cv=fail; b=C9c68B85DhQ3GCFWbCTl34RMmZ1jmk2sDtGAMjkLx3YUP4UIr/DPpgJB9WJlNRHmCCUIzBjDqH12UjV93PITR+HvOTPwd4RWTN3bHgTT4RVaNObmbzSrhUWNk/WbYTlWQ7F6IVzZJJYO4pdW8N1i3ZfZ+Y9n3wjpAtPIeOtHuhE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743723949; c=relaxed/simple; bh=sht7hCuVP96+TXrm+FgfKiYMOECjdthY2RBiEffnajo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=m6pBRtqYQRchBAoy4BsOI/x2hnUtBzgAkS1asUWBhHBCYBdeWnLvLVWteHiO+Jq1GHj77Pwr4pFuxr9gKCobV2dChurS1xACb9NsKofB8WuYLCVwtItvHNZFEYqQ7aNJSqIKseEwHhCUqpwAYZs2n9fWX7i9zCjwXeg55ItSfsQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com; spf=pass smtp.mailfrom=garmin.com; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=kcR9YlMT; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=qFyhadxE; arc=fail smtp.client-ip=205.220.177.212 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garmin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="kcR9YlMT"; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="qFyhadxE" Received: from pps.filterd (m0220297.ppops.net [127.0.0.1]) by mx0a-000eb902.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 533MmHjs015844; Thu, 3 Apr 2025 18:45:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps1; bh=4ayWq 1Pc4/lYNQ6f4Hg4uwlz6l+9elHdAv1G4skP8Mc=; b=kcR9YlMTEp2xVmM1nCVN9 e7MXxBYT8bSOY/KlEPrxtvcRWknQjAXU7hlS+Yx058i3R2qQSzAhBWJ5/Xg0w0+/ jfyFwozY+Pr0NXmrOwKZczKsSekZflhyGX/nOBGUebdY9dt0RJDn4/UksqTXdNIj ZwPWh6it4S0niMAETVkKYIcUUb9kf+5+aRAXJLKwl7cY0wRMSNJaNDa+XGP7cEFc Uht2uqh/GC7nvJRFevddby8S8NVlr1+ojV8l4YFk+A1NQiFQiIDHSEArBHgU40I8 6MqQDlcqZ5jnhw6c96A8JbsRSscAMgqhS9n4Ban8mSn3tjJQ9U3bGL9S9N5bB9Xs g== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazlp17010002.outbound.protection.outlook.com [40.93.1.2]) by mx0a-000eb902.pphosted.com (PPS) with ESMTPS id 45sx7mrnka-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Apr 2025 18:45:21 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=goyjOPlSTJdrHtG8uWCCxhCQ1iQD+RJeI82P1PO9R7SRQnnbqrUu34wgXbl2Dx2NoFu2jEtY0/h5SIPOmXaN8Fh458OeH1r6SlJBDJRZs/0XlIrphoH3+7labud1U4VN5rNGAephu+DvuDLP7XTVfJmU8dU8hNQNtyIg6Li6jz6eKWCfYvM7vuiU5AId6UbICJCLfB5Mt5qFegfRcUv9PJI8S1ld7X2BR7a1nkkPvrQAWged6Yqp1ahHmOtwsfJaacOqjuizcXnQN2XkN8dJBi32CvU5i36ws9ZEHrAH0yVaV8XrV0TCiCLQ8J8TzOFElT+xQyx+2Gs3VcKIWyN7wg== 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=4ayWq1Pc4/lYNQ6f4Hg4uwlz6l+9elHdAv1G4skP8Mc=; b=pWPIC0bMFgG4/d97BECpI8wuQalUqdVCqkAVTZPUR9+G3J68t6QDtLPVsbWQannCAwg3VT6jNLBjqt5bPcyqnDGxoIjNvm1iDwezGYW2nFx1qIsDceVc+OvUfrMCdbpddRvJFHBHgcjn03qWJ66z/2v+KgK1zkw54u//xKLRyXq8pVRfOpQ1/B4bLBd62EU7sZB0aIl+nrECXqqG8l+8xoYznSWXe2Myj16MGpQ76UNtHe5PziDXEyutmoTDYZxYGFY8YFjiwNfejYZtCXEWaEh97mTrvNtD6sT88L7X5/ZKymwtgSyGWtQ9335H2psKrIwy+niy1rCm3LPufDmuAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 204.77.163.244) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=garmin.com; dmarc=pass (p=reject sp=quarantine pct=100) action=none header.from=garmin.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4ayWq1Pc4/lYNQ6f4Hg4uwlz6l+9elHdAv1G4skP8Mc=; b=qFyhadxEZnMsIiFDr4P2+LttWsG0+xAIOso0ZBn8i2yitwsqSijkS8nZrQ66ATYs0RdGHQTMtHiglOCemYW4CfQEBq99EXZzFRJCQSsP4vgWCyQTy+gOm4jWemxWu/JilPOd22faTfmwD9Y3egs5I496wNSeZ2prh1h1Msa/rzRTjqCk0TFqHkBQsMXcnt3MBc92gAfvkZ/aXg5OYrMbJv66gnmFdHgXziI0t8boKhcO0c3zp7sgcq/xLeAsvri6Uo+jrwj6mTR8dCunktHpCiPQLS8Nng8b61xNEmIWZmfnIA0mMbdQel+3ofkkt5Ix/eazJzawdWSEDRbHix8hlg== Received: from DS7PR03CA0192.namprd03.prod.outlook.com (2603:10b6:5:3b6::17) by SJ2PR04MB8457.namprd04.prod.outlook.com (2603:10b6:a03:4f9::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.50; Thu, 3 Apr 2025 23:45:16 +0000 Received: from DS3PEPF000099E0.namprd04.prod.outlook.com (2603:10b6:5:3b6:cafe::d7) by DS7PR03CA0192.outlook.office365.com (2603:10b6:5:3b6::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Thu, 3 Apr 2025 23:45:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 204.77.163.244) smtp.mailfrom=garmin.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=garmin.com; Received-SPF: Pass (protection.outlook.com: domain of garmin.com designates 204.77.163.244 as permitted sender) receiver=protection.outlook.com; client-ip=204.77.163.244; helo=edgetransport.garmin.com; pr=C Received: from edgetransport.garmin.com (204.77.163.244) by DS3PEPF000099E0.mail.protection.outlook.com (10.167.17.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 23:45:16 +0000 Received: from kc3wpa-exmb6.ad.garmin.com (10.65.32.86) by cv1wpa-edge3 (10.60.4.253) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 3 Apr 2025 18:45:13 -0500 Received: from cv1wpa-exmb2.ad.garmin.com (10.5.144.72) by kc3wpa-exmb6.ad.garmin.com (10.65.32.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1258.34; Thu, 3 Apr 2025 18:45:15 -0500 Received: from cv1wpa-exmb3.ad.garmin.com (10.5.144.73) by CV1WPA-EXMB2.ad.garmin.com (10.5.144.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 3 Apr 2025 18:45:15 -0500 Received: from CAR-4RCMR33.ad.garmin.com (10.5.209.17) by smtp.garmin.com (10.5.144.73) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Thu, 3 Apr 2025 18:45:14 -0500 From: Joseph Huang To: CC: Joseph Huang , Joseph Huang , Andrew Lunn , "David S. Miller" , Eric Dumazet , "Jakub Kicinski" , Paolo Abeni , Roopa Prabhu , Nikolay Aleksandrov , Simon Horman , , Subject: [Patch v2 net-next 1/3] net: bridge: mcast: Add offload failed mdb flag Date: Thu, 3 Apr 2025 19:44:03 -0400 Message-ID: <20250403234412.1531714-2-Joseph.Huang@garmin.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250403234412.1531714-1-Joseph.Huang@garmin.com> References: <20250403234412.1531714-1-Joseph.Huang@garmin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF000099E0:EE_|SJ2PR04MB8457:EE_ X-MS-Office365-Filtering-Correlation-Id: d0af3f62-1118-49e1-1d04-08dd730995e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yWQi2Ku+aNUzUnJbUMEo4OgycjntrejNgNeANmwVTFinTZDbA4EwGlrClNfX?= =?us-ascii?Q?4ClYL6CbU+JNCgCNLfq7AnFYpVi3Wm2MTitae1Xudm31uWdPgePRPy7hVZok?= =?us-ascii?Q?iSZMfBAQSxlicnaHq67ARbdnXUYfLbDGgvsP/SC7FhvBwX0ZVrT3PRuTHb0b?= =?us-ascii?Q?VjpRtdaXOvrgKGwedpVNuJq+9BwVU+SBDjhJsaqVus2zmD+M/sTwID0HzpSx?= =?us-ascii?Q?vWc59k6rm2R1ZWGhoAaYj1mxYwc6BFR3kwWrVkt6x56WPfusfR7QoSLSsE52?= =?us-ascii?Q?f+wO17eCoDid3oPmuD7GODZRp+ybZGN5Iyqyv9k/aY66JHwgc/0bgbSE5jL0?= =?us-ascii?Q?FOykvelzYKXhm6bJKjsL3/pJ6jpiRmVdRvrx/qgnZN1ghfPdepu9JWvD8G+s?= =?us-ascii?Q?5QkLgfptaurQdZWItWz0uQoMsdBipPaAgjqv0oOHxOU/VMJe2Xx1hK3Y/oPr?= =?us-ascii?Q?if36xK1Dxiw9yOW5eMM3Dfy+2TwyocHgb9EBe1XL+OgiVzzF3omYjhupX9Ck?= =?us-ascii?Q?Cchq0BVzNJp1l9ZDefr/6ThGxvldRX9dkwXyGUt0fNFIc0tmM58tJy7KJLRz?= =?us-ascii?Q?yr767GGlzO14lMwCLjulCH9vod1TYHE6xXs/UbbNQmkMHWE+GTf1Ver8HqeB?= =?us-ascii?Q?IegO3cx7bjPyUJgVQL3O2xGuywrOP/qyVDl8778tfUsoWauKPHAIpIMeHc1K?= =?us-ascii?Q?4zHuEX8R+h4QQh3sbedWwd7d13j7OnyoDzLfbBBB7WEmXAohMTTV4dK8TrSw?= =?us-ascii?Q?ZReukmQWOlZfRqsUBKCDP0OHfBhS7v/66OQpvbjgQpaZc7AL5AlpaIn7AKbM?= =?us-ascii?Q?UAvcrye0rJBsuE3HNWE7/5T3hpoUGjFD/85ohoXNVdL8FWl5HmheJa1+ZzA4?= =?us-ascii?Q?KkVIbrFVVUbgEKCWWLkcfkiTwmQsb0kVu6ndZaXEwtzGsPIb9EoYY4XDBnRr?= =?us-ascii?Q?dyKrKlPN412+XwsA19F95+/U4cKurv9nd6nOS4e5jbKgxEZ4692oUmNchUE3?= =?us-ascii?Q?FLy0JTSuoxUvb4QFp8G+i+OwxAM1qlebaL7+MwDnIKai61JZp1UQpoZoEmmU?= =?us-ascii?Q?zddNdODPIXoix4MANNAcKdzhi+xOC3bFTu9TPSA8ISWE/zffdI+kOi5ajX6s?= =?us-ascii?Q?klOflHPF7XU+w9kXk3sB+4TEmtvKvCSeyIBygg3bEM9Vnp90gBrSMiv/YHGI?= =?us-ascii?Q?EyJzSOKt5ptG+rV9CKD31V19MrVbMzyqnN/1VyJSLHvi7Jjw76WRVN0UJzfS?= =?us-ascii?Q?JXyXz2ahgbrAKvC9aEUZj1CzJVCBlk1g0i/bqRHSGo7l/GI4nupz9z+TW+eF?= =?us-ascii?Q?/NzvwzPOaN9fkn3lEiMDlnTpWwUpRQyHSC62ujcaZhthTIDf7lC1R3J+i7qK?= =?us-ascii?Q?9TI8BSzLKapV+hP7GHWQ04F6qy9nhMWs/owu8YJpJdc5vY2ICqsmr7DQ+GmO?= =?us-ascii?Q?uPL9SAj0a1hkCJu4RejeYZV9d5OquKQfAGqqtOqO8mxyt1DwUMHzDICmQJwN?= =?us-ascii?Q?FJ7opZIeza1gk6I=3D?= X-Forefront-Antispam-Report: CIP:204.77.163.244;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:edgetransport.garmin.com;PTR:extedge.garmin.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024)(7416014);DIR:OUT;SFP:1102; X-OriginatorOrg: garmin.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 23:45:16.2195 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d0af3f62-1118-49e1-1d04-08dd730995e4 X-MS-Exchange-CrossTenant-Id: 38d0d425-ba52-4c0a-a03e-2a65c8e82e2d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=38d0d425-ba52-4c0a-a03e-2a65c8e82e2d;Ip=[204.77.163.244];Helo=[edgetransport.garmin.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF000099E0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR04MB8457 X-Authority-Analysis: v=2.4 cv=GagXnRXL c=1 sm=1 tr=0 ts=67ef1d91 cx=c_pps a=Ku5Q1SXtyGRHaGBacwLxwg==:117 a=YA0UzX50FYCGjWi3QxTvkg==:17 a=h8e1o3o8w34MuCiiGQrqVE4VwXA=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=XR8D0OoHHMoA:10 a=qm69fr9Wx_0A:10 a=NbHB2C0EAAAA:8 a=fs3JY7tD4Cos_Bw3ZwUA:9 cc=ntf X-Proofpoint-GUID: GHdQifvYXY-41QMThiQuHLaJx4aa_JEd X-Proofpoint-ORIG-GUID: GHdQifvYXY-41QMThiQuHLaJx4aa_JEd X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-03_10,2025-04-03_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 phishscore=0 mlxlogscore=940 suspectscore=0 bulkscore=0 malwarescore=0 clxscore=1015 spamscore=0 priorityscore=1501 adultscore=0 impostorscore=0 lowpriorityscore=0 classifier=spam authscore=0 authtc=n/a authcc=notification route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502280000 definitions=main-2504030126 Content-Type: text/plain; charset="utf-8" Add MDB_FLAGS_OFFLOAD_FAILED and MDB_PG_FLAGS_OFFLOAD_FAILED to indicate that an attempt to offload the MDB entry to switchdev has failed. Signed-off-by: Joseph Huang Acked-by: Nikolay Aleksandrov --- include/uapi/linux/if_bridge.h | 9 +++++---- net/bridge/br_mdb.c | 2 ++ net/bridge/br_private.h | 20 +++++++++++++++----- net/bridge/br_switchdev.c | 7 ++----- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index a5b743a2f775..f2a6de424f3f 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h @@ -699,10 +699,11 @@ struct br_mdb_entry { #define MDB_TEMPORARY 0 #define MDB_PERMANENT 1 __u8 state; -#define MDB_FLAGS_OFFLOAD (1 << 0) -#define MDB_FLAGS_FAST_LEAVE (1 << 1) -#define MDB_FLAGS_STAR_EXCL (1 << 2) -#define MDB_FLAGS_BLOCKED (1 << 3) +#define MDB_FLAGS_OFFLOAD (1 << 0) +#define MDB_FLAGS_FAST_LEAVE (1 << 1) +#define MDB_FLAGS_STAR_EXCL (1 << 2) +#define MDB_FLAGS_BLOCKED (1 << 3) +#define MDB_FLAGS_OFFLOAD_FAILED (1 << 4) __u8 flags; __u16 vid; struct { diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index 1a52a0bca086..0639691cd19b 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -144,6 +144,8 @@ static void __mdb_entry_fill_flags(struct br_mdb_entry = *e, unsigned char flags) e->flags |=3D MDB_FLAGS_STAR_EXCL; if (flags & MDB_PG_FLAGS_BLOCKED) e->flags |=3D MDB_FLAGS_BLOCKED; + if (flags & MDB_PG_FLAGS_OFFLOAD_FAILED) + e->flags |=3D MDB_FLAGS_OFFLOAD_FAILED; } =20 static void __mdb_entry_to_br_ip(struct br_mdb_entry *entry, struct br_ip = *ip, diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 1054b8a88edc..5f9d6075017e 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -306,11 +306,12 @@ struct net_bridge_fdb_flush_desc { u16 vlan_id; }; =20 -#define MDB_PG_FLAGS_PERMANENT BIT(0) -#define MDB_PG_FLAGS_OFFLOAD BIT(1) -#define MDB_PG_FLAGS_FAST_LEAVE BIT(2) -#define MDB_PG_FLAGS_STAR_EXCL BIT(3) -#define MDB_PG_FLAGS_BLOCKED BIT(4) +#define MDB_PG_FLAGS_PERMANENT BIT(0) +#define MDB_PG_FLAGS_OFFLOAD BIT(1) +#define MDB_PG_FLAGS_FAST_LEAVE BIT(2) +#define MDB_PG_FLAGS_STAR_EXCL BIT(3) +#define MDB_PG_FLAGS_BLOCKED BIT(4) +#define MDB_PG_FLAGS_OFFLOAD_FAILED BIT(5) =20 #define PG_SRC_ENT_LIMIT 32 =20 @@ -1343,6 +1344,15 @@ br_multicast_ctx_matches_vlan_snooping(const struct = net_bridge_mcast *brmctx) =20 return !!(vlan_snooping_enabled =3D=3D br_multicast_ctx_is_vlan(brmctx)); } + +static inline void +br_multicast_set_pg_offload_flags(struct net_bridge_port_group *p, + bool offloaded) +{ + p->flags &=3D ~(MDB_PG_FLAGS_OFFLOAD | MDB_PG_FLAGS_OFFLOAD_FAILED); + p->flags |=3D (offloaded ? MDB_PG_FLAGS_OFFLOAD : + MDB_PG_FLAGS_OFFLOAD_FAILED); +} #else static inline int br_multicast_rcv(struct net_bridge_mcast **brmctx, struct net_bridge_mcast_port **pmctx, diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c index 7b41ee8740cb..40f0b16e4df8 100644 --- a/net/bridge/br_switchdev.c +++ b/net/bridge/br_switchdev.c @@ -505,9 +505,6 @@ static void br_switchdev_mdb_complete(struct net_device= *dev, int err, void *pri struct net_bridge_port *port =3D data->port; struct net_bridge *br =3D port->br; =20 - if (err) - goto err; - spin_lock_bh(&br->multicast_lock); mp =3D br_mdb_ip_get(br, &data->ip); if (!mp) @@ -516,11 +513,11 @@ static void br_switchdev_mdb_complete(struct net_devi= ce *dev, int err, void *pri pp =3D &p->next) { if (p->key.port !=3D port) continue; - p->flags |=3D MDB_PG_FLAGS_OFFLOAD; + + br_multicast_set_pg_offload_flags(p, !err); } out: spin_unlock_bh(&br->multicast_lock); -err: kfree(priv); } =20 --=20 2.49.0 From nobody Sun Feb 8 05:37:08 2026 Received: from mx0a-000eb902.pphosted.com (mx0a-000eb902.pphosted.com [205.220.165.212]) (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 F29D61E3DD0; Thu, 3 Apr 2025 23:45:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.212 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743723950; cv=fail; b=MC6P7la3mdX5K5A2bI1ZquBSaQTYrrl7u7wJLgHg16kuWdSKx7QFkFAojmhwSxW1eJO6ESiJhDwsKGXgjCywWpvwuYmQ6vMw3P1pFe60ndHWi90/uB+7SxxZRAQdrkAkv2+3hCs1xAbBtJhEScQldEYbYn/4JWtbUHqx6G5cdo0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743723950; c=relaxed/simple; bh=5LDNoEmw05QEq8LNsMLKbcCFBxQ5JPYWf8vbelaa9Ns=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QTULswjuAdqwWq2V7tcY9RbKaov4WY9xFZhwZV9AccIrkKbdP7axsAhaMLbwVidelzJJVyACzpd4xDUtC4Ibl1Cm+37UGSdA9P+9NrEaUD08N6gbIZHBPqdW5V61SKKfW7jTFZ/mC72MoScOs8NfkAuNOyKexBYzKjKzgJ9bMSg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com; spf=pass smtp.mailfrom=garmin.com; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=dKac4oR6; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=NZfGKWGh; arc=fail smtp.client-ip=205.220.165.212 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garmin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="dKac4oR6"; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="NZfGKWGh" Received: from pps.filterd (m0220296.ppops.net [127.0.0.1]) by mx0a-000eb902.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 533I26Kv006307; Thu, 3 Apr 2025 18:45:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps1; bh=3Efxb oWe9tj7piTfwBfuaZBhriOy8K1wUgVoHO7jTYY=; b=dKac4oR68Ft3ozEyoMfxs 79DXpw6B4OfgggRx6SaaoXISkOtXLQrRaTME3mPdKgQXd3+QjmHOdq3nL4vnHwF3 tyj/ShlF3qi4GJtXDuAGwYUr8Lh0csfueeSJvwHcHluTBTFO5luw7g0oGB8V5TS1 J/7SnQZushR1VrI2iNS7grNEgv80zobNiJMYsDZwUaadwj/B/MCjHYkKWDMBYA85 4KkmdlbqT/x23lSfKl7wCSMpTuMvd2eLPAWTUow34zDwNKCSdJ1WvZ/LvQIqqTTT YxJXN3cTxWTBuDPcszBThaekjoTBYnYm3JGeDvmKd4aX0r/b4M/+FkWvxMpcF+uM w== Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2174.outbound.protection.outlook.com [104.47.55.174]) by mx0a-000eb902.pphosted.com (PPS) with ESMTPS id 45ssgwhbum-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Apr 2025 18:45:28 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PY+ZcNFBFUU4AzgGkKpMwCp4ItSwoWiDIFNt7Z1UizqVa/K4Jmyg16cpR/prd8/FGwuZXqKRXAbjTW58ManTer8ybpmrmBXuhhxTqStJvKbIKdIHTvog1Wa8iRBnPe/24cMmg+c1fommg2LsWoyz5TlWmPxDawFj46mJNBiKtssiRe8DTV3ZxcZ4Tk9Za4SBP0O2eFnR4qkHQOGlLRVf9WXNzCHmrVoHro0iRwcD2UyrUE/mMMg8J3EKb7+vX3FdiUphtes62ZP2mqMZotizdPjLljy35IT2Cvr922KoR7/Oy+XMO2a/hV0iEdsCifjtXzkeW59xrKB+QdRuQSBPeA== 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=3EfxboWe9tj7piTfwBfuaZBhriOy8K1wUgVoHO7jTYY=; b=gxaJlWf/Jg4xhPLQAjIud6qXHDW4c2lHdNrbFmfS+otCZcfQsF1aMXFuFv4BDOlG9CFu3FqTWGNpiea6nTJ6hCjCVHUIMNOgrp5MIrrs3a929+yBFoHf4HG8Zzn7UW7qyV6mNMLhyy22TDTv64fxdXV0tE5Ak9FysNdymBTsAtcqWXGD7jT9c8+M6ytMIfhkLhWjdCoEePkgkKg0jvNDMZc5kJWsKgn/CLXCUalSRqhUaWnLu6y0NeAddwx5dlIzeyXr+eXH9FUTiEZ8kvQriqEX6ECYsUkKBrE2FSmi7ssq0kpC/fTPuTmBIpXbHLAULLwm4tAlphcEbcOPr2L5pg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 204.77.163.244) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=garmin.com; dmarc=pass (p=reject sp=quarantine pct=100) action=none header.from=garmin.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3EfxboWe9tj7piTfwBfuaZBhriOy8K1wUgVoHO7jTYY=; b=NZfGKWGhhouAahAUApIIX3+0+r/yzP4EMrAsueS1J77ZMfBKwPbmBe4CD7u4+/dV/U70fkMZPVHzKnPYfU7vBV7xKlp3LX+plCXqEOnI2iUCif0q+XHkEOEYxzgWJFYmUJ7YdoYaDk7t6Pmmkaw3ee+Aydq6FUt1BbD3oQjmjRzT27KQ+2Zr6mT+m/lizB65DVXWBnRjeD6gIe6XxSpnCF4rszFPB5W599oit6eXrhN9XVUe/TJH3x3exMb6GcpTGA2uOYvV7+0oj0Xdo7AZ+jlJZnXjMYrl2HjStkjNq+gywP6WsI1gfZSb+6oz4ThGn/9vFv3dHMtR8AYwQ4MsVg== Received: from DS7PR03CA0205.namprd03.prod.outlook.com (2603:10b6:5:3b6::30) by DM8PR04MB8199.namprd04.prod.outlook.com (2603:10b6:8:2::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr 2025 23:45:26 +0000 Received: from CY4PEPF0000FCC5.namprd03.prod.outlook.com (2603:10b6:5:3b6:cafe::88) by DS7PR03CA0205.outlook.office365.com (2603:10b6:5:3b6::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.26 via Frontend Transport; Thu, 3 Apr 2025 23:45:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 204.77.163.244) smtp.mailfrom=garmin.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=garmin.com; Received-SPF: Pass (protection.outlook.com: domain of garmin.com designates 204.77.163.244 as permitted sender) receiver=protection.outlook.com; client-ip=204.77.163.244; helo=edgetransport.garmin.com; pr=C Received: from edgetransport.garmin.com (204.77.163.244) by CY4PEPF0000FCC5.mail.protection.outlook.com (10.167.242.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 23:45:26 +0000 Received: from OLAWPA-EXMB2.ad.garmin.com (10.5.144.14) by cv1wpa-edge1 (10.60.4.255) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 3 Apr 2025 18:45:23 -0500 Received: from cv1wpa-exmb2.ad.garmin.com (10.5.144.72) by OLAWPA-EXMB2.ad.garmin.com (10.5.144.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 3 Apr 2025 18:45:25 -0500 Received: from cv1wpa-exmb3.ad.garmin.com (10.5.144.73) by CV1WPA-EXMB2.ad.garmin.com (10.5.144.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 3 Apr 2025 18:45:24 -0500 Received: from CAR-4RCMR33.ad.garmin.com (10.5.209.17) by smtp.garmin.com (10.5.144.73) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Thu, 3 Apr 2025 18:45:24 -0500 From: Joseph Huang To: CC: Joseph Huang , Joseph Huang , Andrew Lunn , "David S. Miller" , Eric Dumazet , "Jakub Kicinski" , Paolo Abeni , Roopa Prabhu , Nikolay Aleksandrov , Simon Horman , , Subject: [Patch v2 net-next 2/3] net: bridge: Add offload_fail_notification bopt Date: Thu, 3 Apr 2025 19:44:04 -0400 Message-ID: <20250403234412.1531714-3-Joseph.Huang@garmin.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250403234412.1531714-1-Joseph.Huang@garmin.com> References: <20250403234412.1531714-1-Joseph.Huang@garmin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC5:EE_|DM8PR04MB8199:EE_ X-MS-Office365-Filtering-Correlation-Id: 21876a77-1856-44c9-139c-08dd73099bc1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xePmH+uQ+bKtS4lYlJPOQ8eWYY6+DgzWwwRMRzBhbEZKwBtX5jzIQyatJb+R?= =?us-ascii?Q?mAuvMoU+vwBQZTJMybUx6r/axb7cBnKp5gLEQY0pC690uEZdD0cx+FI0Avo0?= =?us-ascii?Q?eEdBd/Rmts8T4k97yPIe8OgAUEtmuSPqQTLy3U+JnoF6IEostX83+bRDHCai?= =?us-ascii?Q?DcVMqKf5R8auDKhxIwZc7akRsuiAyGzBCQlqYC4z2p/aAEoAlswFHOA9a6nD?= =?us-ascii?Q?doRrwHezw164/xWx7MQgjzvFPc83FF1th/78DNYcbHndFQGMc1iq+WY4N4oL?= =?us-ascii?Q?1LVzgTuOg+JPEGuJPwCjC774RbMGEs8l06mO//dyAVWMlgMpY89hdpeY/s+e?= =?us-ascii?Q?tIk7QcihjHLdGraYhp2VP4gpk/qFCx2gGDKaW3rT8hcCsBDrAg0MVOgFQ8Up?= =?us-ascii?Q?rgtdmKafpWjwLNUv2ve+R6xFM9T+nzvUbBmvCqGPs02gUa0dzYkuAJz/0e9z?= =?us-ascii?Q?bUVIcLZPWTu+PfRQRUw43nbJwil2i6QKSxMyh+x4Wiygwf1NCTITVm705kU/?= =?us-ascii?Q?FRsFUvHwL0LOBwPckuoqg5FjMZZfwxWXveoiRDZNstIIf1T6Ex4Cok6BYlUT?= =?us-ascii?Q?45tBhnNCf3o6N6/9dp52ihEyOZerEldmIs2+DgEFO+d5qinLANSUUVp3/LGz?= =?us-ascii?Q?824x75UqeW8GHAT/SVjSXTfCQM/zMj37KaFDDR8ay+oYncVm0vfJYrZ8gTxb?= =?us-ascii?Q?gaZsLaU5vlJamZBSLzMDCPcWu2pjhNvOUS+O4pNVvOWVulTduwU8XoxdqBxc?= =?us-ascii?Q?VoMDmDN7FHDR8iwv0Pi+o9jbI3fyu7wOoTRXzl7Efy3Z6uG2skvIqplz+Kpx?= =?us-ascii?Q?6Ekxmk55/ny/ALKtTmeDoyc6JeICXmHy/BS3VBG3VaqORr3f1ke4TohXxvwG?= =?us-ascii?Q?OTgnefBTQpeb6Rc9FmOlSnhgOONYPnPuFi5cf765jToW8TQISV7Th46pvIPZ?= =?us-ascii?Q?l34X2M6SB/5oP8QVo555g2fbWzP2JyWJagbryYQve5J/mp4cpmMEqZyARC+o?= =?us-ascii?Q?fnj+vssLBbE0tdBDqYVOaaMr+KtzaVJ+iKnQfjfytMpdt1rtB92SFNBCpkJZ?= =?us-ascii?Q?VA/PtlJrH8pNRUReqksvhNgHubpnmKoWOE9JypYmDggeuFlu5RWmaWGQ0366?= =?us-ascii?Q?rBTozzpdQSSo7JhmBWJ1B4VRQQaourMMGNttxzeD3FnzbKVIKkuXGHNFsrns?= =?us-ascii?Q?Ov9aTjYcPQvaGuy0fCp8qZmzRCKcRzxiIr1MJHZQuFZEH0ijxVy067eyJ4o1?= =?us-ascii?Q?dHG0740YkrgtcKfD0COREshQN7Esajv1YzLTN2gtFUrLuYBALdFHrN7kicAS?= =?us-ascii?Q?sdHjz0hICgD5db7GGXGiRo/Kd0nNaTxJr3C78+XRG4NvbHc1w5bLmtqzA0IK?= =?us-ascii?Q?AFByeidAu5NWQ96qXo0gVFNz2X2fVXentrCk8orZHxTPnwWJrRwFgSkU0T1Q?= =?us-ascii?Q?N35zkgQw8qU6b4you+OIVWLLRrlylQtJ3zePtarBrObymkYXIfjTUgkxg3iR?= =?us-ascii?Q?Nlk5aeJzpSMVUJs=3D?= X-Forefront-Antispam-Report: CIP:204.77.163.244;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:edgetransport.garmin.com;PTR:extedge.garmin.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(376014)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: garmin.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 23:45:26.0094 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 21876a77-1856-44c9-139c-08dd73099bc1 X-MS-Exchange-CrossTenant-Id: 38d0d425-ba52-4c0a-a03e-2a65c8e82e2d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=38d0d425-ba52-4c0a-a03e-2a65c8e82e2d;Ip=[204.77.163.244];Helo=[edgetransport.garmin.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCC5.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR04MB8199 X-Authority-Analysis: v=2.4 cv=OcqYDgTY c=1 sm=1 tr=0 ts=67ef1d98 cx=c_pps a=AVVanhwSUc+LQPSikfBlbg==:117 a=YA0UzX50FYCGjWi3QxTvkg==:17 a=h8e1o3o8w34MuCiiGQrqVE4VwXA=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=XR8D0OoHHMoA:10 a=qm69fr9Wx_0A:10 a=NbHB2C0EAAAA:8 a=VezfpCA85l8IIUIIOpcA:9 cc=ntf X-Proofpoint-GUID: 20CpRuu3gamEM1sYqNuxI_11xRXmK5lU X-Proofpoint-ORIG-GUID: 20CpRuu3gamEM1sYqNuxI_11xRXmK5lU X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-03_10,2025-04-03_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=882 bulkscore=0 lowpriorityscore=0 impostorscore=0 adultscore=0 clxscore=1015 spamscore=0 phishscore=0 classifier=spam authscore=0 authtc=n/a authcc=notification route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502280000 definitions=main-2504030126 Content-Type: text/plain; charset="utf-8" Add BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION bool option. Signed-off-by: Joseph Huang Acked-by: Nikolay Aleksandrov --- include/uapi/linux/if_bridge.h | 1 + net/bridge/br.c | 5 +++++ net/bridge/br_private.h | 1 + 3 files changed, 7 insertions(+) diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index f2a6de424f3f..73876c0e2bba 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h @@ -831,6 +831,7 @@ enum br_boolopt_id { BR_BOOLOPT_NO_LL_LEARN, BR_BOOLOPT_MCAST_VLAN_SNOOPING, BR_BOOLOPT_MST_ENABLE, + BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION, BR_BOOLOPT_MAX }; =20 diff --git a/net/bridge/br.c b/net/bridge/br.c index 183fcb362f9e..25dda554ca5b 100644 --- a/net/bridge/br.c +++ b/net/bridge/br.c @@ -284,6 +284,9 @@ int br_boolopt_toggle(struct net_bridge *br, enum br_bo= olopt_id opt, bool on, case BR_BOOLOPT_MST_ENABLE: err =3D br_mst_set_enabled(br, on, extack); break; + case BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION: + br_opt_toggle(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION, on); + break; default: /* shouldn't be called with unsupported options */ WARN_ON(1); @@ -302,6 +305,8 @@ int br_boolopt_get(const struct net_bridge *br, enum br= _boolopt_id opt) return br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED); case BR_BOOLOPT_MST_ENABLE: return br_opt_get(br, BROPT_MST_ENABLED); + case BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION: + return br_opt_get(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION); default: /* shouldn't be called with unsupported options */ WARN_ON(1); diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 5f9d6075017e..02188b7ff8e6 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -484,6 +484,7 @@ enum net_bridge_opts { BROPT_VLAN_BRIDGE_BINDING, BROPT_MCAST_VLAN_SNOOPING_ENABLED, BROPT_MST_ENABLED, + BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION, }; =20 struct net_bridge { --=20 2.49.0 From nobody Sun Feb 8 05:37:08 2026 Received: from mx0a-000eb902.pphosted.com (mx0a-000eb902.pphosted.com [205.220.165.212]) (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 F2A311E3DF4; Thu, 3 Apr 2025 23:45:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.212 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743723950; cv=fail; b=pyIpiM7D6pp+/DPIWuti0uZvLdxk9/wurmB0SH8YYycrRjwuF2msVscRDyIj31gEzq3HvCyJUgj3xf0rD6xRsPZH8oCx+2BfB8lDhCiqo2bGVGsiH8YeP058MJJLWZP/sLC/hoH2zeiXTlG0BvMyFl/mW/Eibrz4vkL+ge38jFg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743723950; c=relaxed/simple; bh=1TJrK9ti31pyhSm7AV1r76/UNVwua3CK0655DlwK47E=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PSLUClXcGpzbeJjgn8Wjm+K0IFNtIzzyB63KBPgTk1mPQNiLad3RGXFFo+7r6orrVq8DACQ6XatW+h8Ext6+bV+9ddj7rl+zVTHvRZhy2S8t+nab+KcAw3XH8qDqc0D5CVo4PNWoWAxR2qVRNQVK9drY+sHEIwYfuA2TEy1hVok= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com; spf=pass smtp.mailfrom=garmin.com; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=X3hRnVgk; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=IqaezgIR; arc=fail smtp.client-ip=205.220.165.212 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garmin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="X3hRnVgk"; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="IqaezgIR" Received: from pps.filterd (m0220294.ppops.net [127.0.0.1]) by mx0a-000eb902.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 533Ndsaj018207; Thu, 3 Apr 2025 18:45:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps1; bh=jCjQH +qhPtAADqXCrcPT1UwXWjr/TbxrPuO6RSOgKDw=; b=X3hRnVgky5YHXW8bLsoux AsGdYEo0Gv+Lm+RWfrF4aNOgIyHI+k8+ALFd3yMssWJ+I/OiaMhthvQ4MLdi6YDF taapPCDey2Pf0w6NDAqaf3kN+Wd2b6D5FuoWk2cBx1jWr2U7lw3ccZtR8hdXSeSI B327N8xmBtr2YeEbtVAcK1jZ/oYNzOm4OfVGdxXn8m9yRGBvhaZRpEUWSlwtNbLi Ws2TBzugYP1nQns3ID4LgcSV2M7X1C4McaNFtWFdCfP8xOBEeY05doO4eIC8S69u +Q7iFY4e7vCzKloIhVtGIWdRkgNZogRrsNym1NvjRqwicq0AqE7LewKxTH7/xDue w== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazlp17010006.outbound.protection.outlook.com [40.93.1.6]) by mx0a-000eb902.pphosted.com (PPS) with ESMTPS id 45ss7j9cfe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Apr 2025 18:45:32 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vCEbaBLYET4Gbjsmd/geiSG1hyL5uFATrnfRxxU/QarEULrCHOMKjKJVQoXCQ3GdesDa3bIN53SYQ+pJz+pEP/HEDsJ6n6DPL/O1o5tHtw0zcgksc2ofnh8c6A9k7TPID7/e47l/rKebRy0ZKBMJSuVkWfG+hokW/QW4QueyuQlFP8/eAi8vR5Hw7XFfGoUtZupAqqj6hAxnlIJHn5yWSp0Hk03LVsvvIWXzioma6ylZIo06PufARpnwfVun4mYNzVTRsM6wHosfQ7degd/znCsCLAbS0ppZJK+QNnBXYQOGPxIy+qj+PJOT1u2dWgctxFZpOUThD5K9wFKu8vgJFg== 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=jCjQH+qhPtAADqXCrcPT1UwXWjr/TbxrPuO6RSOgKDw=; b=CC+UWJ8BmkVhW5JZd+rN4u3zbNV4J33A4eLWPCC2SpsWE7PrZQa/aFPLgeHm/ikGN5vZMXMqUaf/PfqZhdnarY4QSByPqQI54rFU1yKP5d5O3nGLSdM5vG+bEQKwYUImaks1JE/sNtZC6yMkt5X9DWvt1ZR78H3bJOEbaVF+kCl+wAFUNQCfAiqsGT87lDv1iT61BeBd2SRrg5Sx/CBZY0mpF2ShzVNXK9+cwxNN59LkoIbYTuBaknKFPOxsAPI7AtkiT2OEjT0tPayrvDsRI4U64l8U8RHHDkneXU9jkZzOa/SoQcXrOSsaX9siCgcStzEtYPHY6/H4wZfOM+/eJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 204.77.163.244) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=garmin.com; dmarc=pass (p=reject sp=quarantine pct=100) action=none header.from=garmin.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jCjQH+qhPtAADqXCrcPT1UwXWjr/TbxrPuO6RSOgKDw=; b=IqaezgIRqvnQjuNoZJ/VM8VpnMBJDGcEBwL+GKrLtVSBClpHKeUP3/Bi2SEztSyy6uETPVWXlUQIp/Q8KZK7u0p3ZhQJnGVdYXPZTKgSUzoaxvpDBi4J2g32l/EqYQmODOy2P79p5PzgBcNjQGo1O3EhjSzZVcQdLMopgCxxYRPPZGui2WS4AwnVZ0J7UgvE2aaoN6QIP/7Jj0CsLBmEc3fU3Dq5jdh90L0+BtZDdCS6I3ux1ShrWuoCd/nJlyDetsQrwpVXGLvgmjVB5Z9G5637KJwoiM3bEICsi0EuxSnRs3g/g/tjZtHrepq+7IjqHwg0YN5Ds82JAdpikcyL9g== Received: from DS7PR03CA0194.namprd03.prod.outlook.com (2603:10b6:5:3b6::19) by SJ0PR04MB7615.namprd04.prod.outlook.com (2603:10b6:a03:32b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.43; Thu, 3 Apr 2025 23:45:30 +0000 Received: from CY4PEPF0000FCC5.namprd03.prod.outlook.com (2603:10b6:5:3b6:cafe::5a) by DS7PR03CA0194.outlook.office365.com (2603:10b6:5:3b6::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Thu, 3 Apr 2025 23:45:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 204.77.163.244) smtp.mailfrom=garmin.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=garmin.com; Received-SPF: Pass (protection.outlook.com: domain of garmin.com designates 204.77.163.244 as permitted sender) receiver=protection.outlook.com; client-ip=204.77.163.244; helo=edgetransport.garmin.com; pr=C Received: from edgetransport.garmin.com (204.77.163.244) by CY4PEPF0000FCC5.mail.protection.outlook.com (10.167.242.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 23:45:30 +0000 Received: from kc3wpa-exmb3.ad.garmin.com (10.65.32.83) by cv1wpa-edge1 (10.60.4.255) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 3 Apr 2025 18:45:27 -0500 Received: from cv1wpa-exmb2.ad.garmin.com (10.5.144.72) by kc3wpa-exmb3.ad.garmin.com (10.65.32.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1258.34; Thu, 3 Apr 2025 18:45:29 -0500 Received: from cv1wpa-exmb3.ad.garmin.com (10.5.144.73) by CV1WPA-EXMB2.ad.garmin.com (10.5.144.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 3 Apr 2025 18:45:28 -0500 Received: from CAR-4RCMR33.ad.garmin.com (10.5.209.17) by smtp.garmin.com (10.5.144.73) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Thu, 3 Apr 2025 18:45:28 -0500 From: Joseph Huang To: CC: Joseph Huang , Joseph Huang , Andrew Lunn , "David S. Miller" , Eric Dumazet , "Jakub Kicinski" , Paolo Abeni , Roopa Prabhu , Nikolay Aleksandrov , Simon Horman , , Subject: [Patch v2 net-next 3/3] net: bridge: mcast: Notify on mdb offload failure Date: Thu, 3 Apr 2025 19:44:05 -0400 Message-ID: <20250403234412.1531714-4-Joseph.Huang@garmin.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250403234412.1531714-1-Joseph.Huang@garmin.com> References: <20250403234412.1531714-1-Joseph.Huang@garmin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC5:EE_|SJ0PR04MB7615:EE_ X-MS-Office365-Filtering-Correlation-Id: 1c9da522-1031-4ddd-e07d-08dd73099e57 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|7416014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YWvuJp/M51q674FiXWPKslAoVhbYD1K2jELbTrx77w905u0PfsITk9b5bSra?= =?us-ascii?Q?MBUDHupmiEyERHXfbo01SaHdlxbpveR7x58ghGpfhteWcE3jWn9xEdQ9/ac0?= =?us-ascii?Q?Dyu6gXm82r+DuVdKwf372M280LHYK5mQFYuanjqp0NdBZly0KQc7ZcfHwb8R?= =?us-ascii?Q?Xp7+SBQpVsFq34ld7VsGA+adeMMF8hCBnNXpfFfA6GnuzZcYU1bbyrDGH2sI?= =?us-ascii?Q?U7ZI8GGGPucxEhrCXJJQ2Nf9pvxVw6dwXwXeu1RKUqv4BMC7PMLDU9XHeBbC?= =?us-ascii?Q?YtAolEI64jEzb+GOE+NU1agxOsYmJFeGzVB/YkWXKk4sS/oLvyE6RHBmtLvG?= =?us-ascii?Q?zp5IUTXpyjE6X2FDoto8YkGtrgwGQOhzrQFYbUaxp02PDLdvghPqRa/nV4pp?= =?us-ascii?Q?nKujy8FUIoiiTDza5dit/fdJ2lv8OSishylqljFnjQ5UUZDB9qUliUBfZcVL?= =?us-ascii?Q?NTJwyR2OWuV0OpEhzTqbU6Aq2iBhLl9IHgPwdE3MJPwsOdzt0wtbVs3XH7an?= =?us-ascii?Q?lSLArSOM+hv/rT0GUcrOYh/zdTTTeIMUoN8eSV6r81fku/EWBzSzbq4D8Q7I?= =?us-ascii?Q?J+69tmbaB4Szo6/LB7QN/wKYR2LzTsFloqw7RpvQfvIrM6ONaMpVGq5jXL8W?= =?us-ascii?Q?Z+9on8zKJ+ZqJENy2pQ57qSnlhOZZ/4VHG4+p06jNWbg3leUklkjUkzm4XSk?= =?us-ascii?Q?JNt77DjMVPtb51aESMUR7QCifKUS+WRSCd6W7KYqCTn+PcRll4psOBGj3T/0?= =?us-ascii?Q?Msw01H71DoRC3m1wXp/+S3uNI7wj1GbRT0Y3nkSMIT6Oitr9NP4L2iHl3Gc8?= =?us-ascii?Q?aIVECM47+NCcLt6CObs82g1rTDf2EoZP9MmpN5YYe4T+DkImSvYtiU2EijpD?= =?us-ascii?Q?S84sqbBIALuK4nv4W7OJE6WAqsZCAEpOqd8YibOGU1tIBbyYAaU4cMr3DLVk?= =?us-ascii?Q?nIU5jpvpXo012BdqMmlQVgwyrwlEJ3jXtdDDS3WpRg6z5OZaQK1dVWEzA5dB?= =?us-ascii?Q?/Aoa72OoYV5BYpCSrUjokN8+IKU4tN07LsM9vGxND2eStD0YBmA/dyPhwS1o?= =?us-ascii?Q?hzAo1Nt/A8FZBjPq/Gi9HioH+ZaI6aicu2NeYTpM7zljEUKgbgmj/k6Df8SX?= =?us-ascii?Q?h/ol+6s90JBH8On7ZcuetKx9kDruL7KGph0pyCmNEZHwCRJd4FulywDJFrFS?= =?us-ascii?Q?ilJX/O6jxr1nwfdNSyAovrG415d24KeN/q+QQsGEqrMB3yUu8xrDTEuzon/U?= =?us-ascii?Q?LRI9RPlpDBXlxyHga79BMae4QPAZdcKQ5J7fD+9rso34miZBWS478pGpImO3?= =?us-ascii?Q?um/Isfp5LznkYQDd/Y9EBBOK5dhGgRbNo/c0y75RU16pv+TFeJCeJhEhr2bP?= =?us-ascii?Q?juRgSHfSRGC18sVXPZiuf73Xr36oYa6wdmvJpYUK3zpQtEd/V5CPNLWw6k+c?= =?us-ascii?Q?4B6RZFml/iY94LEZNNSsrHDJfd5XPAwrPRb8FP55QycRB3v616J+WIcWVskK?= =?us-ascii?Q?kAr/rNCSDIuh+gk=3D?= X-Forefront-Antispam-Report: CIP:204.77.163.244;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:edgetransport.garmin.com;PTR:extedge.garmin.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(7416014)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: garmin.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 23:45:30.3218 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1c9da522-1031-4ddd-e07d-08dd73099e57 X-MS-Exchange-CrossTenant-Id: 38d0d425-ba52-4c0a-a03e-2a65c8e82e2d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=38d0d425-ba52-4c0a-a03e-2a65c8e82e2d;Ip=[204.77.163.244];Helo=[edgetransport.garmin.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCC5.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR04MB7615 X-Authority-Analysis: v=2.4 cv=GfQXnRXL c=1 sm=1 tr=0 ts=67ef1d9c cx=c_pps a=CbxOEkXH4sIw/lcH++vrDQ==:117 a=YA0UzX50FYCGjWi3QxTvkg==:17 a=h8e1o3o8w34MuCiiGQrqVE4VwXA=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=XR8D0OoHHMoA:10 a=qm69fr9Wx_0A:10 a=NbHB2C0EAAAA:8 a=kv1pVitMRhVdw8weP3UA:9 cc=ntf X-Proofpoint-ORIG-GUID: 3acdXBATy-qIANphG6fmeK7kmDGk23ge X-Proofpoint-GUID: 3acdXBATy-qIANphG6fmeK7kmDGk23ge X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-03_10,2025-04-03_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 mlxlogscore=999 malwarescore=0 clxscore=1015 spamscore=0 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam authscore=0 authtc=n/a authcc=notification route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502280000 definitions=main-2504030126 Content-Type: text/plain; charset="utf-8" Notify user space on mdb offload failure if mdb_offload_fail_notification is set. Signed-off-by: Joseph Huang --- net/bridge/br_mdb.c | 26 +++++++++++++++++++++----- net/bridge/br_private.h | 9 +++++++++ net/bridge/br_switchdev.c | 4 ++++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index 0639691cd19b..5f53f387d251 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -519,16 +519,17 @@ static size_t rtnl_mdb_nlmsg_size(const struct net_br= idge_port_group *pg) rtnl_mdb_nlmsg_pg_size(pg); } =20 -void br_mdb_notify(struct net_device *dev, - struct net_bridge_mdb_entry *mp, - struct net_bridge_port_group *pg, - int type) +static void __br_mdb_notify(struct net_device *dev, + struct net_bridge_mdb_entry *mp, + struct net_bridge_port_group *pg, + int type, bool notify_switchdev) { struct net *net =3D dev_net(dev); struct sk_buff *skb; int err =3D -ENOBUFS; =20 - br_switchdev_mdb_notify(dev, mp, pg, type); + if (notify_switchdev) + br_switchdev_mdb_notify(dev, mp, pg, type); =20 skb =3D nlmsg_new(rtnl_mdb_nlmsg_size(pg), GFP_ATOMIC); if (!skb) @@ -546,6 +547,21 @@ void br_mdb_notify(struct net_device *dev, rtnl_set_sk_err(net, RTNLGRP_MDB, err); } =20 +void br_mdb_notify(struct net_device *dev, + struct net_bridge_mdb_entry *mp, + struct net_bridge_port_group *pg, + int type) +{ + __br_mdb_notify(dev, mp, pg, type, true); +} + +void br_mdb_flag_change_notify(struct net_device *dev, + struct net_bridge_mdb_entry *mp, + struct net_bridge_port_group *pg) +{ + __br_mdb_notify(dev, mp, pg, RTM_NEWMDB, false); +} + static int nlmsg_populate_rtr_fill(struct sk_buff *skb, struct net_device *dev, int ifindex, u16 vid, u32 pid, diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 02188b7ff8e6..fc43ccc06ccb 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -1005,6 +1005,8 @@ int br_mdb_hash_init(struct net_bridge *br); void br_mdb_hash_fini(struct net_bridge *br); void br_mdb_notify(struct net_device *dev, struct net_bridge_mdb_entry *mp, struct net_bridge_port_group *pg, int type); +void br_mdb_flag_change_notify(struct net_device *dev, struct net_bridge_m= db_entry *mp, + struct net_bridge_port_group *pg); void br_rtr_notify(struct net_device *dev, struct net_bridge_mcast_port *p= mctx, int type); void br_multicast_del_pg(struct net_bridge_mdb_entry *mp, @@ -1354,6 +1356,13 @@ br_multicast_set_pg_offload_flags(struct net_bridge_= port_group *p, p->flags |=3D (offloaded ? MDB_PG_FLAGS_OFFLOAD : MDB_PG_FLAGS_OFFLOAD_FAILED); } + +static inline bool +br_mdb_should_notify(const struct net_bridge *br, u8 changed_flags) +{ + return br_opt_get(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION) && + (changed_flags & MDB_PG_FLAGS_OFFLOAD_FAILED); +} #else static inline int br_multicast_rcv(struct net_bridge_mcast **brmctx, struct net_bridge_mcast_port **pmctx, diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c index 40f0b16e4df8..9b5005d0742a 100644 --- a/net/bridge/br_switchdev.c +++ b/net/bridge/br_switchdev.c @@ -504,6 +504,7 @@ static void br_switchdev_mdb_complete(struct net_device= *dev, int err, void *pri struct net_bridge_mdb_entry *mp; struct net_bridge_port *port =3D data->port; struct net_bridge *br =3D port->br; + u8 old_flags; =20 spin_lock_bh(&br->multicast_lock); mp =3D br_mdb_ip_get(br, &data->ip); @@ -514,7 +515,10 @@ static void br_switchdev_mdb_complete(struct net_devic= e *dev, int err, void *pri if (p->key.port !=3D port) continue; =20 + old_flags =3D p->flags; br_multicast_set_pg_offload_flags(p, !err); + if (br_mdb_should_notify(br, old_flags ^ p->flags)) + br_mdb_flag_change_notify(br->dev, mp, p); } out: spin_unlock_bh(&br->multicast_lock); --=20 2.49.0