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) {