From patchwork Wed Jan 16 23:06:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 1026259 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="LwCoy0Hd"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43g2rt3vybz9sBQ for ; Thu, 17 Jan 2019 10:06:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388029AbfAPXGg (ORCPT ); Wed, 16 Jan 2019 18:06:36 -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 S1727337AbfAPXGg (ORCPT ); Wed, 16 Jan 2019 18:06:36 -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=+SjgBfUl4sNY+MTv/bqHwLaI/W1xen4IOPBTyuYYHVE=; b=LwCoy0HdxRCvFJ53iyJ9WLshtHggcalODD68kP6evsQLH27fkWa6uQaikbY1kbtj6icmN73K1oJ88+0GybOI/NUFxTO0nuTgTLUS3OyFSqZUdrNo5ql14lBab8sJWMIuFCfrYXhocYf7s2Nm+fomsAeFtwtyGiN+SZ7e5lsLiJU= 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:29 +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:29 +0000 From: Petr Machata To: "netdev@vger.kernel.org" CC: "ivecera@redhat.com" , Jiri Pirko , Ido Schimmel , "davem@davemloft.net" Subject: [PATCH net-next 00/13] vxlan: Allow vetoing FDB operations Thread-Topic: [PATCH net-next 00/13] vxlan: Allow vetoing FDB operations Thread-Index: AQHUrfAcE7fVU/J67EOjJsdhV4pFzg== Date: Wed, 16 Jan 2019 23:06:28 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM5PR0601CA0032.eurprd06.prod.outlook.com (2603:10a6:203:68::18) 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:y4syc2EysRVQ9fbIwu3YT1HQKYG+ToL2znv8iIZGAv7DksrBOEi2Wl+CNAbX9EZ76QJUC5Em0q46q8BrGFWN7V7ZNHNj3mUsg8tdOvvWwjmI3xpZXnkAYXOur1ViPWvP6DfWIOZH8U3V9X2mGRhB7JTpImZ8fvOUwdAw14a8fxn6iXneDJn03b+O6f8/6c/fLqpWvNIW9jetBpb+0E9VTAVg0vO5c1EgTNIFLnrK4o2LblJAiokqJJZQA+Iud6OKvtoD6pdiooG2q/0G9SmKDQK+axd1oh9VQceuHIhD7WV2rF87ekL+RLmuPvITuClPo0o5eCHdvyRpeCBOnUz7CmqdVkkXZVxjnBT1oBlqLckiNpQ5kKb4WiTLuXhAu+QvUNv3JT3MMkK49azFrVdzFswieKazTzbj96bUWeYehZjGmUaZyKMAdPGiKybSvBCBsCUv7VtNQClGdYg0r/LDBA==; 5:JFxfVSGW6wkzBXjZM+sjZoONfwR1JimQ285h5jEsRcOg4wtwsxN9AeL6EemgkvNPzmgxMtRUfDk+wvI4shONsHyKZeg1bWxZ9xVLtPwCkGN6dmnLCvnKA4WptsI+It7Kx+aMLKWm1hL51W+T126UELK5Et/j+P/E1F27TTnD/pjhok/k/jzK+QJ6zMv0TYtNh24IH++7IaxkPc2MmCTXrg==; 7:t8BuyOyZsXFGxcL7o+x4GU19b5NBOw2c/yjS1duwsofV+NzBVEZWhQo9Lrbeo80OzDx47ogvLOCfNGrgtedcciVG1K5RYbFT72B0kq4Aalt+Dju9OAaaXIrdSuc8XJ3S10uYxmVcgSnjPPNg33Bnrw== x-ms-office365-filtering-correlation-id: 78e9b4d6-24d1-4595-d4a8-08d67c073f45 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)(81166006)(2351001)(1730700003)(7736002)(14444005)(256004)(5660300001)(6436002)(8936002)(305945005)(6916009)(478600001)(14454004)(5640700003)(66574012)(81156014)(8676002)(53936002)(68736007)(36756003)(6512007)(99286004)(186003)(52116002)(6506007)(6116002)(3846002)(486006)(66066001)(2906002)(6486002)(25786009)(26005)(54906003)(316002)(476003)(2616005)(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: HZ7RqxzLgIJjOMvL/Nk93rGI5LcDTEXRom7HrjdOAD3NGkdk1fd4lzWAhnWQBwjDMOELimn2mfLS88LZA+DCI6JYZyBo8QTXz+40OVcAKC+zjB7Z4/X5lVisKhvaN2/Qx/pnZAikkpyHPmRsPN8NtggAwjnU9PIve3IF6hB53XfFBjcMaV1UvuYDzhF+nKjsPlUZOL49U41f4bI3r1zFrNYfzOmonXJfFX+7lvHAQN41suDgz/7R/U74S2GZOfobvyJuiwijdyRaO57mcwFwmg+AIBBDLq/lK2PKuur8PY5Flq7kuykMQbLildpjDdD/U+xm55uQjAHOknwhrZMnyUu3hrB7rtli3a/+KfSkqxS2CvMDRaoQhwsIANYf7cmCxLY2oftLYItVkUiG7D8n1kkoC4djqTP4OkXaL5c3/bg= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78e9b4d6-24d1-4595-d4a8-08d67c073f45 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2019 23:06:28.4227 (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 mlxsw does not implement handling of the more advanced types of VXLAN FDB entries. In order to provide visibility to users, it is important to be able to reject such FDB entries, ideally with an explanation passed in extended ack. This patch set implements this. In patches #1-#4, vxlan is gradually transformed to support vetoing of FDB entries added (or modified) through vxlan_fdb_update(), and the default FDB entry added in __vxlan_dev_create(). Patches #5-#7 deal with vxlan_changelink(). The existing code recognizes that vxlan_fdb_update() may fail, but doesn't attempt to keep things intact if it does. These patches change the function in several steps to gracefully handle vetoes (or other failures). Then in patches #8-#11, extack arguments are added, respectively, to ndo_fdb_add(), mlxsw's mlxsw_sp_nve_ops.fdb_replay, the functions that connect to the VXLAN vetoing code, and call_switchdev_notifiers(). Note that call_switchdev_blocking_notifiers() already does support extack. Finally in patch #12, mlxsw is extended to add extack messages to rejected FDB entries. In patch #13, the functionality is tested. Petr Machata (13): vxlan: Move up vxlan_fdb_free(), vxlan_fdb_destroy() vxlan: Split vxlan_fdb_update() in two vxlan: Have vxlan_fdb_replace() save original rdst value vxlan: Allow vetoing of FDB notifications vxlan: changelink: Inline vxlan_dev_configure() vxlan: changelink: Postpone vxlan_config_apply() vxlan: changelink: Delete remote after update net: Add extack argument to ndo_fdb_add() mlxsw: Add extack to mlxsw_sp_nve_ops.fdb_replay vxlan: Add extack to switchdev operations switchdev: Add extack argument to call_switchdev_notifiers() mlxsw: spectrum: Add extack messages to VXLAN FDB rejection selftests: mlxsw: Test veto of unsupported VXLAN FDBs Documentation/networking/switchdev.txt | 2 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 3 +- drivers/net/ethernet/intel/ice/ice_main.c | 3 +- drivers/net/ethernet/intel/igb/igb_main.c | 3 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +- drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c | 6 +- drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.h | 3 +- .../ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c | 6 +- .../net/ethernet/mellanox/mlxsw/spectrum_router.c | 6 +- .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 37 ++- drivers/net/ethernet/mscc/ocelot.c | 3 +- drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 3 +- drivers/net/ethernet/rocker/rocker_main.c | 2 +- drivers/net/ethernet/rocker/rocker_ofdpa.c | 4 +- drivers/net/macvlan.c | 3 +- drivers/net/vxlan.c | 352 +++++++++++++-------- include/linux/netdevice.h | 6 +- include/net/switchdev.h | 6 +- include/net/vxlan.h | 6 +- net/bridge/br_fdb.c | 3 +- net/bridge/br_private.h | 3 +- net/bridge/br_switchdev.c | 2 +- net/core/rtnetlink.c | 5 +- net/dsa/dsa_priv.h | 3 +- net/dsa/slave.c | 5 +- net/switchdev/switchdev.c | 5 +- .../selftests/drivers/net/mlxsw/vxlan_fdb_veto.sh | 126 ++++++++ 27 files changed, 421 insertions(+), 188 deletions(-) create mode 100755 tools/testing/selftests/drivers/net/mlxsw/vxlan_fdb_veto.sh