From nobody Mon May 25 04:34:26 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010051.outbound.protection.outlook.com [52.101.46.51]) (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 3B1F7492531; Mon, 18 May 2026 16:57:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779123429; cv=fail; b=YIeE6/87fpfcIZSzfV/HicBThZy7khh6mmUyUlwaHYDijbiw5Q/PJDXSfdGIIOe52cSKXfHfNskB9MvAjxcf0BWbN3mePpfyoLjqUfVO/B0rswgKD7CwCYeWIBtMA1XVkUf8HidCBTLAqphhjx3zrKWYL221VI6LEuiPYos7eFk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779123429; c=relaxed/simple; bh=2Y4rJvmSQmw8yEaMPDEzlkz9NUOfh4+IdMRBfrID2ZE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Eqpw3pvWn4SUTOAhXn9tgXSJbTkTHtYgk4mzkItWdJArEnuOR3V4ia6fI87fL5AWsRBdBp8YHsI+AGQlkw772wr6lcwvmSp+v2OUpR8+mqkwakjqEhgiyjjo1RNUkWWps1yscKXPpOf7k/hme18U0jDqrXoQ9dBDM6eLqiNS2U8= 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=bJB9hD5b; arc=fail smtp.client-ip=52.101.46.51 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="bJB9hD5b" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=j6y/xd8bPeU4Wzzjq1eWZktOOFO30RFxEafBIeQXy6yc3N/GnzCmUt2muYJtInKPHJnxj7xP/WH8LK9BR5KGjtm2+sRo7Poi6yptckrqPO6Fz1PsiuhZBwE8ZCXKzwUzyA1fFUdg4IcixsjZd4KamIFStb6hyOZ4/ynGUyFiM4Ws/zEijJyABqt4MN0ugXjqYfvZqQK+rRvU9vqxUAbhMILp2KBU8Wn+xqrvQqK5rKPRUdEGaz2UAeMADoYaKNufkSlQUP7DD3as95ZmWIdwyCWmJ/okVqfOYSWw+3w6pHyYw/RpB0N4TSt1F6qx4RcPSU9DmIIndphPL0s1OVGU/w== 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=LpAz+56ujJr1nkH75lH6xuGFfjdzgVAMGhqzMIDdAi0=; b=VU2DKdy6kgB9WCkYW6ueRAYrt01SnTG9bkPYRVcq/QSuJHgV6OnqTYCFuo6ZGkt7ihQEPc/tIc3X5xZ33N0enZN59m3+Ci2n5SOWTiL11GMBmbSU1Fhf6iv3fiXsCwkbYu+GslBbVEenE9mzhkCVJd5l5unmPWHphBndLKtE+PonmtwI0R/OiNniybjqJarFolofPikFmEduHmqLEel+GNqy7yqO7HadX2UmkuR8dy5PDA9niG3QUxtRuLRljBXXHaevbxYDsNTzqla6pM4ptpe6cVlJZkDozt7CFTi3/IH6y+CvB+I7PM+9F+s01kHLuCS5rm+VwoyIWp8ymoIOeg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none 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=LpAz+56ujJr1nkH75lH6xuGFfjdzgVAMGhqzMIDdAi0=; b=bJB9hD5bsQT432Z3T2jwyBftzKKmSPA2m3ilLZpV8K6ENILFdKtLUVs470p3hl2PO45qqdXImX2J+FD2NmX6LVYM6k2rGgbMFE0jpjpvZw2nKU2/II0VRmGYno0l10lWLLUrYaUvh2DYnoFEZa3GdIGKWC/w2hLt2f2MZSbpiG1wfMrZZ7tCmY/vBRbuS0SDC0GGwQj6eGBxG3Zflj1Wjq2Wu+FseSIyGoYvBm3b2L64CfGcwX6OwIWaodzz3U3PxctUyTX8SzRmd0Kb2klnI7DqICpS67JwrFyFgfPysRiOHWw/iFZm5A5qCc8M+4mWFKCxCiOcJfIKWdfD5gce1w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB8202.namprd12.prod.outlook.com (2603:10b6:8:e1::13) by SA0PR12MB4493.namprd12.prod.outlook.com (2603:10b6:806:72::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May 2026 16:57:05 +0000 Received: from DS7PR12MB8202.namprd12.prod.outlook.com ([fe80::38fd:4146:aea:639e]) by DS7PR12MB8202.namprd12.prod.outlook.com ([fe80::38fd:4146:aea:639e%6]) with mapi id 15.21.0025.022; Mon, 18 May 2026 16:57:05 +0000 From: Andy Roulin To: netdev@vger.kernel.org Cc: "David S . Miller" , Jakub Kicinski , Eric Dumazet , Paolo Abeni , Andrew Lunn , Roopa Prabhu , Petr Machata , Ido Schimmel , Chirag Shah , Shuah Khan , linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 1/3] vxlan: vnifilter: send notification on VNI add Date: Mon, 18 May 2026 09:56:58 -0700 Message-ID: <20260518165700.1975478-2-aroulin@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260518165700.1975478-1-aroulin@nvidia.com> References: <20260518165700.1975478-1-aroulin@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SN7PR04CA0020.namprd04.prod.outlook.com (2603:10b6:806:f2::25) To DS7PR12MB8202.namprd12.prod.outlook.com (2603:10b6:8:e1::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB8202:EE_|SA0PR12MB4493:EE_ X-MS-Office365-Filtering-Correlation-Id: ceb7fe17-d466-4c58-2b50-08deb4fe7d47 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|11063799003; X-Microsoft-Antispam-Message-Info: qu+4xvtUC5tZ0GW7TRA056x8KkgjIcU9NihEYsiDj0PleqRzwd62ljDpREEGaZ3m2fU6vMIwNeJ/WNBvIKIDj42xqEgY+hIZI8adH4FFPgADHQF01w93Pg4kAQPnLEOMTdxHrk0Oc8mBGZEAd5I/oRMky8c60FQnC9/rvf+1jFMYNHowkg6knl/EE8EAio42+VsPkhm5VTDpwHI5x4DCpSxygZnpD3PIk4t1pINTPQm4wHOOn6xOIuPtBlr/tLz3qVqBKz/0Ev5zb6M+WZ0YlRQ0hT3M2cXzQAtPfZ8mBYFKS0A1rU19qxEujseuxls/5qwFQosDgO1396ko9/RBvRuFOFSfkovP2lZg8ikAQwRW50WEuYYRgWhboFMT+IGBoD3GhOjnNwwiT96U8FmwJxgFnV3ajYrk5JhE8UEc73VHuIkCXWOqB0jlfoAsvf2OykolJQQbrOZSoz01Qz1Rp/xQKICvM9LVqKJDcDj6u9Dh1xnhpZYOUCwdN0R6Nz/aByWQRaSJiIb8+lU1HLi6deB4dXhpDxQUCEw/kaaJgTuyNYqYI8fDpcehZyyCUcgWEucQhO/Vkr+Frl2iHfgAUJ3vwUbhHURehTXUGpk3yn1bcSLnTgz8UklVXQSzt6KKeAZp5LR0c60Ns+BJAlhPj3q3ZpBwCgkGDs7JwHQ89LhLVBpip05+CuRtBgsC7bVF X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB8202.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oEykc2pfgne7q41LsqR3CkYfFitjuon3BexgIQmSPwwGX9wkTwHLDxg2uIYs?= =?us-ascii?Q?IGskeB6M/VpaEuQpNL2Qc95gWvXuRN6trF2uC2gwnp4RheLR5xWtcP9Jrn6l?= =?us-ascii?Q?v3Xt14Ix/nSBw9nqfr8qehH5POPEU5Lcb1uOvDewxNSLlHr+qzojnwZX4Nqv?= =?us-ascii?Q?zA1rQLQPaZoVWoyOP8HR6tlKt++zDm3mMCWK29zfhqFfhnghGSYye6eKhxE+?= =?us-ascii?Q?Htiab/yun2Lg9gOdzN8Vx+eNIgy1qiCkeDmjX+7HXv9xZcfkOnb5AGVgzQu0?= =?us-ascii?Q?dwK9hpgb7g6fSsVL+/PFit1+ZCTiCOBHbrwAtHIChwFlNyL8jeyLNpsuGNo/?= =?us-ascii?Q?IWtRenhRbeKLhblejNHXEtrE0Uji+/I4lJH1s9FebD7DHBEdCZ98Vu8j/dvC?= =?us-ascii?Q?wjgMTa8YDjnH2mx3LLME+zfmRQ/a8yO+maxZSToHftbM03IejMxEWlkpwIM2?= =?us-ascii?Q?2V3s+14Hk+WNYEmu0e5rMfHofwO2oZwlaCdgyUik3SlnQHV1krMU8CZmduzw?= =?us-ascii?Q?TonZ7GjeVnc8mpN3yhK4djYjsKz3cY9n7JCB5klBqOeNwGw4IfT+LXTUn1dS?= =?us-ascii?Q?EEPtwHpvBIHaWR7f4jpDolj5pjqb9Njp0NCbSTpBfVHSUF8fPNqsunkVF+jx?= =?us-ascii?Q?impm0dVfSt2Y2fSHUISyOOWCbqLpBtHJiXstRVCOYtFkBC3HcuqewSY1v/9D?= =?us-ascii?Q?3yZp4MLOj6ehHrEd6v6vS5eL/A0MVRWLakCcw42ndt9luKZAucW5O5qoqtyQ?= =?us-ascii?Q?s6xRB34P5Eqy5ZmUCSvr79IjLdBucRIIKlyn7Y2Y0h/Vfvz4hTo7JSHHuOUM?= =?us-ascii?Q?iA/3YAs3WjClLm0V2Q4kTOBZK00LKdAa3tfxUEsadwQ2+RCKTp3fz25EJSMz?= =?us-ascii?Q?QZZqlncXxkBjlSze6br5aLsUQniywu74+UOkdaTHXORkQ/f2XvUwYT15ICry?= =?us-ascii?Q?tGp3sivktzdIuSdqDp5uTPHolc6SZFjZSkvviHV5ofqAelsPXUnbyoXF0XIf?= =?us-ascii?Q?vT1vEi3+MmktOk3lFycJA9vAYnXRbdSfK5C85GxMeFcEpD5Uko1fcBirP8oA?= =?us-ascii?Q?sgfvSKkoa85FcqdVpYZq+3iWgAoH93hdnP3oWcp7MFQoFE+PIcSWX2JHYvgt?= =?us-ascii?Q?wBKlNb7gk+GoylKKHqkvADFf5X1YytO0+cr0wUnsfqo2ZtDb5/8jSlSlYgFq?= =?us-ascii?Q?myrrNyZWJggZNYDefXq2FVE3nGQTjhLWuC/wHvM5sklJbClTMK4M4bXQ3Smt?= =?us-ascii?Q?bnaIeku0FBwScbxXSxLSCR4Xf0ndPDzuel0q7n5x4C5n9PGaPMFcb3iMTEfm?= =?us-ascii?Q?iWZ6GsUWsM2mYmHZcKsWBKWzSM1uo5+lJzds/h7GT3EwzLRCCobQx373VDck?= =?us-ascii?Q?HB6/QVauXNWArCkhrqQioTwhcjIXuZIEuKDJUuWTE8C8aLJCSK0XadOM2kRw?= =?us-ascii?Q?OIw0a92CO2dr6+BPwgraC4AqSVGe/tnzSrP04ADZ7PUolRghm78vyBgh8Pv6?= =?us-ascii?Q?64h0HhU7jsYJihJPz9YNwh5328EFvjBloA65xT/6QKuyYAxlaR2LvTfLjQv8?= =?us-ascii?Q?1GFMAAKJ6dkElG1xq3diMei+ug6g6FVBeVloMgFhBi6KRYqQDRdkEJ4R7uAj?= =?us-ascii?Q?aCE/mbpMlz84D/e41XU6Rc3bSOniRYv4oRsGcFVt7X5M0dSxrUpEvQRM4D6z?= =?us-ascii?Q?9BSL8Thm73c6+RX2vv7bzjEszaSjEi35KCJYD0ugq1MBTnL7PKGI8g27ZFfi?= =?us-ascii?Q?T4kU0nJYNA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ceb7fe17-d466-4c58-2b50-08deb4fe7d47 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB8202.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 16:57:05.1593 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rxQPQmVOoUojBVhl3iFX9QG8xFDzwbbsB091WzZr1CccSPmkqU3yv5vDPkh1eSv9e1OZQuW5iV3S1r+UhNgPGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4493 Content-Type: text/plain; charset="utf-8" When a new VNI is added to a vxlan device with vnifilter enabled, no RTM_NEWTUNNEL notification is sent to userspace. This means 'bridge monitor vni' never shows VNI add events, even though VNI delete events are reported correctly. The bug is in vxlan_vni_add(), where the notification is guarded by 'if (changed)'. The 'changed' flag is set by vxlan_vni_update_group() only when the multicast group or remote IP is modified, but for a new VNI added without a group (e.g. in L3 VxLAN interface scenarios), the function returns early without setting changed=3Dtrue. Since this is a new VNI, the notification should be sent unconditionally. The notification is not guarded by the return value of vxlan_vni_update_group() because, at this point, the VNI has already been inserted into the hash table and list with no rollback on error. The VNI will be visible in 'bridge vni show' regardless, so userspace should be informed. This is consistent with vxlan_vni_del() which also notifies unconditionally. The 'if (changed)' guard remains correct in vxlan_vni_update(), which handles the case where a VNI already exists and is being re-added -- there, we only want to notify if the group/remote actually changed. Reproducer: # ip link add vxlan100 type vxlan dstport 4789 local 10.0.0.1 \ nolearning external vnifilter # ip link set vxlan100 up # bridge monitor vni & # bridge vni add vni 1000 dev vxlan100 # no notification # bridge vni delete vni 1000 dev vxlan100 # notification received Fixes: f9c4bb0b245c ("vxlan: vni filtering support on collect metadata devi= ce") Reported-by: Chirag Shah Signed-off-by: Andy Roulin Reviewed-by: Petr Machata Assisted-by: Claude:claude-opus-4-6 --- drivers/net/vxlan/vxlan_vnifilter.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/vxlan/vxlan_vnifilter.c b/drivers/net/vxlan/vxlan_= vnifilter.c index 2042369379ffc..f2a202d468928 100644 --- a/drivers/net/vxlan/vxlan_vnifilter.c +++ b/drivers/net/vxlan/vxlan_vnifilter.c @@ -759,8 +759,7 @@ static int vxlan_vni_add(struct vxlan_dev *vxlan, err =3D vxlan_vni_update_group(vxlan, vninode, group, true, &changed, extack); =20 - if (changed) - vxlan_vnifilter_notify(vxlan, vninode, RTM_NEWTUNNEL); + vxlan_vnifilter_notify(vxlan, vninode, RTM_NEWTUNNEL); =20 return err; } --=20 2.43.0 From nobody Mon May 25 04:34:26 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010070.outbound.protection.outlook.com [40.93.198.70]) (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 25EA349252A; Mon, 18 May 2026 16:57:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779123433; cv=fail; b=p2JimwCcJ4xmwCCRfR3rJBGdaA3dT4zWSnGuAF68MUw7yO2BT3GyvYY02qXbfnEDiTbGnB//K+hbi662YvpM89Km/DbiYcuymsjT81rQE8KG+TTSt+s0M5j6u8lITLqQZ/5ld8DKnygdeGaarSWeKxD+uwBCI4Oisl2LIeT1pzA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779123433; c=relaxed/simple; bh=HBJ+3unn089UWCPjKKORwN720rbz7P5P4G1hJUcahj0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eVcxy5dSBKsRwuOCneT84kw8Epup4RLO4rfoFuPBoKpdiNXWDz0ySS6BO3fYiN1vL+qbFEXBadX3899l6fEILyxYnGZV9u2rhUjDNtjjcN5VZg0s7xEuY12ugJgUAO0N/uWLmcpMJJpIiFCnDmefvWGMq1mTE66EuuUbwZWCiYY= 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=lETC3MHm; arc=fail smtp.client-ip=40.93.198.70 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="lETC3MHm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ma0aFOMwG6bo9V4AHxLAlHQFrkJuDU9WA/BCv8e7wB0Vop0aiE7AZlp4IJIvC/YQV3B61zQ4Tl7y0U9kWlGuPrj7q24MIo22yuNoyeNb36cBCkkxnxguOcK/MQrAeHCyFsVX1wKeqLdSU1WEoBvonL9ewLeiQoQqbvT8ht445jzplrO00MrCZ5CgWCMq35vOGmP8epxDzrRaO82ulxe/01hArKXlLUz+4JJ3/s1KO1xWeThDssRb7ZUJWr70qZJ8u1rTmJ9Ux/ALKZxOclwcHiUGoDqNJA5KUGcWg0VYwJrisKQxNKyKrLpiY535pih0dv4J4xVXoMSPfDEvTPx56g== 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=QIT2U/njn9FDxJoIGAF9nYQk1ETPctpzvDzuFiJzjyQ=; b=oftVwtv3f20JUyJH5odk5jHlgJD0k7cjO0VQanBoIHrfxAD31gHhnDIy27thg3hCWSw1o10pwDRkKXHJ6Go6O0lB+t4XtJc19SaONFrigFbNBHdsZ9jBdhCb64KZGIaTWsGOEVLJD9v+MN3zS8YIuzO1NLw7tdACSMTyl4es8cc+bRdjdmIQSKbyS/uMN/YxcKMBr1JHLCCDO4De3L4VhytXH9y7A6zTWWbYxyHPboyzdXHguXoIs3HMwHcmBljokPghTOr6ESjCI3KBr33p6KFIoqSvx/OyoqeGvZYLmKqufM+m/Z4dB63O3gxFxW8ivcbz3ULYJPH83iAy5N/RyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none 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=QIT2U/njn9FDxJoIGAF9nYQk1ETPctpzvDzuFiJzjyQ=; b=lETC3MHmf4zd/3bDIpezJ6NrW8EWe4+Vjbkm5o2+d1XW5wkXIAYcYqhFwQc5vVXGpTBZ3meQYKOQvmVQE0Ykc9Te9LFpmc6/GNuun+nMZI65pt20bt5kkDbPXjluBNpwYVsDByxTIiIdu+tuxviY3O4bYmuE/AUoedUaoYWh7wa4bWsSlxlRndUUgnu3k5nQNCbItV2ReM2HONO2Da3cW5e6YxyeGeGFHZAsjKcWhujYkkIIivrCJXWJE/zijk5tFqiNX4d00Mpy1gHfBcogq1CbIEDwoPhwrR9J5n2dI7BTE/tpgw5TYkNmg+9ogiIK6Qn1R2PVeWj1nmNc+VlYaw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB8202.namprd12.prod.outlook.com (2603:10b6:8:e1::13) by SA0PR12MB4493.namprd12.prod.outlook.com (2603:10b6:806:72::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May 2026 16:57:07 +0000 Received: from DS7PR12MB8202.namprd12.prod.outlook.com ([fe80::38fd:4146:aea:639e]) by DS7PR12MB8202.namprd12.prod.outlook.com ([fe80::38fd:4146:aea:639e%6]) with mapi id 15.21.0025.022; Mon, 18 May 2026 16:57:07 +0000 From: Andy Roulin To: netdev@vger.kernel.org Cc: "David S . Miller" , Jakub Kicinski , Eric Dumazet , Paolo Abeni , Andrew Lunn , Roopa Prabhu , Petr Machata , Ido Schimmel , Chirag Shah , Shuah Khan , linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/3] vxlan: vnifilter: fix spurious notification on VNI update Date: Mon, 18 May 2026 09:56:59 -0700 Message-ID: <20260518165700.1975478-3-aroulin@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260518165700.1975478-1-aroulin@nvidia.com> References: <20260518165700.1975478-1-aroulin@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SN7PR04CA0021.namprd04.prod.outlook.com (2603:10b6:806:f2::26) To DS7PR12MB8202.namprd12.prod.outlook.com (2603:10b6:8:e1::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB8202:EE_|SA0PR12MB4493:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b786611-b56f-4769-e91d-08deb4fe7ec7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|11063799003; X-Microsoft-Antispam-Message-Info: TObU8qQfLMHDl+0+KBii073Wm7o+skxoUh2a9l5MM21x/cvbebO36B53iItBEgXQMFLs4ACqVzKzwRuqK4Cp5xWNREmZURQvd14j1SMuRNAuOtVd6+wIK2BN7aRWpUXDp4I209zLvqsYOpZ5ht0VwBuwokJgoJcw4Rky5Qt93BHvKvBgd5xja4j8qQzhz2rfcLxRiHVmYF7lnnB0ZrPRWAIpHyUawPQpjkOcs8c5BvRlREOxdoDusNt6sYIAWOZ24i3xn7Ulxe8IN8ajzi8zUKYxh/e8axUO67EWuNHBAc3nvL2QrS8U5Lq/PhLu+U2ulN51IbJ1w2OxRxNsatl2QR5uIHODzspVDuHIQnzCjVL7QUwsuw4NUdWL52+F/Lbng2J7xPb5rZC1uVZ/f4h0v9tL9jttYbWSpPIQJF72ItJMwrtvxnL86k3yOY7/RqoAkhz+DqVnOys2Yun1CFbCSVViRjw9I0PU464wYtZiNf+3cf5WiQ5jQy3m0f3vbeMdxz7gltMfTbWpawiIXdsb3gSZWyRNmK5KrXTkMZgChvERTEAJHncHhNRXvDNBIWYtwmQ5DO/VRttmilAkn9ZoANItESEogpI/JjOahxXyRGk+QLasZtPJNEB5RcZzMdrWjWFepOREj51y0qn/tDVC0gk6ZMijHxRls2UomgNjUar47ags63gxCeK2Xkx8wUQ1 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB8202.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cJXc/ROMOxGb4O/s7lsdOBB3YOY0TMs1/riRsr5OkuEZAy/HpcYjrqawcUTT?= =?us-ascii?Q?KNOfZ15txRCPZb6WKFTTankHC/9EHoT0mOYDvtbt1u8dZbw2Zz1Ja1HIofgP?= =?us-ascii?Q?3EpEdCsa78EuaVKoYP2t3rkvanUgQdjcFfwS+9hnF7pR0/YbaA41eGR1YCn3?= =?us-ascii?Q?RrRb6ktj1AjCiMRDtr4kYWAFYQ5SCIi6CBYn5nrX0NpDauFrCa8q5Ni3+JuY?= =?us-ascii?Q?MuDC8qL8+WbDXdnK5q5NSZ4DbsxCwLuQJdChchFMQJApVnTprSXMYyo4We5j?= =?us-ascii?Q?ROu9QZZFiyfXirV3DW/sTO8RtaLy+C/BieFAzdVtePhaRhWwNi/H0qrACfpy?= =?us-ascii?Q?XuaAZU5V0WAw8DQtPpQwzFz95SLXbTGLYDhrUA8enKou+rUCsGXIUkx9MlT4?= =?us-ascii?Q?1pJacEYLoXflUD6wYAKXW9uNEQxNpNkQ/Ut6+fmoIW7ImiQM1oJHU2BwPThm?= =?us-ascii?Q?8YLeFKDNXfV/Gx3ag9Ijvt3hVmC++HOco0Vd+Cp/zbEnVUbe5EX8Q8xrhEOY?= =?us-ascii?Q?Z54jevzAV74pcOxeUIbon5xSHUrCDf5Z3cPdd3IjblbKp9c2ET5HrinKRY8n?= =?us-ascii?Q?la+oY9kk2GwCJEr0ZrEHPRM3LLjfk+DSJDhaX1omq+kqNlrYzjPK6RIF2s+a?= =?us-ascii?Q?G516Z7awYc1yaT2vPUnNPrICZ1i5m7ysVymyIA3mg3lTWEWgK5PXrLg/4yE8?= =?us-ascii?Q?zBU2WlUSDBPkYghlgJYEauCjJuGeqZg+gGMpVr7gcj9RJCcTFof+jz0JNOHV?= =?us-ascii?Q?x0FEZJBQLrOuSY2lCl0IvjxX7btgbCOtxDu55cIRL0A/OnUYBZALmv/Vq9zL?= =?us-ascii?Q?bwGMkkC/vWZdUPexEln0c3t/FhCATa2SOvdpZn4eoB3BkhIgiArc7KUHqdgj?= =?us-ascii?Q?FNE2HS0WV7NstvSE5KOuxMYqykIxm/DOL1j0LbD7zQyYAGMotmmX1NO5Le97?= =?us-ascii?Q?QBVJUOvZQZF6gtq6j1MaYEXyGA+0EWiPqluK8mKGhYuauMPiS1nlWKkVHeDc?= =?us-ascii?Q?HecCO1SO3QeCRo+FuoFgTZUGkwoOzY4biXxOLUsUegjb/o1HzobOVOnWlKky?= =?us-ascii?Q?BDnH21xkus2L0WcYa89GcvIwBeZH6h3AYE1Scnpztxk7vASQClD6DXqwfbA4?= =?us-ascii?Q?rpu/gq+NaSOVVXPw83bbPfUBGTZ59AWp8wEYWQ5oH/Cvzc88VMmcrLgnCFht?= =?us-ascii?Q?LVq723jaKojx7LVZZAIaAfDyLxURvmmOOjQ3WHEDUtXzaMD2vV7b3oU8xjU0?= =?us-ascii?Q?7J5rRTiYV6qSyf3DbPUCgmJQ9uAZKpGQoBq9b9yxB2yXidmV6zSMdhWx62Ma?= =?us-ascii?Q?5tNIo8i0KClUVWFoOHDnUcR+1itiDP4hVc4IdAlIZrSaa/Hk2eO+820V9HkE?= =?us-ascii?Q?7J/BHP9hFUNBt1WE8ablzNWyb8IQE46rQfrasWrz86fR2auMXEMw39np9Osb?= =?us-ascii?Q?BkhhvDw+dWLUBb47JvawCEdlQA8DicEB8USbvKeUm30AyluwQG7E248fuIDu?= =?us-ascii?Q?p81GR2lhWfsND5j4KS/b8yGdAPh73dwuqABifsQTx3/qHMmEXjrXYem7irTY?= =?us-ascii?Q?Ps6w27WkbuE7P+kEZj90VsWF+DB2g0decqGwxcHu88QfkN7s5yrpxTAEa77k?= =?us-ascii?Q?B/EPYWfjjCJW6fNXx14XBvbYHCX/ioNMKNGhMwPIGySmf7VYlLeAxM2UwUh0?= =?us-ascii?Q?ZOmUSuC5Lh3wG6W+r14sTmsSDLrSN39LZjyaHwHfUG8chdKyt7nLW1bv0aEj?= =?us-ascii?Q?D+FKK5dN8Q=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b786611-b56f-4769-e91d-08deb4fe7ec7 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB8202.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 16:57:07.6927 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bsgUqSIuJ3DkQu5X3GJLLTW2bL0gCgUL8muP3k4FcrSe5epoTEUkayNQ0L4USlyec+DWSesrkLWtpiTcrBRhzQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4493 Content-Type: text/plain; charset="utf-8" When a VNI is re-added with the same attributes (e.g. same group or no group), vxlan_vni_update() sends a spurious RTM_NEWTUNNEL notification even though nothing changed. The bug is that 'if (changed)' tests whether the pointer is non-NULL, not the bool value it points to. Since every caller passes a valid pointer, the condition is always true and the notification fires unconditionally. Fix by dereferencing the pointer: 'if (*changed)'. Reproducer: # ip link add vxlan100 type vxlan dstport 4789 local 10.0.0.1 \ nolearning external vnifilter # ip link set vxlan100 up # bridge monitor vni & # bridge vni add vni 1000 dev vxlan100 # bridge vni add vni 1000 dev vxlan100 # spurious notification Fixes: f9c4bb0b245c ("vxlan: vni filtering support on collect metadata devi= ce") Signed-off-by: Andy Roulin Reviewed-by: Petr Machata Assisted-by: Claude:claude-opus-4-6 --- drivers/net/vxlan/vxlan_vnifilter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/vxlan/vxlan_vnifilter.c b/drivers/net/vxlan/vxlan_= vnifilter.c index f2a202d468928..3e76f4e210944 100644 --- a/drivers/net/vxlan/vxlan_vnifilter.c +++ b/drivers/net/vxlan/vxlan_vnifilter.c @@ -661,7 +661,7 @@ static int vxlan_vni_update(struct vxlan_dev *vxlan, if (ret) return ret; =20 - if (changed) + if (*changed) vxlan_vnifilter_notify(vxlan, vninode, RTM_NEWTUNNEL); =20 return 0; --=20 2.43.0 From nobody Mon May 25 04:34:26 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011018.outbound.protection.outlook.com [52.101.57.18]) (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 D467B49553C; Mon, 18 May 2026 16:57:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779123436; cv=fail; b=VuPzlyIadmt66n0AMexpImLFT0biG/UimV7+azl3JoC1yXYa64SVrCGO1wRwFsMW+NvJbUbuv2+83igaJM7rdL00kFIe6iKywb8pgQA+b1PBttqL9aZRURJX660ILNswJqPuInC4PdrcDoZwD4qkY6etiFXulhS9S75EoVxixlc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779123436; c=relaxed/simple; bh=WB7n1ixxVR8hKLSS3POW46jegQ54eWm42zQCmBCDcLU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=S3fq8KKt0mQiTafuVAaBTd3I5WdoR7qMz60ga60h2k1/UesjRxEoF1zKQ6lkHvF19KQOgzj2c5m+Sb4Knpz3JG+/KDAsz239QSix1p1/xZLwCTqVNZDCkpVOy2x7lP0hUIz43GbZ8q9iN0ssZpkA8LoN59dl6bXiAUueUg2H3h8= 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=YoGDMmai; arc=fail smtp.client-ip=52.101.57.18 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="YoGDMmai" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cshQhh9JUqPueuD3EwBaxueTkxJj6Xai7JKhz5Y+PaZ6MKd6XW9wZUxwcAVEmvgJZJ9C2j8G76fpiOnQGxZNU2r4GOsZWd+57F6tMX1632QG0S9V4monjaapOdMzV2mncBzv1SVDl7geD3s53oRTj/1i2rT70EyzoBYGf6Kz88E4okFmI6uR4ocK+F412dc8EQfd5auHYVADfokDZGgt3PkmhW+LBUEcShpr0hDVjjtNgOtPSO8AbhFuNcmQHbqNnA86UWCXIlAEEhLnneAPdNRPdD2LGtT5gvkjkRfeWrOb1IAgxQVdNDgpwUUznePb3MNr6HqMFkehogkaPyGQMw== 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=N2g74nGbQIqE3BjRdt00rnG64vJoESHiPf9+kTCqK6Y=; b=iOBpyr6q/sGmE2npJHVNDwqpw+Z7q8SuSp0h+86subw95i12L4x3mSHNWdyxa8ca2Ak9tfDolEad0OJT/iF702MfZahsuKK+tLNldje/lucY34SihgyHHIIYMwVAfH5hRgZke0G+5x0jo4fyHHxtrekU+4ZDywl0xAkCWWVNtFyfv/Vhto8Pg5dIHJoJ/+Rw7dipeCvJ2jWqv6c1XjINqqamJOJvsV55+4+h4hgYmhwuPtQ2eDt11IVQxcotEJIfGVyeaFS0VsjmrTLjCNN76BLg7zn1z8tMFBDAQRMtiLe76VEBUH8tLFo0SMUfjaeXYc9UeI8LrK2jRkosHjeO1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none 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=N2g74nGbQIqE3BjRdt00rnG64vJoESHiPf9+kTCqK6Y=; b=YoGDMmaipP6284OMbDTV6sF66FKKwryU3FjFlBJtw8erbitUcKaF6I3AD1eRz7M0QmYxWFEq7+jS5ObPcvgqpoUDx1HJN4BSMId6ZT/yamvgg9g5SS+AIc/6TLt9meKvgKJSxvzg+l6RjmLmAmKo3Es5tgkmQS/khiKEKbeFz2ztGDc6UyQAM4pOOmIbk5tgOD4RMCoULRLBz35R7igJnhqH6QyENfRpgD17bFH4ZNTK+19cBt1DGBu7zU74XxnVvOpHsvk8SKLwabOlIMGL81Q9nGsU2XD08SmAGNspusl8zJv/been4qSlcE146QKuU6aQMfkba6r2NTpLeVHK7Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB8202.namprd12.prod.outlook.com (2603:10b6:8:e1::13) by SA0PR12MB4493.namprd12.prod.outlook.com (2603:10b6:806:72::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May 2026 16:57:09 +0000 Received: from DS7PR12MB8202.namprd12.prod.outlook.com ([fe80::38fd:4146:aea:639e]) by DS7PR12MB8202.namprd12.prod.outlook.com ([fe80::38fd:4146:aea:639e%6]) with mapi id 15.21.0025.022; Mon, 18 May 2026 16:57:09 +0000 From: Andy Roulin To: netdev@vger.kernel.org Cc: "David S . Miller" , Jakub Kicinski , Eric Dumazet , Paolo Abeni , Andrew Lunn , Roopa Prabhu , Petr Machata , Ido Schimmel , Chirag Shah , Shuah Khan , linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 3/3] selftests: net: add vxlan vnifilter notification test Date: Mon, 18 May 2026 09:57:00 -0700 Message-ID: <20260518165700.1975478-4-aroulin@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260518165700.1975478-1-aroulin@nvidia.com> References: <20260518165700.1975478-1-aroulin@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SN7PR04CA0057.namprd04.prod.outlook.com (2603:10b6:806:120::32) To DS7PR12MB8202.namprd12.prod.outlook.com (2603:10b6:8:e1::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB8202:EE_|SA0PR12MB4493:EE_ X-MS-Office365-Filtering-Correlation-Id: 8fd051f8-566b-4d7e-1ecd-08deb4fe7ff0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|11063799003; X-Microsoft-Antispam-Message-Info: oU1pyJh3M8C0c0hpsESyj+PME4dQRPk/QJMzmtCOVIdbO7UV9pGyjoGCwA5HGi4JVYOe3UP8dGwmKh9l6hWaf0ZupC52TE7vDqPz+OlD0/7IEdhE6SQ/sdNKLYubXLPyLiBq6+p3XuW2LbbRkN2BhabDRFzRWG1mar0ZHUxzz3C1uKqTy6z2XL+tBwCjcpFH5GJfLwJGg1hgaTEbFIgxCoGUIc1NnlkxfXTxlT0fVFLfIwdvBHKJ08p5bodYYRv2pLdQMU8ivwAEHXPaJ3QLCUTPnlS8UNman3UvIew+S4Lf84HvKHnYWa+IwfocflaS/pmdXSaq/21dxwxt6iqUITT3NKc1welYn2QRImebJqmVtW+DrygOfompwuax5V9ZvX0oC7mMVnOJkMsLA7BWdh2v2MOocMVsIxIfI7ILCdg0kblFR6tgXncwXzFSFY5qQvsM1i5KsAZYA1RVurwGh7pEoYrqjqeqNfNI+o4yZvMDbeQFhUrlg0dYRtlz6nY/+SGZ8t87+G4qHarZeJWspf4RnmU8Y3n1SnASXCOWIuH78wSc1Rx0Br/9qIyqZi8FLSkaz27NcN15cQl6t8QH4GqvPM2MK6OmQXm6IHP/IJakSPSWaQ71pck0v+gJ3HO+ywX10bkmKN6SkmnHVFP4qlFbBrJttLtUBZcYqBuS2pRRYzLtluLeu7gvaXXmkSOo X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB8202.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?x7Ed6GiyHHkMpAtswe0ULhLs1wxTIMsk6o1ID5gAyJ3Qb/EP0Y/yM9A1bZ9C?= =?us-ascii?Q?Ym78ySIGiFdPexExPcnv8JQYZjLE/yjSxmlbe/OQJcOxbf7tdTtzWfYnelRH?= =?us-ascii?Q?BTstpVansPNlIWZNWxjrtg3TUv/rZhlnZwoGmPoPgyg+svzulKstYI9wmdUv?= =?us-ascii?Q?OFPnGtbRDftQYvAdbN0VO1xrjnFDA2VD9obiwGUFt+gwaX63ZjN5XCSMZtVI?= =?us-ascii?Q?F0WmrGp4s4HNPkF2PnyZtqHyZbc8/iCSMS3gi5qqmHrY/u75rjMKgv9ctLkb?= =?us-ascii?Q?03Uh4JnfwTEL0V3QST75TvwRruIP3TsCcobQvW5GzkFoDrNxzcSK+ZnVgG6v?= =?us-ascii?Q?wuXn+sSrtqEYcGiLlZOn6diEq1QmkQPBpn3FEOLD/7K+FiM30cWargBDO6V6?= =?us-ascii?Q?dFgfAFMMeLT3PthSUUmv59iKl8VCcdOnOEXQQJKjs1zVOH+9upUNSWAkJbSa?= =?us-ascii?Q?gFVC+4KiCJiw55W4XfONh6H+d+ErxV06b94F+vfNzTbPx0Tv75Pr1rnSFyXf?= =?us-ascii?Q?zwUm3HTuAUAgbHFv5xIeL1phrq0LnYAtt1LAx3RGL16uMRAW7tM2lVPW4QG2?= =?us-ascii?Q?o+P3DwM7hsRUE1DVGxrWDjmJjytI2Lj3Xt6LTPhS+v1/RCnDyujtRexRY3vi?= =?us-ascii?Q?6nvo4ZRplra9u3/RlvYR12UE5eUxXCPeQQj5dzSgAiZR12Ufb6s3Ww6nmz+B?= =?us-ascii?Q?sJMdb0q6XsMWRqETNOLdP+5dGNwbkVOE0NblTQEUbbwxaKQweYP1LSZpwIiF?= =?us-ascii?Q?2wNdlV1hJvDz8eEgWPS0xP2hTEhyusVDyDbS8V5QjnAFRRaVGKvxHGct96vU?= =?us-ascii?Q?ocfpcWQgNhJUqPbXFKHuehozuimfguQFUia9fJ2d2/f2bJBq+gscQ8Z8u/9Z?= =?us-ascii?Q?vmvR4b8ugY5t0v3XbbggZ+dycTjr/ibR8Hcxf7VGcViFTdlVsSbk80RBA817?= =?us-ascii?Q?qm1cMg2t6Ju+GKW22W12ESq0iRpuyNdOmOUuyMXzCeUpmSZk7QO3XpwjWclg?= =?us-ascii?Q?PtpA6e+iKmzSKKMHSGwO7D3y3W/mJKPEmHxrc5egO5sms4BfSFTT6EjZ0Eyn?= =?us-ascii?Q?YSxZKu67nlgnAX9jIXe3rw8iGDeISWQPCiYoosCQK/0VfFDBQE1Wn6IxjWYe?= =?us-ascii?Q?/6MpwwmJ25TqIboNAbI331cjIvSBhXtO23fB2+7JLgP5ZsLCOt12l/YdykLs?= =?us-ascii?Q?Gsf7/8xws/G4oixNTMGKqv1/LAQsXwa+hwCproN7/S+AF+sXwVNaeyGm0Prg?= =?us-ascii?Q?acimu6TuL4QYgURzLOfRTEGmZHf7qjIbaXQ/Y2bmvc2em9G0i4Ksk7IymVjH?= =?us-ascii?Q?Y818fGrTLiZyZH4t1WwqicQlRvuzEPJRoCbA3f7dhBseF1vZdkrCcxFqHiFi?= =?us-ascii?Q?A8F+GM8GqGjTG0veQ0+lBkru34GO/pNyCfiDd+Pcxs3UO6cwlC2QOaYQicpK?= =?us-ascii?Q?QSX5vVSYfG/rzPWWROIxuH0HLm6FMtqTxAKdhOWcRT28xTqSZ7BDi8x3Ri0v?= =?us-ascii?Q?At9+XurmhiPywMVm3jVAxLQLA3x7K0fS8oXggOuVlDwn2DceS4360I0PcbPf?= =?us-ascii?Q?91uvF2BgssQOqFZdWhzI6zT5CwNDsnNlEtIf+BwNXMC57vikFAAIE9Q9pRO0?= =?us-ascii?Q?mR7MzlnOFGSPlhwZyvya4jhaaN2nUZxdxb9ecLPeiqdvgO/2AiZTJIiHHeQu?= =?us-ascii?Q?bBHE91qTadTFu+U0eIoaNPm43KV7IkeD3AaQwpyGnMbfgUfWkyUWEVPhdRGj?= =?us-ascii?Q?Je9cN/ZUMA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8fd051f8-566b-4d7e-1ecd-08deb4fe7ff0 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB8202.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 16:57:09.6109 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 87P4Xjg+wj05f9c121ALIyJ/14omc/vdbYW/mIp0cRbrodnppbPFRoSZjX4VL6B2JzFTe+rEhwe9bzu1qWvY1w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4493 Content-Type: text/plain; charset="utf-8" Add a selftest for VXLAN vnifilter netlink notifications that verifies RTM_NEWTUNNEL and RTM_DELTUNNEL are sent correctly when VNIs are added, deleted, or updated, and that no spurious notifications are sent when a VNI is re-added with the same attributes. Signed-off-by: Andy Roulin Reviewed-by: Petr Machata Assisted-by: Claude:claude-opus-4-6 --- tools/testing/selftests/net/Makefile | 1 + .../net/test_vxlan_vnifilter_notify.sh | 175 ++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100755 tools/testing/selftests/net/test_vxlan_vnifilter_notify= .sh diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests= /net/Makefile index 5ca6c557fc3fa..6a190a525a391 100644 --- a/tools/testing/selftests/net/Makefile +++ b/tools/testing/selftests/net/Makefile @@ -109,6 +109,7 @@ TEST_PROGS :=3D \ test_vxlan_nh.sh \ test_vxlan_nolocalbypass.sh \ test_vxlan_under_vrf.sh \ + test_vxlan_vnifilter_notify.sh \ test_vxlan_vnifiltering.sh \ tfo_passive.sh \ traceroute.sh \ diff --git a/tools/testing/selftests/net/test_vxlan_vnifilter_notify.sh b/t= ools/testing/selftests/net/test_vxlan_vnifilter_notify.sh new file mode 100755 index 0000000000000..afe1036115fd5 --- /dev/null +++ b/tools/testing/selftests/net/test_vxlan_vnifilter_notify.sh @@ -0,0 +1,175 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 +# shellcheck disable=3DSC2034,SC2154,SC2317,SC2329 +# +# Test for VXLAN vnifilter netlink notifications (RTM_NEWTUNNEL / +# RTM_DELTUNNEL). +# +# Verifies that: +# - Adding a new VNI sends a notification +# - Adding a new VNI with a remote sends a notification +# - Deleting a VNI sends a notification +# - Re-adding an existing VNI with the same attributes does not send +# a spurious notification +# - Updating an existing VNI's remote sends a notification +# - Deleting a non-existent VNI does not send a notification + +source lib.sh + +require_command bridge + +VXLAN_DEV=3Dvxlan100 + +ALL_TESTS=3D" + test_vni_add_notify + test_vni_add_remote_notify + test_vni_del_notify + test_vni_readd_no_notify + test_vni_update_remote_notify + test_vni_del_nonexistent_no_notify +" + +setup_prepare() +{ + setup_ns NS1 + defer cleanup_all_ns + + ip -n "$NS1" link add $VXLAN_DEV type vxlan dstport 4789 \ + local 10.0.0.1 nolearning external vnifilter + ip -n "$NS1" link set $VXLAN_DEV up +} + +# Run bridge monitor in the background, execute a command, then count +# the notification lines. +# Usage: vni_notify_check [args...] +# Sets: NOTIFY_COUNT with the number of notifications observed. +vni_notify_check() +{ + local tmpf + + tmpf=3D$(mktemp) + defer rm "$tmpf" + + defer_scope_push + ip netns exec "$NS1" bridge monitor vni > "$tmpf" 2>/dev/null & + defer kill_process $! + + sleep 0.1 + "$@" + sleep 0.1 + defer_scope_pop + + NOTIFY_COUNT=3D$(grep -c "$VXLAN_DEV" "$tmpf") + NOTIFY_COUNT=3D${NOTIFY_COUNT:-0} +} + +# Adding a brand new VNI should produce a notification. +test_vni_add_notify() +{ + RET=3D0 + + vni_notify_check \ + bridge -n "$NS1" vni add vni 1000 dev "$VXLAN_DEV" + check_err $? "Failed to add VNI" + + [ "$NOTIFY_COUNT" -eq 1 ] + check_err $? "Expected 1 notification for VNI add, got $NOTIFY_COUNT" + + bridge -n "$NS1" vni delete vni 1000 dev "$VXLAN_DEV" 2>/dev/null + + log_test "VNI add sends notification" +} + +# Adding a VNI with a remote should produce a notification. +test_vni_add_remote_notify() +{ + RET=3D0 + + vni_notify_check \ + bridge -n "$NS1" vni add vni 4000 remote 10.0.0.2 dev "$VXLAN_DEV" + check_err $? "Failed to add VNI with remote" + + [ "$NOTIFY_COUNT" -eq 1 ] + check_err $? "Expected 1 notification for VNI add with remote, got $NOTIF= Y_COUNT" + + bridge -n "$NS1" vni delete vni 4000 dev "$VXLAN_DEV" + + log_test "VNI add with remote sends notification" +} + +# Deleting a VNI should produce a notification. +test_vni_del_notify() +{ + RET=3D0 + + bridge -n "$NS1" vni add vni 2000 dev "$VXLAN_DEV" + + vni_notify_check \ + bridge -n "$NS1" vni delete vni 2000 dev "$VXLAN_DEV" + check_err $? "Failed to delete VNI" + + [ "$NOTIFY_COUNT" -eq 1 ] + check_err $? "Expected 1 notification for VNI del, got $NOTIFY_COUNT" + + log_test "VNI delete sends notification" +} + +# Re-adding an existing VNI with the same attributes should not produce +# a notification. +test_vni_readd_no_notify() +{ + RET=3D0 + + bridge -n "$NS1" vni add vni 3000 dev "$VXLAN_DEV" + + vni_notify_check \ + bridge -n "$NS1" vni add vni 3000 dev "$VXLAN_DEV" + check_err $? "Failed to re-add VNI" + + [ "$NOTIFY_COUNT" -eq 0 ] + check_err $? "Expected 0 notifications for VNI re-add, got $NOTIFY_COUNT" + + bridge -n "$NS1" vni delete vni 3000 dev "$VXLAN_DEV" + + log_test "VNI re-add does not send spurious notification" +} + +# Updating an existing VNI's remote should produce a notification. +test_vni_update_remote_notify() +{ + RET=3D0 + + bridge -n "$NS1" vni add vni 5000 remote 10.0.0.2 dev "$VXLAN_DEV" + + vni_notify_check \ + bridge -n "$NS1" vni add vni 5000 remote 10.0.0.3 dev "$VXLAN_DEV" + check_err $? "Failed to update VNI remote" + + [ "$NOTIFY_COUNT" -eq 1 ] + check_err $? "Expected 1 notification for VNI remote update, got $NOTIFY_= COUNT" + + bridge -n "$NS1" vni delete vni 5000 dev "$VXLAN_DEV" + + log_test "VNI remote update sends notification" +} + +# Deleting a non-existent VNI should not produce a notification. +test_vni_del_nonexistent_no_notify() +{ + RET=3D0 + + vni_notify_check \ + bridge -n "$NS1" vni delete vni 9999 dev "$VXLAN_DEV" 2>/dev/null + + [ "$NOTIFY_COUNT" -eq 0 ] + check_err $? "Expected 0 notifications for non-existent VNI del, got $NOT= IFY_COUNT" + + log_test "Non-existent VNI delete does not send notification" +} + +trap defer_scopes_cleanup EXIT + +setup_prepare +tests_run + +exit "$EXIT_STATUS" --=20 2.43.0