From patchwork Wed Jul 25 06:24:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 949047 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="XfBSCs4q"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41b4w45SWXz9ryt for ; Wed, 25 Jul 2018 16:25:08 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728579AbeGYHfR (ORCPT ); Wed, 25 Jul 2018 03:35:17 -0400 Received: from mail-eopbgr70072.outbound.protection.outlook.com ([40.107.7.72]:7718 "EHLO EUR04-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728532AbeGYHfQ (ORCPT ); Wed, 25 Jul 2018 03:35:16 -0400 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=1+Glgih/yfkaePOChgmYWzpPu8JAtcV+eSVa3DfJc6c=; b=XfBSCs4qDraEKEkXRMWlMSZrpKW3WStdXMiZVMakpX3Cj299TE+m8y2PommVR64NU8CFxAh766CgEGAazpMA5t8zn01pYrWwELWvvNxT9iJ8b6cKolsCE2d9Bx0UY0Q1HuBNNR4qRgsO+9vp+4+U0FI1JAx83o8HLqabqNg62VU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; Received: from splinter.mtl.com (193.47.165.251) by HE1PR0501MB2330.eurprd05.prod.outlook.com (2603:10a6:3:27::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.21; Wed, 25 Jul 2018 06:24:52 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, jiri@mellanox.com, mlxsw@mellanox.com, Ido Schimmel Subject: [PATCH net-next 13/17] mlxsw: spectrum_acl: Make global TCAM resources available to regions Date: Wed, 25 Jul 2018 09:24:02 +0300 Message-Id: <20180725062406.3342-14-idosch@mellanox.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180725062406.3342-1-idosch@mellanox.com> References: <20180725062406.3342-1-idosch@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [193.47.165.251] X-ClientProxiedBy: VI1PR0202CA0033.eurprd02.prod.outlook.com (2603:10a6:803:14::46) To HE1PR0501MB2330.eurprd05.prod.outlook.com (2603:10a6:3:27::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a81af4e5-fc8c-47f7-9624-08d5f1f7550e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600073)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0501MB2330; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2330; 3:U5hWz/NhVdEB+Tr/exKuJsvg5UNzhU1O4gd5vQC0JKW90gwUQSHUJBAIz5Ne9nTFxijdlNknd1Ya8AWiQ7uFgcuHDmP8klVjKlawuRYLcKjAUHbIkyR2rPIfYnJsVSIVjiK4vwYX0TR5DUur3olxdxrNtoCsuJYtUUPGCwCV4E4swh7uk3QD6DPX2u2MegVUIHndoT2pLadGktqFxjauZEnlJrnxHAYB61zOkd0VqtFBtmNp7nGlsASYLkTE2WsS; 25:8tgHCS87Vg+SlU7MPaarOAmHQV55gmgFtv+5toGzBh6VnEcxRdI0HI21h4w4214+Dmdgth5T51IQUf4E5x1hzXWUoY8H29FwGo2Ntpqgy3D5hBMD51iyzVP69yB9x9rSR5dyihhm4D0ZrXlyV7rdM0UxZxy2lJsiobCqVXWopfVDJdj1E7HMGqcaZ239+GC7iE1KwHRcjqH7blvlZTPp5kfFOzORqKvO+QQtkhi98zWm2hXzaazPXAT3k+JzGyuFNCjzZf2oi+Hxyv22Ai+tvnbiOEeyXPX/Vm6BvXFuyK1l/jQSEcWHIe+Vh89KlIidX/S7JXEQ91wl31FOoZk3mg==; 31:KHuEdvcH3M7l4Hor7ur6XkIAJh4dl9b89orJW0kXbW/C3mnvT8diR0mOjOequqr2Bj9arNv/RX/t2tw3MKKEzsGwZVntOwq6NhSgdn1Db8MSviIeoXcet3K9dl6VeA8QusgKobZ4Jy7woDg6zaAqVVAE6mc4ebBFgyCgkfujz88yAt3EWJ55H1VYAGlOM6hVst5PzA/obV493PxW7F7NQMuTZRf2pAmGcEWs+3/I0/g= X-MS-TrafficTypeDiagnostic: HE1PR0501MB2330: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2330; 20:gl86mROWbxNuNOHoDBsKvZK/md05149dVUa1ij3gcKfjbrMpSp3iZC0ZdGXB4kWY5aSqGtL08BbxCrzCJ7poR986UIc2F0Po5Lx/7CwWY/mJCHe7oY+xBG4DFIxIOtR/NU6aBdRrMrd0/oATz0HuA84L9ypEPkQEOTzNgJCQW0km2hrBY5N+Aw9R6B5yiQ+PXPOhFXg7OOFfnkIeanGhr0XTrYlDXBPZz6sXavt8gYIxDWMzeqIJ38I0EG1T9DG6sYkiEnRVy1E54F3waH7fCxyzeO1ypmIc5r7hiQZWW0QYlq4DfLBJVqsFbcd+pIKLxyO5n8Gt0khlvwLSiAyS5iN8aqFbfEZ3oo3EOilZw1ST/XL3ClIb0hRRyqUNo9Zn6o+MS9hiElOqHRbbqyLmtKuDSA+fHU630COV143WXhAgIQeYpXWjsCY7V2SXqfPvWmKJkX/D/fQQ9b7+o+t7JeWGfd6ag16Bh2578qvG6OCfHfr3hbn2a9RZTPRdfPs/; 4:5pdw8IJiX6uzjX9HwKA1Rexc5ZP2RDVI8sq8Nm3jNXhX4BV8kNcSsyiun6iFHMn3LysHwXe/KYGTVdDSl7u6pHp7t+mz+7vv9yo8EvQpJv66soNWUbYlluGP9AwO1Xkk6Ee6KkuCsKnNlgBOepwXYZjbJ+PTTk+Ul2sHV+kannT9+fiIc4dUrHVzfzY5cGSg2/VfkO4bIKsSTW5N+BKDYgvrW1SY3HDqzLYlQ48EN+7caWu3C75Dt4hZxxo2gNdKII35EsNdMOVo/ZAfXfgqkw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231311)(944501410)(52105095)(3002001)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:HE1PR0501MB2330; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0501MB2330; X-Forefront-PRVS: 0744CFB5E8 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(346002)(136003)(39860400002)(366004)(396003)(199004)(189003)(50466002)(53416004)(446003)(6512007)(2616005)(48376002)(97736004)(956004)(5660300001)(305945005)(6116002)(36756003)(6486002)(7736002)(107886003)(47776003)(106356001)(66066001)(6916009)(2906002)(476003)(6666003)(16586007)(4326008)(68736007)(316002)(76176011)(2351001)(8936002)(2361001)(478600001)(50226002)(6506007)(51416003)(386003)(186003)(86362001)(8676002)(26005)(25786009)(486006)(11346002)(52116002)(3846002)(1076002)(53936002)(81166006)(16526019)(105586002)(81156014); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2330; H:splinter.mtl.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-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2330; 23:DEI1rw/gxuuRfVWFsVNXCFsD6GH/ZH5jCiCxTG/G7888C9U6s15RwydnHrP4Zok7eil6jjsASP07Anm46XkZ3u55NDIEI63SVXjtdORcBwjxkrFdnRJ1t08KfUtC5MNy3QMBdROpOj5Zh5nL5kQFUg4q+5FmoUdY+m1d85NIZeZqhCXQiEDB+uL8b4eQ7aRzLldOeiEgs61+fsQ1k2+n5vMN+3Y7seqSS82eYIj6FCIQr9mcNiPw9fwmaRWlG3woU3sb/HwtLoyp0WzjlnuTnYWFIqShIQKMJV77O94DkeUGpv9wNgXjnSvK2y5SLxxbWXCqrTvZkCL7O+diUu6z9/BIId8PBZhIH9g71kPNrytfzKLpgp2737u46Jxcmca9D1MXq1YXz6b/wFsMmYHyKkJ5ea/JhFO2CP9KS3a7qoR32kM07Ekw/3stwhwNScD8Qk3jItZ4WLiFCfwQLjPxuXfp01kV3DIXRbYTlU7PPa046NteTR2hA7/eJaKOfQ+cMeWJuLmlZk2xmpPvx+MJvm27XPCh3qDCeVSSwLF7prOgXEbuZoCTn3WvRDPYSEbLquMurc/2PtYVM1EoXlYA4n5x0fjMhTpL1o3rSZvOwZRtCwqHlY47QdHw7YWTGg4SiBEIZPudSsW99pikBtqb1GDgzj4SIXypocdRR4KCBWJYsycMNnVQ9Ds8WoXTDWIiYf3JiBNKgum/8qbaU3Fo4PGHvXhEqtyoGcqk8lVoluspRmAF9+x/AMwMduxFz1kRS9+gxprQ2Gxo2WGUrFyKaA4gFEgOywObWj+PVXyIyLZh38hd75ucI2bjiVyeD9hDAVuiPcf4CHiRJa7EUz0LSQRn7nPlm25JQk7+DZc89X2N+R0RWUZxNAW4yUYEYk7lVz51CIYG3X0+IRiuLvD+MjpilV5LgqWevBMEKrBGBw2YpJynCZsOpD8PG++vSfo85GHUzYkC6qYGpAXEQ0Nik5TDA0sRfWV9RDRoLCcAQyrDZDz9V8tfrg7rRpdHNEWeE4ygbvb/HlThvSbSGjaq/eL2WJpY3h8kvZaomb2QdvXuqHA6HbmCQh+UKBKVd0YmhjFkiNTj8O89B9JR9tap//NYajFrBzUkfHTXoHLoezTxjt/EofewWTna5StfAWEfUnkievHVF0Qn8MPYB+hTWOKJauaQUZFkhzLsDYg8/1ZBht66fMorho/frIIHqr/s/EbLYGos9OxGXO7y/AVMwMagDOfG6MIGbx2vlC2gKf7eH8XMKjthRiqGWG9iP85C X-Microsoft-Antispam-Message-Info: ZDkY9p1kWGNxCsA17LMYQwaw+oTLoH5bOWGSoKMw1BmuMv5cihtaWk6EHSuOAJt/ayHOkBRkcOXxo2+d7fuE49nsB7EKFhVK4LVCoudL9nfWhnvKMwCM3iunpiXpceCFYpffMLa2V94QI9TRNFH15otlbJcoqTaR/29NRHfzNjwDgiT5+YdU9RWuDsDo3RcM4XpdVAHVRXRIYLtuLzXXGTohbqSCeErye0h5/RDtL+8UK9IaHauVQnvBbUsRA4Q5WF4euunGP4gbZz0G3x3DpcFSJWaxrbpjmp5upmX+/YERjh7bYQgiSBcttiJUL4g4kkqw2frXAO3QURNiIBYdPCeQASiDZy/9tA8qkBXXnFI= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2330; 6:BfaUW7KDZ/VhPb1zAfEcYgTRP1Xf5lQ9/MFcnaSe1/KH5+dlsucYklV6Fvzuut1q2Ye0SOIKDpZGbCrTJA5yKqwQB2sSTukY7QZZbmSBFdfkGUwXqxNv0I31CzN5/J9UAL3N2OF7r9RzMBRSKMPma/c+p5siTQEzW2PEyQpmHQr/cmHGqcyDWC4ZEgmBJ4hMaBvfsnttk0oyH2KEbDCuyikA89bqPJ4yy05TD81Kb6h15x12iFlrkbivRH60iGIRJHeOZghk784avyUh/z4sXiGrXVrkJVrzTOeDKdy6ZP2FThvHpV9AA7BVsHfi75TkT+DZeoP4HnkQHDYJFjDnwMEGjtlhBtDCL8c3QzX/b3uzh2s5PBmReh6lZ89qfnA5DJwlDJaSxO3IpFU/IROTC9a+QLmxgyeFZQQ/YEI8LHssvpXGQRk/XrOiYHNb6JvCQVww1q0okSCFAN/mfgwfzA==; 5:LJa/Y/dBKVzfbQ0W5iz4ZsSNPdjRhdsE/eoocKfDxiZUQhGWryRCecPAd+DcCD2RYCuRDRTkvKAMRb/lgqWlDPRIzLNtMOXU1gphVTomw+aZFuLaC+aki8NHSBfP92Kj4YGxIi2W1qsnGWPBoft6txDWq0/PWnIkJc239pXw9H4=; 7:8chUUiUTdbHGMGEo7O8Rrg/Bsdl92XR/x3lf3/rhjlFErExbLossnoRX5Y6PXKiK8oJ98vgN+l/Ph4T5OeH0N+IMn60N7HFWyLQg8fbxKjDWgNPRvZzDB/GvhQDRwemMWcPdj1DFFbpuutMa7bSRVfCWXE3EE0iIYWH8YzfLm4T68E2TVoC85xEB9mfGJbS/IIZqXQxWPnTqwyxTjaSAd0Rhc7SW4/3OrxYmuKW2EjZ8OV9NA+G5Lh/dDX6l6ius SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2018 06:24:52.1382 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a81af4e5-fc8c-47f7-9624-08d5f1f7550e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2330 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Each TCAM region currently uses its own resources and there is no sharing between the different regions. This is going to change with A-TCAM as each region will need to allocate an eRP table from the global eRP tables array. Make the global TCAM resources available to each region by passing the TCAM private data to the region initialization routine. Signed-off-by: Ido Schimmel Reviewed-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 1 + drivers/net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c | 1 + drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c | 6 ++++-- drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c | 1 + drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c | 2 +- drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h | 1 + 6 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h index 589c63daf085..bc2704193666 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h @@ -628,6 +628,7 @@ struct mlxsw_sp_acl_tcam_ops { void (*fini)(struct mlxsw_sp *mlxsw_sp, void *priv); size_t region_priv_size; int (*region_init)(struct mlxsw_sp *mlxsw_sp, void *region_priv, + void *tcam_priv, struct mlxsw_sp_acl_tcam_region *region); void (*region_fini)(struct mlxsw_sp *mlxsw_sp, void *region_priv); int (*region_associate)(struct mlxsw_sp *mlxsw_sp, diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c index d339ec43d79c..926483434e99 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c @@ -122,6 +122,7 @@ mlxsw_sp1_acl_ctcam_region_catchall_del(struct mlxsw_sp *mlxsw_sp, static int mlxsw_sp1_acl_tcam_region_init(struct mlxsw_sp *mlxsw_sp, void *region_priv, + void *tcam_priv, struct mlxsw_sp_acl_tcam_region *_region) { struct mlxsw_sp1_acl_tcam_region *region = region_priv; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c index 7e392529a896..bef2329bb233 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c @@ -130,14 +130,16 @@ static void mlxsw_sp2_acl_tcam_fini(struct mlxsw_sp *mlxsw_sp, void *priv) static int mlxsw_sp2_acl_tcam_region_init(struct mlxsw_sp *mlxsw_sp, void *region_priv, + void *tcam_priv, struct mlxsw_sp_acl_tcam_region *_region) { struct mlxsw_sp2_acl_tcam_region *region = region_priv; + struct mlxsw_sp2_acl_tcam *tcam = tcam_priv; region->region = _region; - return mlxsw_sp_acl_atcam_region_init(mlxsw_sp, ®ion->aregion, - _region); + return mlxsw_sp_acl_atcam_region_init(mlxsw_sp, &tcam->atcam, + ®ion->aregion, _region); } static void diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c index e45172850ed3..abe8194d50f1 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c @@ -77,6 +77,7 @@ mlxsw_sp_acl_atcam_region_erp_init(struct mlxsw_sp *mlxsw_sp, } int mlxsw_sp_acl_atcam_region_init(struct mlxsw_sp *mlxsw_sp, + struct mlxsw_sp_acl_atcam *atcam, struct mlxsw_sp_acl_atcam_region *aregion, struct mlxsw_sp_acl_tcam_region *region) { diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c index 310fd87895b8..245e2f473c6f 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c @@ -577,7 +577,7 @@ mlxsw_sp_acl_tcam_region_create(struct mlxsw_sp *mlxsw_sp, if (err) goto err_tcam_region_enable; - err = ops->region_init(mlxsw_sp, region->priv, region); + err = ops->region_init(mlxsw_sp, region->priv, tcam->priv, region); if (err) goto err_tcam_region_init; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h index 17187e5fc3f2..718e96de2860 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h @@ -173,6 +173,7 @@ struct mlxsw_sp_acl_atcam_region { int mlxsw_sp_acl_atcam_region_associate(struct mlxsw_sp *mlxsw_sp, u16 region_id); int mlxsw_sp_acl_atcam_region_init(struct mlxsw_sp *mlxsw_sp, + struct mlxsw_sp_acl_atcam *atcam, struct mlxsw_sp_acl_atcam_region *aregion, struct mlxsw_sp_acl_tcam_region *region); void mlxsw_sp_acl_atcam_region_fini(struct mlxsw_sp_acl_atcam_region *aregion);