From patchwork Wed Jan 16 23:06:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 1026262 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="pm4DpuO7"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43g2s24Tknz9sBQ for ; Thu, 17 Jan 2019 10:06:46 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388176AbfAPXGp (ORCPT ); Wed, 16 Jan 2019 18:06:45 -0500 Received: from mail-eopbgr00050.outbound.protection.outlook.com ([40.107.0.50]:53954 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388106AbfAPXGo (ORCPT ); Wed, 16 Jan 2019 18:06:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V8bDYH40/ZFtwqhghX3vMcHRb38n9wt92OaY3zSBfDg=; b=pm4DpuO7L7PpEGr6shovRANoX5TWMNlSnGOSfoEEZZ7t6j5G3n9Po7I/PzV/UJQ+28O14sc+RLOdaply51wrHpM1pPfrcriRmtSz6BKGu9s9r8pFu802g6U5nTz8PGyDYONcYz9X1wQwqqrHlgkrs9h9Fhz2Y0zpNdTpIQ4Ca/c= Received: from DB3PR0502MB3946.eurprd05.prod.outlook.com (52.134.71.23) by DB3PR0502MB4058.eurprd05.prod.outlook.com (52.134.68.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.26; Wed, 16 Jan 2019 23:06:34 +0000 Received: from DB3PR0502MB3946.eurprd05.prod.outlook.com ([fe80::14e8:d98f:3ec2:3981]) by DB3PR0502MB3946.eurprd05.prod.outlook.com ([fe80::14e8:d98f:3ec2:3981%2]) with mapi id 15.20.1516.019; Wed, 16 Jan 2019 23:06:34 +0000 From: Petr Machata To: "netdev@vger.kernel.org" CC: "ivecera@redhat.com" , Jiri Pirko , Ido Schimmel , "davem@davemloft.net" Subject: [PATCH net-next 03/13] vxlan: Have vxlan_fdb_replace() save original rdst value Thread-Topic: [PATCH net-next 03/13] vxlan: Have vxlan_fdb_replace() save original rdst value Thread-Index: AQHUrfAggnUHENtNe0aZJ2i0XogFCA== Date: Wed, 16 Jan 2019 23:06:34 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM5PR0601CA0043.eurprd06.prod.outlook.com (2603:10a6:203:68::29) To DB3PR0502MB3946.eurprd05.prod.outlook.com (2603:10a6:8:e::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=petrm@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [78.45.160.211] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB3PR0502MB4058; 6:sR5kPFoavDpQVpPixdeTGTa8su1frVO27aHZIKRPO0gFGi181jbmlyT19639L95/OiEZ04pYdOooj7Kty3gcwa/Hc2vj2VVIBNN0HPqoILK3IL0yoHhi76JylN/Kl1U/N+QESMSkDGPV0Q6HtHnLPuugcU/j+XCFq27BsDeDvpWjOSczVrcJD9JYfR3cfut4tVHgsxWIYw9ohja9TOKL4dpv+qzcV98MvV8jdr/DOnbqyNBsxn9YY+ZqSuCOssKUi0Os456sf1y/QlNfYCARdDfu1jSqwhaEtdiJjWibvaaLeuTs8mYbXK3nRcUnl3J9UU5M4Vuk9dOz0OWWvaPzMje9ibUULZfh7Ypr2Lkpbpl/MwEwSIeoVNXigPEY/gdqEUnfYrtQRpnWAFaNn8oRmdJWwHJtLcO8imdJD9Drsm03TPPm5w1/C/tcJ3L4c/ZEGM9+5gxD2vUhVUvVb4cQ8Q==; 5:yWaarw6QVjbUEcALWSrY7nOztUPFRmhGR7h2JdRhZrpcicWggE8bLCNa6qfukYlwWQPUge4HhOtHcX0heoBmkZJ/qe1t/9Ux/mF1V5owGVHLFFohbGwPel6aVkrcdPUE2rNfRBEvU84WdB8Oc+U7tlKP/RbGeFGHL9vpcAP28rBcApfZZhgh4+mjkdL5An4Gh7iheEzuR9i253KwZcQE/g==; 7:24QUNvXBBNzMsy6LPziUvPXxlTMGoe+lzjdtmCFSYAWdbzkRe9c1IXwQu39QEGhBgfjBdxs3sECw0DAOMG56e45qS0p3BKaUUDS2ECdVsr8k2VrXv2NZdsyxdBvdmmTxE99f0A3wSgt5VapNdhIbvw== x-ms-office365-filtering-correlation-id: bbf426eb-a70b-4062-419b-08d67c074285 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0502MB4058; x-ms-traffictypediagnostic: DB3PR0502MB4058: x-microsoft-antispam-prvs: x-forefront-prvs: 091949432C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(366004)(396003)(376002)(346002)(189003)(199004)(71200400001)(106356001)(71190400001)(105586002)(118296001)(81166006)(2351001)(1730700003)(7736002)(14444005)(256004)(5660300001)(6436002)(8936002)(305945005)(6916009)(478600001)(14454004)(5640700003)(81156014)(8676002)(53936002)(68736007)(36756003)(6512007)(99286004)(186003)(52116002)(6506007)(6116002)(3846002)(486006)(76176011)(66066001)(2906002)(6486002)(25786009)(26005)(54906003)(446003)(316002)(476003)(2616005)(11346002)(386003)(97736004)(4326008)(2501003)(86362001)(102836004); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB4058; H:DB3PR0502MB3946.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: G2pP9NSzDqnxqaf4T4//gdNegtOwQhX7ZzPErZUA0vUQTF5l4JMyX8YeAxrTgVKRPQFbnV6N5lgenICtIHjqxHGAB+DG2Jari0wLQj4F7WUgMVEfkUM1O/xeAnDdfJw6KXm/7GUiukp/NPuM5OlQTJJd488E4wVQZvQmYdGowQyaHoXnWEAIt8sv0pwwHJKktQ450DCfu+9j/vqXRtZBDoyJtggftnogptBA7Hr6mj2cY6NIiGnFH5KWBAXDdjbfydz9iAMXA+9rX+awudGJBDQJgAyTHo3myLF4+EnmWbrNCQGAyizgLrL8MqVxaLfLzdC2K1GaYSFT0GuiJSPUo5gEzoOOXvhvetcAMlPZGbqZG38KBNWm4JA76flrcL+QLU90Pd/xHQ/6KOlrOFhesQKFJ02zzaSjaSJdLlQkkig= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbf426eb-a70b-4062-419b-08d67c074285 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2019 23:06:33.8716 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB4058 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org To enable rollbacks after vetoed FDB updates, extend vxlan_fdb_replace() to take an additional argument where it should store the original values of a modified rdst. Update the sole caller. The following patch will make use of the saved value. Signed-off-by: Petr Machata --- drivers/net/vxlan.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index aeaa429229c7..1c8d8c8e0961 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -625,7 +625,7 @@ EXPORT_SYMBOL_GPL(vxlan_fdb_clear_offload); /* Replace destination of unicast mac */ static int vxlan_fdb_replace(struct vxlan_fdb *f, union vxlan_addr *ip, __be16 port, __be32 vni, - __u32 ifindex) + __u32 ifindex, struct vxlan_rdst *oldrd) { struct vxlan_rdst *rd; @@ -637,6 +637,7 @@ static int vxlan_fdb_replace(struct vxlan_fdb *f, if (!rd) return 0; + *oldrd = *rd; dst_cache_reset(&rd->dst_cache); rd->remote_ip = *ip; rd->remote_port = port; @@ -865,6 +866,7 @@ static int vxlan_fdb_update_existing(struct vxlan_dev *vxlan, { __u16 fdb_flags = (ndm_flags & ~NTF_USE); struct vxlan_rdst *rd = NULL; + struct vxlan_rdst oldrd; int notify = 0; int rc; @@ -890,7 +892,7 @@ static int vxlan_fdb_update_existing(struct vxlan_dev *vxlan, if (!(is_multicast_ether_addr(f->eth_addr) || is_zero_ether_addr(f->eth_addr))) { rc = vxlan_fdb_replace(f, ip, port, vni, - ifindex); + ifindex, &oldrd); notify |= rc; } else { return -EOPNOTSUPP;