From patchwork Wed Jan 23 14:32:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 1029984 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="ZZ7Buoue"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43l7734KnVz9s4s for ; Thu, 24 Jan 2019 01:33:03 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727114AbfAWOdC (ORCPT ); Wed, 23 Jan 2019 09:33:02 -0500 Received: from mail-eopbgr140089.outbound.protection.outlook.com ([40.107.14.89]:49122 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726435AbfAWOdB (ORCPT ); Wed, 23 Jan 2019 09:33:01 -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=S9SoWdeCuHZCXNYUwd9JYvo4+dFO4lElwNGIbzJOr5c=; b=ZZ7Buoue4kLv2FIG4J7U9yW6xu+h20gCKiD7CWb7xKWXGNKph91xz/NIRj1Se9yGQyz4WWPyqHVPr4BXOFbYjmTyFrFSCyLLuUUmZr4TNfJAsXSoJ7XVVz3QmmFDad5EI8PjLfXJOZkalzgJQUvfvLkHMgX/bC/qzXPimFsSYR4= Received: from DB7PR05MB4940.eurprd05.prod.outlook.com (20.176.235.152) by DB7PR05MB5340.eurprd05.prod.outlook.com (20.178.42.78) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.27; Wed, 23 Jan 2019 14:32:55 +0000 Received: from DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07]) by DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07%5]) with mapi id 15.20.1537.031; Wed, 23 Jan 2019 14:32:55 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Petr Machata , mlxsw , Ido Schimmel Subject: [PATCH net-next 1/4] mlxsw: spectrum: Expose functions to create and destroy underlay RIF Thread-Topic: [PATCH net-next 1/4] mlxsw: spectrum: Expose functions to create and destroy underlay RIF Thread-Index: AQHUsyiHsR5y+n/b+UiyqDWrIfSzcw== Date: Wed, 23 Jan 2019 14:32:55 +0000 Message-ID: <20190123143217.17735-2-idosch@mellanox.com> References: <20190123143217.17735-1-idosch@mellanox.com> In-Reply-To: <20190123143217.17735-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P193CA0009.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:3e::22) To DB7PR05MB4940.eurprd05.prod.outlook.com (2603:10a6:10:1e::24) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB5340; 6:0C4rHjOyuvJ3stpgGfE966UC44HfrdQNcNysIAXacqfPbhm/Y/gxgQQWGAOeOt343BNbQwUPDxe4/V/xE57jDhNr2AvdRV7MIZUiQrsI/AN6BKPLfj/VhGeuC77FpMgyYMjYmF0CPU5IitruTRKD1IugiBxkzrZP/CrK4Jq2BhJtQzxUPEJs4UscuGD7Kx0/l49QX/d+jhRD+M+9iApqcSus8ys7zrU6JnaCzTyHX8wvZud9XUE+W68WHMpm1NzZ19inbCHtGLOqXNcDN8Mfqys9TBUnU4uWklfrWus1nuUccWIAYJQ62dr1kzLJ64/CEogJM4f2AcVjq9t7pkR+OUIiiaryhp5o632+5GuenA82w+4jMYlyxxGT63SqFG98wm9H3YlQNuqCSK4vXWamLwneAjKiM4D888ftI9tcIA6nwyVAWkd8pAMHEygTteliY0Kn6MHicTBSeSTZujFhiQ==; 5:y28p/cJfMUvOOIdlAtNhtrwSBNQH1bOcpUsG8Y29dcBTRqnmPc44Eb9aBg0b0YjbQud3B5GB5n9SsONtiXS7Ty8QMY6/mqzlJIr5zCwMl8ml9R61kG0qLU5xbVXBOn/CZ2AKv3uiTkoywBJp1Ez/ESWmtMgGCHy5aQhbJXDK5yevod+oAEFrwQ3OCbkA0vK+/w+kzHldUbKx83vGpkzs0w==; 7:objQp45KS9B8oVj1Cs5uqxuXp409M0JJI7VIQBrG13rdDzFdbe1HUUr3zcJjvG/bg3xiHTARRhuRxpIs30x/DYSjsYqTUhq77iHZ5ZTm/jZtRRcFdTLUDApZ6ZSNadVcx5ZVAVEjX9GR/OxI4ccWxg== x-ms-office365-filtering-correlation-id: 4fe35703-aafb-4afa-dadc-08d6813fa986 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR05MB5340; x-ms-traffictypediagnostic: DB7PR05MB5340: x-microsoft-antispam-prvs: x-forefront-prvs: 0926B0E013 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(136003)(366004)(346002)(396003)(199004)(189003)(476003)(2906002)(2616005)(66066001)(36756003)(66574012)(1076003)(68736007)(14454004)(99286004)(71200400001)(86362001)(478600001)(71190400001)(2501003)(53936002)(4326008)(6116002)(102836004)(107886003)(2351001)(25786009)(76176011)(54906003)(81166006)(81156014)(52116002)(1730700003)(6506007)(386003)(8676002)(97736004)(50226002)(8936002)(186003)(5640700003)(6916009)(11346002)(446003)(486006)(256004)(6512007)(105586002)(106356001)(26005)(6486002)(6436002)(3846002)(7736002)(316002)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB5340; H:DB7PR05MB4940.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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: xkOldk/BvXqOlp2SdxGmjTgmP/DcCXPY4+7HlquH77HDgxOYWZhMr0ppKqTR58075Wc3qbhUg/n8CU71fPkYFqqrX6jsyLqG7HUQoFChGfG7mx13ivN78jBI8pFRzjp0yTpvM8X+p660nVJf77CnnswXjmIseurdlF6tVCcfhBigQpvrHVJql2q508W42Pbnn4NDbsGk0XuwwVWmH5C+GJDOBTrSozByEz/THxKelKBd543vuuDvbJYI9Fgl7g9Cor1mT3VjUqe20iv6tE8BQpkk5eeoctIorImK4pkWnMzFsKnRby7lBPXZamch1Tj23fZuuXWWmOXwaFHczk9U+pdZbpIeTQwy24owvN+o/HCYy/2+2sOxyotqjCbcFxUq3rJ0brg57JImAYnkvTrw6SB5dvkS1980p255Zdw1zFE= MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4fe35703-aafb-4afa-dadc-08d6813fa986 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2019 14:32:53.9895 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5340 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In Spectrum-2, instead of providing the ID of the virtual router (VR) where NVE underlay lookups will occur as in Spectrum-1, the ID of a router interface (RIF) in this VR is required. Expose functions to create and destroy such a RIF. Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata --- .../net/ethernet/mellanox/mlxsw/spectrum.h | 3 ++ .../ethernet/mellanox/mlxsw/spectrum_router.c | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h index 1fa5c81b209f..9384b108c8c2 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h @@ -507,6 +507,9 @@ void mlxsw_sp_router_nve_demote_decap(struct mlxsw_sp *mlxsw_sp, u32 ul_tb_id, const union mlxsw_sp_l3addr *ul_sip); int mlxsw_sp_router_tb_id_vr_id(struct mlxsw_sp *mlxsw_sp, u32 tb_id, u16 *vr_id); +int mlxsw_sp_router_ul_rif_get(struct mlxsw_sp *mlxsw_sp, u32 ul_tb_id, + u16 *ul_rif_index); +void mlxsw_sp_router_ul_rif_put(struct mlxsw_sp *mlxsw_sp, u16 ul_rif_index); /* spectrum_kvdl.c */ enum mlxsw_sp_kvdl_entry_type { diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index 0949404a28e5..230e1f6e192b 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -7595,6 +7595,34 @@ static void mlxsw_sp_ul_rif_put(struct mlxsw_sp_rif *ul_rif) mlxsw_sp_vr_put(mlxsw_sp, vr); } +int mlxsw_sp_router_ul_rif_get(struct mlxsw_sp *mlxsw_sp, u32 ul_tb_id, + u16 *ul_rif_index) +{ + struct mlxsw_sp_rif *ul_rif; + + ASSERT_RTNL(); + + ul_rif = mlxsw_sp_ul_rif_get(mlxsw_sp, ul_tb_id, NULL); + if (IS_ERR(ul_rif)) + return PTR_ERR(ul_rif); + *ul_rif_index = ul_rif->rif_index; + + return 0; +} + +void mlxsw_sp_router_ul_rif_put(struct mlxsw_sp *mlxsw_sp, u16 ul_rif_index) +{ + struct mlxsw_sp_rif *ul_rif; + + ASSERT_RTNL(); + + ul_rif = mlxsw_sp->router->rifs[ul_rif_index]; + if (WARN_ON(!ul_rif)) + return; + + mlxsw_sp_ul_rif_put(ul_rif); +} + static int mlxsw_sp2_rif_ipip_lb_configure(struct mlxsw_sp_rif *rif) { From patchwork Wed Jan 23 14:32:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 1029983 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="UY+ON3RU"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43l7714ybzz9s4s for ; Thu, 24 Jan 2019 01:33:01 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726972AbfAWOdA (ORCPT ); Wed, 23 Jan 2019 09:33:00 -0500 Received: from mail-eopbgr00083.outbound.protection.outlook.com ([40.107.0.83]:49032 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725995AbfAWOdA (ORCPT ); Wed, 23 Jan 2019 09:33:00 -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=hcY2M7TWuqWq+vzzHI7r0EsQflUYyYbpDfC6/mCvGVY=; b=UY+ON3RUYvV7eYBqWIBXOmciyHDnqas1A8yBnu4RkhLt7grgmdMvyR8D0pW5PnpZQtf6I4IFW4Kqk4+pc1n42GklW7nmvKXjv5Veoge7Ak0+JAve9xmwODYrDJbydA5CCZkbdyGDQSxy7jmn6/LAbSnTIhC8qnMyClEavKj9e4s= Received: from DB7PR05MB4940.eurprd05.prod.outlook.com (20.176.235.152) by DB7PR05MB5721.eurprd05.prod.outlook.com (20.178.105.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.26; Wed, 23 Jan 2019 14:32:56 +0000 Received: from DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07]) by DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07%5]) with mapi id 15.20.1537.031; Wed, 23 Jan 2019 14:32:56 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Petr Machata , mlxsw , Ido Schimmel Subject: [PATCH net-next 2/4] mlxsw: spectrum_nve: Breakout common code to a common function Thread-Topic: [PATCH net-next 2/4] mlxsw: spectrum_nve: Breakout common code to a common function Thread-Index: AQHUsyiI5sX4d+bV6EKtspa19b5Opg== Date: Wed, 23 Jan 2019 14:32:56 +0000 Message-ID: <20190123143217.17735-3-idosch@mellanox.com> References: <20190123143217.17735-1-idosch@mellanox.com> In-Reply-To: <20190123143217.17735-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P193CA0009.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:3e::22) To DB7PR05MB4940.eurprd05.prod.outlook.com (2603:10a6:10:1e::24) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB5721; 6:CLMFgBsRGJ80wKcumW1D0H0E7TT12AN2SaM36xfxeM1VF7GLPrOCYMkYSq24AQ3nwPSucqmaS3MQqM/af9EWQJIyOn6A7KQ7qSS2tlNeOurupW7jS4Aag7YvzpNYG+oKwoVla9+Q8XDRqHWs16XQjKsyyR73jUD2WX3lZrmHR/hG8p7z5mYFEokfnDpmVKjkI86wc52srOeoydYu3UUBrBYjWtTDFS5+5irhGtt+remqDEuldcchduooZmrJWWVvCoY6D+lGmB8rdTuwbypqP/mIjRN2a6Aw52CE0232Wjgqeh/YOrmTtMJi/pEWCtiV2lt9pWSwzc1wKhvKQToJogjRa4PfY5XTXCaazIqDwKYoANh6XEr4hifIATB+TeCQYTCF+YimGi/GPhZkwuK0L33oOISl0a13GuxpkmOn5/sDDoGmnz6SssE/CpLpls/fpUv8UJzUt54Tp1l54Fyq4Q==; 5:hGI5gvBdY4W7iwHUREzhd6njT+Ohlq+8RmM/HMyZEzU+7Hs6AvVum4Cp9p22GZUECW4pdng+MZKYRfQcr4Qya1d2e90T9fKqln+OfZOQ7ekaf47QjsSxKIm6PKybikepzreQaihKaBSSDT5yqDHY39Su9HgfsMXKMWWzjtQ4HXJjIXBkZziXL8fxaMrWd7ysQtH+C4WsPeXrH4hZU1T9KA==; 7:RChZglBgK9eOmWGo2WDd1lEGnLOgNRCGRCXipeQQZqqOuk6KmPeawMnL78OcW9nPIN/B/o7gbzyl22X5TvIi2I/Cofq5cIFbSHSC4i4E3Vyh/x+iy1BGbZV8tKRyXB37c+jAcjuxik9BT1QYFXTrjA== x-ms-office365-filtering-correlation-id: 78ff2a1d-8081-4136-5c45-08d6813faa4a x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR05MB5721; x-ms-traffictypediagnostic: DB7PR05MB5721: x-microsoft-antispam-prvs: x-forefront-prvs: 0926B0E013 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(346002)(396003)(376002)(39860400002)(136003)(189003)(199004)(53936002)(6512007)(1076003)(8936002)(66574012)(50226002)(6486002)(8676002)(1730700003)(68736007)(81156014)(97736004)(6506007)(5640700003)(14454004)(386003)(305945005)(7736002)(2906002)(54906003)(81166006)(25786009)(256004)(76176011)(6436002)(186003)(86362001)(102836004)(66066001)(11346002)(6916009)(446003)(2351001)(4326008)(99286004)(316002)(71200400001)(71190400001)(486006)(106356001)(105586002)(2616005)(476003)(26005)(52116002)(36756003)(2501003)(478600001)(6116002)(3846002)(107886003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB5721; H:DB7PR05MB4940.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: PMxCKouJ464Cz9UGjkfO+Gy9N26TfBhrd5HNlrODTJQnelWOzME4lGyYRsVyQHAiilRtmXKsf6GLA+skIhs+oat3FN1CRhwMVdvgw5Y/eP+OQvoFi603xBuJ5YoEL45M74TbzF75daOWR1cFQfxf5miQeoV2dIRENo1LvTajueInRLEw/iUwoAR+9cDoR6srs7U20Rz9ndxogSrroqH0a+7mUe4gBBuf1M3TR1AMpqeAmMkAsqMyWsBTDbrksCISUZq5cRviQuFmB/HT7I233AlW1Tp1W9GSYAXDOqmzqt6sEG8kqAV85Gz9T5oYVEbZKir/XUB9ahpWsWQwuxgcD8QTY70/QQ8Ykdp8UIjUZRYShUHz45Ay7HonprEEl5zxqRXHit0PNQCW+JRt45D4kRCWXh+PjPyJp4phrE3we8U= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78ff2a1d-8081-4136-5c45-08d6813faa4a X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2019 14:32:55.2707 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5721 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The configuration of a VXLAN tunnel in Spectrum-1 and Spectrum-2 is largely the same. To avoid code duplication, breakout the common parts to a common function that can be invoked from the ASIC-specific code. Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata --- .../mellanox/mlxsw/spectrum_nve_vxlan.c | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c index 9ba0b83bd949..60f88e5642e1 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c @@ -112,13 +112,30 @@ static int mlxsw_sp_nve_parsing_set(struct mlxsw_sp *mlxsw_sp, return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(mprs), mprs_pl); } +static void +mlxsw_sp_nve_vxlan_config_prepare(char *tngcr_pl, + const struct mlxsw_sp_nve_config *config) +{ + u8 udp_sport; + + mlxsw_reg_tngcr_pack(tngcr_pl, MLXSW_REG_TNGCR_TYPE_VXLAN, true, + config->ttl); + /* VxLAN driver's default UDP source port range is 32768 (0x8000) + * to 60999 (0xee47). Set the upper 8 bits of the UDP source port + * to a random number between 0x80 and 0xee + */ + get_random_bytes(&udp_sport, sizeof(udp_sport)); + udp_sport = (udp_sport % (0xee - 0x80 + 1)) + 0x80; + mlxsw_reg_tngcr_nve_udp_sport_prefix_set(tngcr_pl, udp_sport); + mlxsw_reg_tngcr_usipv4_set(tngcr_pl, be32_to_cpu(config->ul_sip.addr4)); +} + static int mlxsw_sp1_nve_vxlan_config_set(struct mlxsw_sp *mlxsw_sp, const struct mlxsw_sp_nve_config *config) { char tngcr_pl[MLXSW_REG_TNGCR_LEN]; u16 ul_vr_id; - u8 udp_sport; int err; err = mlxsw_sp_router_tb_id_vr_id(mlxsw_sp, config->ul_tb_id, @@ -126,18 +143,9 @@ mlxsw_sp1_nve_vxlan_config_set(struct mlxsw_sp *mlxsw_sp, if (err) return err; - mlxsw_reg_tngcr_pack(tngcr_pl, MLXSW_REG_TNGCR_TYPE_VXLAN, true, - config->ttl); - /* VxLAN driver's default UDP source port range is 32768 (0x8000) - * to 60999 (0xee47). Set the upper 8 bits of the UDP source port - * to a random number between 0x80 and 0xee - */ - get_random_bytes(&udp_sport, sizeof(udp_sport)); - udp_sport = (udp_sport % (0xee - 0x80 + 1)) + 0x80; - mlxsw_reg_tngcr_nve_udp_sport_prefix_set(tngcr_pl, udp_sport); + mlxsw_sp_nve_vxlan_config_prepare(tngcr_pl, config); mlxsw_reg_tngcr_learn_enable_set(tngcr_pl, config->learning_en); mlxsw_reg_tngcr_underlay_virtual_router_set(tngcr_pl, ul_vr_id); - mlxsw_reg_tngcr_usipv4_set(tngcr_pl, be32_to_cpu(config->ul_sip.addr4)); return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(tngcr), tngcr_pl); } From patchwork Wed Jan 23 14:32:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 1029985 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="rYzdKbg3"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43l7763DBFz9s4s for ; Thu, 24 Jan 2019 01:33:06 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727182AbfAWOdF (ORCPT ); Wed, 23 Jan 2019 09:33:05 -0500 Received: from mail-eopbgr00083.outbound.protection.outlook.com ([40.107.0.83]:49032 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726127AbfAWOdB (ORCPT ); Wed, 23 Jan 2019 09:33:01 -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=N+cF+is1IkqZVyfTAs5oVfRpokc2qbv8XGZiC4eh6/A=; b=rYzdKbg3xf5wVH+hxHaXbnKKIQatMs51hg4Dv5CVUbDrG/bVSv1wd4IQ8/iap2As6QiwsxG8WrTN8PXnChN3VBReODCMUSw1fNf+zn2+YpOJUSvOAqA8YHmNhPDkE121cDSub2eRRgxRsO/hoeegxBfoagS1jKJN57xXuIaP56o= Received: from DB7PR05MB4940.eurprd05.prod.outlook.com (20.176.235.152) by DB7PR05MB5721.eurprd05.prod.outlook.com (20.178.105.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.26; Wed, 23 Jan 2019 14:32:57 +0000 Received: from DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07]) by DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07%5]) with mapi id 15.20.1537.031; Wed, 23 Jan 2019 14:32:57 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Petr Machata , mlxsw , Ido Schimmel Subject: [PATCH net-next 3/4] mlxsw: spectrum_nve: Add support for VXLAN on Spectrum-2 Thread-Topic: [PATCH net-next 3/4] mlxsw: spectrum_nve: Add support for VXLAN on Spectrum-2 Thread-Index: AQHUsyiIX9te5n0Po0KeHy3Zwtg+Kg== Date: Wed, 23 Jan 2019 14:32:57 +0000 Message-ID: <20190123143217.17735-4-idosch@mellanox.com> References: <20190123143217.17735-1-idosch@mellanox.com> In-Reply-To: <20190123143217.17735-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P193CA0009.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:3e::22) To DB7PR05MB4940.eurprd05.prod.outlook.com (2603:10a6:10:1e::24) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB5721; 6:dByLHmrtQMfDRwOqPgelWTmpEiiRlvkWZwTR6ii0S4RHbMBTzUkpKPcaFuAiJh7LcRSvqRWhBEJS6nKgKk9nvE/BCLuobDY84h+dvtAypFPdCSgekOq3Q7KDOAKccF2RpQiPJQTpmCNgkFcOHiEe2ofNDfoPEA35Qszkav2/ya4gTH9L1Cmkmea5Eb/nZCTw0ni2g7mNOK3K0kVAG0UXLt9v3nA4xFyMLC1psxmhv+iB20qAwRktmuzFaG79YNmaLZ8RIa8geFILcbXrj+O0lw5FXWLbR+vZsvnonKpKdjZ+ThPkyEUc9AbR3ojAuBInleXdKkeoXV3HMlKXiOUdBlrvmm5g2pg3vvYHU1+/ehpvDsqCoBNLtOUCUFor+k/50xtUGSqlWvfakwybs5N7Tm+9asMcIU8B0t/AG9efp+nWCRoreTH7eZZ9eC7SUIHltFjEXjJHU4LMq2G2l1EXVQ==; 5:Jc0wJMA+dG1MliyNs7l2vZIDy1umcCW167EijvIYGgeRWHKpT5HwzCDpsn+aOMYdj6d9NVf3BQ9LDUwEUCMYxJ7HrzQ1rO6egFW/XUaQ/vO+whgcIuLZcnQiNw07XzhR/aKCdPaO/ZWoYsdYnSrX74GZdxmD2CYlahPajl1WCN1AwBRpG7QNSjVMKk0z2X7GZHgFM51QFpXK5pkHcBDAww==; 7:LPxWsjV3NlOToERei4jvFQoiN9PoEg//I6ee1BwomhiKjkDcuPtdykM8IZtccMHzoAjVJG82GQhQP7MfUZV2mGUXK0izdJIothNmIWjSqSM58DmWPnS38v1d7NanceZAXJOhwcybXA/0So58vz5aPQ== x-ms-office365-filtering-correlation-id: 16615f9e-b500-44e5-5422-08d6813fab04 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR05MB5721; x-ms-traffictypediagnostic: DB7PR05MB5721: x-microsoft-antispam-prvs: x-forefront-prvs: 0926B0E013 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(346002)(396003)(376002)(39860400002)(136003)(189003)(199004)(53936002)(6512007)(1076003)(8936002)(66574012)(50226002)(6486002)(8676002)(1730700003)(68736007)(81156014)(97736004)(6506007)(5640700003)(14454004)(386003)(305945005)(7736002)(2906002)(54906003)(81166006)(25786009)(14444005)(256004)(76176011)(6436002)(186003)(86362001)(102836004)(66066001)(11346002)(6916009)(446003)(2351001)(4326008)(99286004)(316002)(71200400001)(71190400001)(486006)(106356001)(105586002)(2616005)(476003)(26005)(52116002)(36756003)(2501003)(478600001)(6116002)(3846002)(107886003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB5721; H:DB7PR05MB4940.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: IbC8CFSS3jMxRoaJZMJgtGr6U9qcYijLKSmSd9nK8K74FQlOx4yjXDbLvy0q+6y/DoqIbCVRb5yF9Tg5B1ALrzxlbbHVNjI2h2QPRVx9uTuNwYLQn0LEqPZBR7hNGWuainM8XHmRWkjuAly4Wm8mkPqfzsMRulAy75CyE58+gcBtCQsn1INgCM3yCpgFRBUOgbSKLZRgkwAfVfdiYKPJjKZt4QHV1G58mMvPRGB3+pNrVDFYG5DlIjyHB4uY3ZE/C/yS2EEhLmQOS0cSXukXDWIc2Nnl3i6JsoRGS/KLnd7DxMRea014T8iWE5HAaCYfsNWdrt1E0UOnZeiI1LhBZI9FfOi7vZBl4rhQwVw2NhKDQrXJShdkN4VNM7bja/yrvYX5FPf6UiNlhrrcuNei+sYc5EBwxsKiXBilCCuYyf4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16615f9e-b500-44e5-5422-08d6813fab04 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2019 14:32:56.5051 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5721 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Spectrum-1 and Spectrum-2 are largely backward compatible with regards to VXLAN. One difference - as explained in previous patch - is that an underlay RIF needs to be specified instead of an underlay VR during NVE initialization. This is accomplished by calling the relevant function that returns the index of such a RIF based on the table ID (RT_TABLE_MAIN) where underlay look up occurs. The second difference is that VXLAN learning (snooping) is controlled via a different register (TNPC). Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata --- .../ethernet/mellanox/mlxsw/spectrum_nve.h | 1 + .../mellanox/mlxsw/spectrum_nve_vxlan.c | 110 +++++++++++++++++- 2 files changed, 110 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.h index 20d99b41611d..0035640156a1 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.h @@ -28,6 +28,7 @@ struct mlxsw_sp_nve { unsigned int num_nve_tunnels; /* Protected by RTNL */ unsigned int num_max_mc_entries[MLXSW_SP_L3_PROTO_MAX]; u32 tunnel_index; + u16 ul_rif_index; /* Reserved for Spectrum */ }; struct mlxsw_sp_nve_ops { diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c index 60f88e5642e1..91b3c71bf031 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c @@ -7,6 +7,7 @@ #include #include "reg.h" +#include "spectrum.h" #include "spectrum_nve.h" /* Eth (18B) | IPv6 (40B) | UDP (8B) | VxLAN (8B) | Eth (14B) | IPv6 (40B) @@ -254,14 +255,121 @@ static bool mlxsw_sp2_nve_vxlan_can_offload(const struct mlxsw_sp_nve *nve, return false; } +static bool mlxsw_sp2_nve_vxlan_learning_set(struct mlxsw_sp *mlxsw_sp, + bool learning_en) +{ + char tnpc_pl[MLXSW_REG_TNPC_LEN]; + + mlxsw_reg_tnpc_pack(tnpc_pl, MLXSW_REG_TNPC_TUNNEL_PORT_NVE, + learning_en); + return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(tnpc), tnpc_pl); +} + +static int +mlxsw_sp2_nve_vxlan_config_set(struct mlxsw_sp *mlxsw_sp, + const struct mlxsw_sp_nve_config *config) +{ + char tngcr_pl[MLXSW_REG_TNGCR_LEN]; + u16 ul_rif_index; + int err; + + err = mlxsw_sp_router_ul_rif_get(mlxsw_sp, config->ul_tb_id, + &ul_rif_index); + if (err) + return err; + mlxsw_sp->nve->ul_rif_index = ul_rif_index; + + err = mlxsw_sp2_nve_vxlan_learning_set(mlxsw_sp, config->learning_en); + if (err) + goto err_vxlan_learning_set; + + mlxsw_sp_nve_vxlan_config_prepare(tngcr_pl, config); + mlxsw_reg_tngcr_underlay_rif_set(tngcr_pl, ul_rif_index); + + err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(tngcr), tngcr_pl); + if (err) + goto err_tngcr_write; + + return 0; + +err_tngcr_write: + mlxsw_sp2_nve_vxlan_learning_set(mlxsw_sp, false); +err_vxlan_learning_set: + mlxsw_sp_router_ul_rif_put(mlxsw_sp, ul_rif_index); + return err; +} + +static void mlxsw_sp2_nve_vxlan_config_clear(struct mlxsw_sp *mlxsw_sp) +{ + char tngcr_pl[MLXSW_REG_TNGCR_LEN]; + + mlxsw_reg_tngcr_pack(tngcr_pl, MLXSW_REG_TNGCR_TYPE_VXLAN, false, 0); + mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(tngcr), tngcr_pl); + mlxsw_sp2_nve_vxlan_learning_set(mlxsw_sp, false); + mlxsw_sp_router_ul_rif_put(mlxsw_sp, mlxsw_sp->nve->ul_rif_index); +} + +static int mlxsw_sp2_nve_vxlan_rtdp_set(struct mlxsw_sp *mlxsw_sp, + unsigned int tunnel_index, + u16 ul_rif_index) +{ + char rtdp_pl[MLXSW_REG_RTDP_LEN]; + + mlxsw_reg_rtdp_pack(rtdp_pl, MLXSW_REG_RTDP_TYPE_NVE, tunnel_index); + mlxsw_reg_rtdp_egress_router_interface_set(rtdp_pl, ul_rif_index); + + return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rtdp), rtdp_pl); +} + static int mlxsw_sp2_nve_vxlan_init(struct mlxsw_sp_nve *nve, const struct mlxsw_sp_nve_config *config) { - return -EOPNOTSUPP; + struct mlxsw_sp *mlxsw_sp = nve->mlxsw_sp; + int err; + + err = mlxsw_sp_nve_parsing_set(mlxsw_sp, + MLXSW_SP_NVE_VXLAN_PARSING_DEPTH, + config->udp_dport); + if (err) + return err; + + err = mlxsw_sp2_nve_vxlan_config_set(mlxsw_sp, config); + if (err) + goto err_config_set; + + err = mlxsw_sp2_nve_vxlan_rtdp_set(mlxsw_sp, nve->tunnel_index, + nve->ul_rif_index); + if (err) + goto err_rtdp_set; + + err = mlxsw_sp_router_nve_promote_decap(mlxsw_sp, config->ul_tb_id, + config->ul_proto, + &config->ul_sip, + nve->tunnel_index); + if (err) + goto err_promote_decap; + + return 0; + +err_promote_decap: +err_rtdp_set: + mlxsw_sp2_nve_vxlan_config_clear(mlxsw_sp); +err_config_set: + mlxsw_sp_nve_parsing_set(mlxsw_sp, MLXSW_SP_NVE_DEFAULT_PARSING_DEPTH, + config->udp_dport); + return err; } static void mlxsw_sp2_nve_vxlan_fini(struct mlxsw_sp_nve *nve) { + struct mlxsw_sp_nve_config *config = &nve->config; + struct mlxsw_sp *mlxsw_sp = nve->mlxsw_sp; + + mlxsw_sp_router_nve_demote_decap(mlxsw_sp, config->ul_tb_id, + config->ul_proto, &config->ul_sip); + mlxsw_sp2_nve_vxlan_config_clear(mlxsw_sp); + mlxsw_sp_nve_parsing_set(mlxsw_sp, MLXSW_SP_NVE_DEFAULT_PARSING_DEPTH, + config->udp_dport); } const struct mlxsw_sp_nve_ops mlxsw_sp2_nve_vxlan_ops = { From patchwork Wed Jan 23 14:32:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 1029986 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="pK68e0rF"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43l78F4BTgz9s4s for ; Thu, 24 Jan 2019 01:34:05 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727001AbfAWOeE (ORCPT ); Wed, 23 Jan 2019 09:34:04 -0500 Received: from mail-eopbgr00083.outbound.protection.outlook.com ([40.107.0.83]:49032 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726435AbfAWOdE (ORCPT ); Wed, 23 Jan 2019 09:33:04 -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=OfcYLNYTEqzuK+nCjTyFH25D/kNHCYTgo0Drx0HR9vE=; b=pK68e0rFz/hczJG+nCVeEtvqf/Go4D75YVc+a9T40WM1eEtcop+dgjfbxHg6BInuVwb/DArlFhA4d645vsBiFF3NSqjq7nQR5rRqt70UsaIHfV0pU6wzpbBdL3PZGckjB1CVfZEH1QYBjasnXmGyBH0PB8XomdI4/O6ReUaTJE8= Received: from DB7PR05MB4940.eurprd05.prod.outlook.com (20.176.235.152) by DB7PR05MB5721.eurprd05.prod.outlook.com (20.178.105.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.26; Wed, 23 Jan 2019 14:32:59 +0000 Received: from DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07]) by DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07%5]) with mapi id 15.20.1537.031; Wed, 23 Jan 2019 14:32:59 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Petr Machata , mlxsw , Ido Schimmel Subject: [PATCH net-next 4/4] mlxsw: spectrum_nve: Enable VXLAN on Spectrum-2 Thread-Topic: [PATCH net-next 4/4] mlxsw: spectrum_nve: Enable VXLAN on Spectrum-2 Thread-Index: AQHUsyiJI8gsTpE5EE2Vha1oBsbbfQ== Date: Wed, 23 Jan 2019 14:32:59 +0000 Message-ID: <20190123143217.17735-5-idosch@mellanox.com> References: <20190123143217.17735-1-idosch@mellanox.com> In-Reply-To: <20190123143217.17735-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P193CA0009.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:3e::22) To DB7PR05MB4940.eurprd05.prod.outlook.com (2603:10a6:10:1e::24) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB5721; 6:dV9ErCxT6m8g9mqRH31WcuIr9xeRCObKIgAVovNDEDx5VvCr6MrKvO2Z9Dg2Vzy8DLdOMNR0ApH08TSBT+/3Ir8Xhm64jA0VUhh+vnhmhdXpR9cGMRgSoUG31WMNvqrKv2qjOSbtkJJB9+SBLASTnLl6iQEcldVtUPxXMuNgpXs4jSjezba414/qu4Nr7IjWlHM3eJidzXJg73Zj638r1OCTRNFlqWK0LbSTyAVJWI/KUJRPWnXJVROs+x0PI61ZDbqwINXUVu/IOCz00urIEI+w6SMuDGxHgZJpoC7N1+hXwuRxcNlAsMTKWi0Vt5TGrgOIGks/aEFc+s9ujeuNAJGqq9P/4Kx99BdEvTHRJlqFJm+T918cf86OPntUVb0ufjeAjIND0Tj2KR5D+V3V28UB3B+01iKEePO5axKp9CZvxbQJn8QWXEZhaL+3d/VSiIu3ciZXORrdr4qZhIXGkA==; 5:jGyuCXg6LyzxLahyXhAxew7EDYh96mP8vSpdMRUgb63wTOwOfCa3KUYZ+p/PjVHXuEWGuxdde2JmgatpakxW+4duy5OK8xhcl7uT0Ep2NYMi1+BY0tuMgzJY1pcQnKVj/1Zf3a2WXDtsz94NWp1jtwiYmVRfpFUYTc4meGtbRj78bnyXHlD6rMezXYPoxBD1sy2P7Tk3di0ktmHrBu83/g==; 7:djRvhr8LAwW3acgO3ZxQjouGkymSayoS1p+KBDbo8LNr4RbedsNqL80YapvdDLVcHs7mDmavo6JfPQf6lQ447oy41JMT1fT2opyUPiOiwLWzABAh6qFkoNfLWfGBFw15kFI/Dxdp/RZpmuMWDO2u7g== x-ms-office365-filtering-correlation-id: 8d42956a-1dcd-4282-e84e-08d6813fabda x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR05MB5721; x-ms-traffictypediagnostic: DB7PR05MB5721: x-microsoft-antispam-prvs: x-forefront-prvs: 0926B0E013 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(346002)(396003)(376002)(39860400002)(136003)(189003)(199004)(53936002)(6512007)(1076003)(8936002)(50226002)(6486002)(8676002)(1730700003)(68736007)(81156014)(97736004)(6506007)(5640700003)(14454004)(386003)(305945005)(7736002)(2906002)(54906003)(81166006)(25786009)(256004)(76176011)(6436002)(186003)(86362001)(102836004)(66066001)(11346002)(6916009)(446003)(2351001)(4326008)(99286004)(316002)(71200400001)(71190400001)(486006)(106356001)(105586002)(2616005)(476003)(26005)(52116002)(36756003)(2501003)(478600001)(6116002)(3846002)(107886003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB5721; H:DB7PR05MB4940.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: KDFUMg9+HGKFrOrXlulPmCq4BXt26+/9xo8mo46RUA24uCqhCAtDJQLbAetu2U0hEUqtHvHW34rVDGMrsGQszNcHgRhoZipa9MN7CKF+bg5bcmDY+vnRZ8EA+SSjMRY6QCzagF3hUcXr1qXiwPZzt1u3MidtGgFtuQ8A20pCYpCV6vDWjmgiaQIHMqItK80FR7YHx6xy19KMWb7Gdyip81pk3FpXXDyVp9qolH/bxIwGAK6OvmRsnOF91CbvHr4m2UciJVgJtRbubA2cmjHqHGMylD4hSChAR/OAUyyztK7nTwp9OGzwGppCpHP30OCzcJCsb2SiEkLwofnl7Hh0dVMNXbT2ByKwefS7nEytzwEbGyRIpz4/HBqW1sVEx5SssZSJ2RjB1POvFP50/3bxj8VRuY7loV+o1JxAj6lNLr8= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d42956a-1dcd-4282-e84e-08d6813fabda X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2019 14:32:57.7551 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5721 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Enable VXLAN on Spectrum-2 as previous patches added the required functionality. Note that for now Spectrum-1 and Spectrum-2 use the same function to determine whether the VXLAN configuration is valid or not. In the future, when the driver will be extended to support features not present in Spectrum-1, two different functions will be needed. Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata --- .../mellanox/mlxsw/spectrum_nve_vxlan.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c index 91b3c71bf031..93ccd9fc2266 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c @@ -21,9 +21,9 @@ #define MLXSW_SP_NVE_VXLAN_SUPPORTED_FLAGS (VXLAN_F_UDP_ZERO_CSUM_TX | \ VXLAN_F_LEARN) -static bool mlxsw_sp1_nve_vxlan_can_offload(const struct mlxsw_sp_nve *nve, - const struct net_device *dev, - struct netlink_ext_ack *extack) +static bool mlxsw_sp_nve_vxlan_can_offload(const struct mlxsw_sp_nve *nve, + const struct net_device *dev, + struct netlink_ext_ack *extack) { struct vxlan_dev *vxlan = netdev_priv(dev); struct vxlan_config *cfg = &vxlan->cfg; @@ -240,7 +240,7 @@ mlxsw_sp_nve_vxlan_clear_offload(const struct net_device *nve_dev, __be32 vni) const struct mlxsw_sp_nve_ops mlxsw_sp1_nve_vxlan_ops = { .type = MLXSW_SP_NVE_TYPE_VXLAN, - .can_offload = mlxsw_sp1_nve_vxlan_can_offload, + .can_offload = mlxsw_sp_nve_vxlan_can_offload, .nve_config = mlxsw_sp_nve_vxlan_config, .init = mlxsw_sp1_nve_vxlan_init, .fini = mlxsw_sp1_nve_vxlan_fini, @@ -248,13 +248,6 @@ const struct mlxsw_sp_nve_ops mlxsw_sp1_nve_vxlan_ops = { .fdb_clear_offload = mlxsw_sp_nve_vxlan_clear_offload, }; -static bool mlxsw_sp2_nve_vxlan_can_offload(const struct mlxsw_sp_nve *nve, - const struct net_device *dev, - struct netlink_ext_ack *extack) -{ - return false; -} - static bool mlxsw_sp2_nve_vxlan_learning_set(struct mlxsw_sp *mlxsw_sp, bool learning_en) { @@ -374,7 +367,7 @@ static void mlxsw_sp2_nve_vxlan_fini(struct mlxsw_sp_nve *nve) const struct mlxsw_sp_nve_ops mlxsw_sp2_nve_vxlan_ops = { .type = MLXSW_SP_NVE_TYPE_VXLAN, - .can_offload = mlxsw_sp2_nve_vxlan_can_offload, + .can_offload = mlxsw_sp_nve_vxlan_can_offload, .nve_config = mlxsw_sp_nve_vxlan_config, .init = mlxsw_sp2_nve_vxlan_init, .fini = mlxsw_sp2_nve_vxlan_fini,