From patchwork Sun Jan 20 06:50:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 1028098 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="Xrz7kYNi"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43j51T3q8Cz9sBn for ; Sun, 20 Jan 2019 17:51:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730105AbfATGvH (ORCPT ); Sun, 20 Jan 2019 01:51:07 -0500 Received: from mail-eopbgr30066.outbound.protection.outlook.com ([40.107.3.66]:64432 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727086AbfATGvC (ORCPT ); Sun, 20 Jan 2019 01:51:02 -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=mp6vkVq3P2vPb8uhmKVdR4HvO+kdjnR6TAX9xLIvkTs=; b=Xrz7kYNiC/Vm73XC2RD7Nj28Mi9RkQbO9tLvBYaLZXhCUYvpmwyezg79TvQcv44GSB2pAuU904U1ESATZu30keyC1BMAu8UrogQrjklFQmkglbf7Ih6eH1c2r0vTd/OaRrSLajtnjIasmgs89YwOTo0CVKzHvVGJbAlGvCyyWsc= Received: from AM6PR05MB6056.eurprd05.prod.outlook.com (20.179.2.148) by AM6PR05MB4408.eurprd05.prod.outlook.com (52.135.162.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.26; Sun, 20 Jan 2019 06:50:49 +0000 Received: from AM6PR05MB6056.eurprd05.prod.outlook.com ([fe80::3411:612a:f48b:a5e2]) by AM6PR05MB6056.eurprd05.prod.outlook.com ([fe80::3411:612a:f48b:a5e2%5]) with mapi id 15.20.1537.031; Sun, 20 Jan 2019 06:50:49 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Nir Dotan , mlxsw , Ido Schimmel Subject: [PATCH net-next 09/18] mlxsw: spectrum_router: Support RIF without device Thread-Topic: [PATCH net-next 09/18] mlxsw: spectrum_router: Support RIF without device Thread-Index: AQHUsIx6j34nXrtPXkiEjtskE2VCbA== Date: Sun, 20 Jan 2019 06:50:49 +0000 Message-ID: <20190120065007.21352-10-idosch@mellanox.com> References: <20190120065007.21352-1-idosch@mellanox.com> In-Reply-To: <20190120065007.21352-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P192CA0103.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:8d::44) To AM6PR05MB6056.eurprd05.prod.outlook.com (2603:10a6:20b:ab::20) 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; AM6PR05MB4408; 6:p1h13/PSpjMqgbQhFkxs+xpgOHmFQ7q12O0dljGOfFSphsot6fJYJhOk4LojiMmzgLRSjXcZlzKq8iL/N2uZKa7sJ2WQFZNxa6SPbaM5WAKYuDcCEd0cRNPKKkUZO+6T0oqKYoe5UFeIbTQoJBIBtSqe8rWBdMBEnYxaGu9lcodx8AmUUV6ZaF/9oOBZwoYY4lQSaESlTitks1MvROjivzmwgkjkGPaohphaE1BfFu3TneRNDhjcdxpKSpscTRQGNt8etnBwbhbaRXoRYhLoLExsGEPWFVt9865R243YSBfUnKeuvhoYMNubQco5LNAuU6SA20Rngbc59Mgg3zYf3vcCbcjGhNgF+GUCMinfvCyEuRwBVC936dpjRTOx9zIk86papQtEL1iYmsRQ1zrYlDw1DXOnFJBd+xCvtLSjO1Jng2bTZ5SfQuuEn8PrTcSsHlblhIAxvm+K3tho2gOjNg==; 5:fj9aR6fg2+6l4TK8Qn/FsOhn8debolEQmmiQ2sLhre0/bNB1rHZ36D6YT5z24OnalAq2GNCU/lHfFTdAavSSGxM6hq3XFQGAZ2O1bZCtC1XSn2XHmcicWTJI3lC351PJA+oklKIiX/OwRTKypu/wEG02DHXQ77qw0HJsmBZBf9iGm3iXoJXo3T0VYdPiRtvHQ4M3ANbJvWWB14evmLbnMA==; 7:UeW6063GgsSshtXF0lzTbb0Tng6Kv8uT1rrIeQzhC3K6MlUQsMKtnhAjIp8BazxepXKhQESfplyWNKOriz6qbkMP9jnUWwRSLa5eL13ZnEiXSFuUd4zC3SURDKGQiSUnkSgiBeqVRLr0GullCUChjA== x-ms-office365-filtering-correlation-id: 8c29d97c-07c0-4f3c-8dd1-08d67ea39cc3 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:AM6PR05MB4408; x-ms-traffictypediagnostic: AM6PR05MB4408: x-microsoft-antispam-prvs: x-forefront-prvs: 0923977CCA x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(39850400004)(376002)(366004)(136003)(346002)(199004)(189003)(8936002)(66066001)(2351001)(106356001)(105586002)(7736002)(81166006)(1730700003)(81156014)(305945005)(8676002)(316002)(54906003)(6116002)(6512007)(3846002)(99286004)(14454004)(478600001)(1076003)(66574012)(486006)(53936002)(4326008)(107886003)(71190400001)(256004)(25786009)(71200400001)(68736007)(102836004)(36756003)(186003)(26005)(6916009)(476003)(2616005)(50226002)(11346002)(446003)(6486002)(6436002)(5640700003)(386003)(6506007)(2906002)(52116002)(76176011)(2501003)(97736004)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR05MB4408; H:AM6PR05MB6056.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: x2KBp9uTqP7m7zG2j4pH9+DPxc9KQ/XBUAAPOYcGxwtUkXQMHgNyatSOMbzE7KOcv+AdVdwXVNiNlEN8CJUlLkzQtMycpvAg72PmYUdjrNaB6+rtuyWMcfnIM2asDpnBuhWKlQ8CcTPK1rWUeQFzTDHCSyY9INufgHI0rTIpISWnIf9xHJN7NM7Sc43uZeZxbFlU2VNfZocfgLaKhFcD7O1eekomxDn62pv51TkTN03w3tR3qF3mN0x+vkXhPp75eGpxZMF1tyzg4ARO2B33cV2e+vvw/nUOCGMcJWuiqkjMMLlb5K324V59KQdhFu30o4L5WtYq8VaBpQfwCh1F4dV3XJmt+DZMRifmaI74pBuPDPZdiqraoKW/FXLLyIfuNjo36k9YMdW+VOARZ3eppRriE8CrhQ81SGQLSBvr9XY= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c29d97c-07c0-4f3c-8dd1-08d67ea39cc3 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jan 2019 06:50:48.9178 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB4408 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nir Dotan Spectrum-2 underlay RIF is merely an auxiliary RIF that points to the virtual router used for encapsulated packets lookup. It exists only when its overlay RIF exists but may be shared with other overlay RIFs. Hence it is undesired to mark any device as related to it. Therefore allow usage of NULL device when allocating RIF. Signed-off-by: Nir Dotan Reviewed-by: Petr Machata Signed-off-by: Ido Schimmel --- drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c | 2 +- .../net/ethernet/mellanox/mlxsw/spectrum_router.c | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c index 41e607a14846..49933818c6f5 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c @@ -220,7 +220,7 @@ mlxsw_sp_dpipe_table_erif_entries_dump(void *priv, bool counters_enabled, for (; i < rif_count; i++) { struct mlxsw_sp_rif *rif = mlxsw_sp_rif_by_index(mlxsw_sp, i); - if (!rif) + if (!rif || !mlxsw_sp_rif_dev(rif)) continue; err = mlxsw_sp_erif_entry_get(mlxsw_sp, &entry, rif, counters_enabled); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index 2cfbba810527..4316afc2c043 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -80,7 +80,7 @@ struct mlxsw_sp_router { struct mlxsw_sp_rif { struct list_head nexthop_list; struct list_head neigh_list; - struct net_device *dev; + struct net_device *dev; /* NULL for underlay RIF */ struct mlxsw_sp_fid *fid; unsigned char addr[ETH_ALEN]; int mtu; @@ -6224,10 +6224,12 @@ static struct mlxsw_sp_rif *mlxsw_sp_rif_alloc(size_t rif_size, u16 rif_index, INIT_LIST_HEAD(&rif->nexthop_list); INIT_LIST_HEAD(&rif->neigh_list); - ether_addr_copy(rif->addr, l3_dev->dev_addr); - rif->mtu = l3_dev->mtu; + if (l3_dev) { + ether_addr_copy(rif->addr, l3_dev->dev_addr); + rif->mtu = l3_dev->mtu; + rif->dev = l3_dev; + } rif->vr_id = vr_id; - rif->dev = l3_dev; rif->rif_index = rif_index; return rif; @@ -6758,7 +6760,7 @@ static int mlxsw_sp_router_port_check_rif_addr(struct mlxsw_sp *mlxsw_sp, for (i = 0; i < MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS); i++) { rif = mlxsw_sp->router->rifs[i]; - if (rif && rif->dev != dev && + if (rif && rif->dev && rif->dev != dev && !ether_addr_equal_masked(rif->dev->dev_addr, dev_addr, mlxsw_sp->mac_mask)) { NL_SET_ERR_MSG_MOD(extack, "All router interface MAC addresses must have the same prefix");