From patchwork Wed Sep 19 06:48:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongseok Koh X-Patchwork-Id: 44894 X-Patchwork-Delegate: shahafs@mellanox.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E2E3B5B2C; Wed, 19 Sep 2018 08:48:51 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50049.outbound.protection.outlook.com [40.107.5.49]) by dpdk.org (Postfix) with ESMTP id D572954AE for ; Wed, 19 Sep 2018 08:48:45 +0200 (CEST) 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=rZZ0x2Pp5dHv1cfMAQTf9ZMoLkAnwWWM10bWwRvSEHA=; b=TbZ+WZuEg50JNzKajRA0PGBi9W5HLtKROQinpBFyaMae1ZXXQEcVDMl5Iid+cpO6MrkGUBkYBOpxpl8E4oT4Bun3x5Ati5P2VSYVcqGkV+o6kdXWcrB4T9NpkeLEL1sUQDzgj5X63aW7V5VJqyAVUJQWO+HMnsXboRsiqUEBNss= Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by DB3PR0502MB4010.eurprd05.prod.outlook.com (52.134.72.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.18; Wed, 19 Sep 2018 06:48:45 +0000 Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::452:cfe7:8363:61c1]) by DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::452:cfe7:8363:61c1%2]) with mapi id 15.20.1143.017; Wed, 19 Sep 2018 06:48:45 +0000 From: Yongseok Koh To: Shahaf Shuler CC: "dev@dpdk.org" , Ori Kam Thread-Topic: [PATCH 09/11] net/mlx5: add Direct Verbs driver to glue Thread-Index: AQHUT+TPNKA+25vliUaMNosbpjyAeA== Date: Wed, 19 Sep 2018 06:48:44 +0000 Message-ID: <20180919064814.21645-10-yskoh@mellanox.com> References: <20180919064814.21645-1-yskoh@mellanox.com> In-Reply-To: <20180919064814.21645-1-yskoh@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: CY4PR19CA0042.namprd19.prod.outlook.com (2603:10b6:903:103::28) To DB3PR0502MB3980.eurprd05.prod.outlook.com (2603:10a6:8:10::27) authentication-results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [209.116.155.178] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB3PR0502MB4010; 6:a3c9ltnfOwaH6SiSJkGNnsD7GfKpmL+0y3DKnz4p8AXsWgwJ2ISsOcsfsUQaO5JcL+t3VEA8PAc/eK9Bm+0RwzwWL3ADTpgVyFB3VBr+pmzBrzzGEV7S4sHtrky+K+6Fv+jGpDe8FWUc3d8tejTXhTRcWCGrT2Cq4avDp+FfU45bfOGxPnQ1yVBsk6oRzxULv1gYdtfYLcYb6iyCvhwLhYa0TEQPRiGyzj0tPe2OMdzicSE+2vYRsA9dazOiu+n0M7GOgEHB7D+iUhaae3xmgGZUzlJOq8XVCmXZ/PNmggI3WU2FrVvOaFkyULh42C5zJkgJGrcVrpPlc2lVG6qSY8qKDa7bXSEIwq0YALeFHa2KMLAJ1hqUEcZbaVeahZ2JMdHSlZYIgAakjisjW82Oj+8q5GplVQVpC+OtdaxUPucy8kFdb3VFvVP+LO53afot3FWgzHl5hDlsENqx4wH0+Q==; 5:N3cC4iZf9sqfFPPTqgAok4xwZlm8AHwD+8YZA5rt6UMWsCbsHcmLjUz/G83qCg6SYqsVCuhd7ALGkFXu7shxGTd86PXu7dTv5bfsrWgIyB+sFfTm+3Bw+VZXEJz7aYgGYain/420jQUifEEoDukkjmM1Th7ZMZJ6OCYOsJ/LIjQ=; 7:gv6A8pEaECyeBT7JF3QMWarWO3xutKBhiA9CjsqZleUj8G+VS+cXLA/QRoWRPb2b2IbhUIuyMrAglCy6zannkKMMqWkZPpbNm/V6nYLa5oD/wy0578xRcMDRF0Lr5YnTvhFGh0VFCRxAr3MWLKAoUfBcMl9Ywd3UHD1T5W42Qo62a5dHsrBsvK5viJqIwrA9nPpBp17sbwl+Hlx1esVzPvNPUXuyIAE0hDvTYgYZKeY0knvJqnFTYLbZNiFVRinx x-ms-office365-filtering-correlation-id: da75c165-73d8-4f3e-27e8-08d61dfbf17a x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0502MB4010; x-ms-traffictypediagnostic: DB3PR0502MB4010: 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)(3002001)(10201501046)(93006095)(93001095)(3231355)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050); SRVR:DB3PR0502MB4010; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0502MB4010; x-forefront-prvs: 0800C0C167 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(1496009)(396003)(376002)(39860400002)(346002)(366004)(136003)(189003)(199004)(5250100002)(6512007)(107886003)(6862004)(54906003)(97736004)(6636002)(478600001)(8936002)(8676002)(76176011)(14454004)(36756003)(4326008)(26005)(37006003)(25786009)(53936002)(5660300001)(68736007)(52116002)(99286004)(6506007)(86362001)(386003)(6116002)(7736002)(81156014)(305945005)(81166006)(106356001)(316002)(446003)(2900100001)(105586002)(102836004)(66066001)(2616005)(6436002)(11346002)(6486002)(476003)(256004)(1076002)(14444005)(2906002)(486006)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB4010; H:DB3PR0502MB3980.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-microsoft-antispam-message-info: YD8Q5jgefGSOIIiUJfAKNiTZ7b4Qty/thwt2POfs69NwZHnkEWW3wT7JtIIO0S4prblZLwtxGR36ezfjKvGEiCoKJsiqcWKm1hMnAQhdeMXtGZpPdzbv8JKRXf3gfTKxQ9CXP2VEFYuV3OydAT+2C7Zsl0WBZBY4TRgLqWoS/Dp/m+Gb/kYcpb6Im5Y76HDuZShL66LGw1xATFoQxXZzEthCtHI4ipbTvo6SgenZOzL9I6X/xQQIluGgTMAX/aAZy5f1Wi/qwqluVDv5a2NcT29D0T7A6ngwKr+v3cIIsdApLRErJL7Jku/2K9a4V6nf1hrJ4M5yJGMjYUPk2m+r8GosCBM8ZtfwsD+czAGBLNI= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: da75c165-73d8-4f3e-27e8-08d61dfbf17a X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2018 06:48:44.7917 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB4010 Subject: [dpdk-dev] [PATCH 09/11] net/mlx5: add Direct Verbs driver to glue X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Ori Kam This commit adds all Direct Verbs required functions to the glue lib. Signed-off-by: Ori Kam Acked-by: Yongseok Koh --- drivers/net/mlx5/Makefile | 2 +- drivers/net/mlx5/mlx5_glue.c | 45 ++++++++++++++++++++++++++++++++++++++++++++ drivers/net/mlx5/mlx5_glue.h | 15 +++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile index d510a4275..4243b37ca 100644 --- a/drivers/net/mlx5/Makefile +++ b/drivers/net/mlx5/Makefile @@ -8,7 +8,7 @@ include $(RTE_SDK)/mk/rte.vars.mk LIB = librte_pmd_mlx5.a LIB_GLUE = $(LIB_GLUE_BASE).$(LIB_GLUE_VERSION) LIB_GLUE_BASE = librte_pmd_mlx5_glue.so -LIB_GLUE_VERSION = 18.05.0 +LIB_GLUE_VERSION = 18.11.0 # Sources. SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5.c diff --git a/drivers/net/mlx5/mlx5_glue.c b/drivers/net/mlx5/mlx5_glue.c index 84f9492a7..48590df5b 100644 --- a/drivers/net/mlx5/mlx5_glue.c +++ b/drivers/net/mlx5/mlx5_glue.c @@ -346,6 +346,48 @@ mlx5_glue_dv_create_qp(struct ibv_context *context, #endif } +static struct mlx5dv_flow_matcher * +mlx5_glue_dv_create_flow_matcher(struct ibv_context *context, + struct mlx5dv_flow_matcher_attr *matcher_attr) +{ +#ifdef HAVE_IBV_FLOW_DV_SUPPORT + return mlx5dv_create_flow_matcher(context, matcher_attr); +#else + (void)context; + (void)matcher_attr; + return NULL; +#endif +} + +static struct ibv_flow * +mlx5_glue_dv_create_flow(struct mlx5dv_flow_matcher *matcher, + struct mlx5dv_flow_match_parameters *match_value, + size_t num_actions, + struct mlx5dv_flow_action_attr *actions_attr) +{ +#ifdef HAVE_IBV_FLOW_DV_SUPPORT + return mlx5dv_create_flow(matcher, match_value, + num_actions, actions_attr); +#else + (void)matcher; + (void)match_value; + (void)num_actions; + (void)actions_attr; + return NULL; +#endif +} + +static int +mlx5_glue_dv_destroy_flow_matcher(struct mlx5dv_flow_matcher *matcher) +{ +#ifdef HAVE_IBV_FLOW_DV_SUPPORT + return mlx5dv_destroy_flow_matcher(matcher); +#else + (void)matcher; + return 0; +#endif +} + alignas(RTE_CACHE_LINE_SIZE) const struct mlx5_glue *mlx5_glue = &(const struct mlx5_glue){ .version = MLX5_GLUE_VERSION, @@ -392,4 +434,7 @@ const struct mlx5_glue *mlx5_glue = &(const struct mlx5_glue){ .dv_set_context_attr = mlx5_glue_dv_set_context_attr, .dv_init_obj = mlx5_glue_dv_init_obj, .dv_create_qp = mlx5_glue_dv_create_qp, + .dv_create_flow_matcher = mlx5_glue_dv_create_flow_matcher, + .dv_destroy_flow_matcher = mlx5_glue_dv_destroy_flow_matcher, + .dv_create_flow = mlx5_glue_dv_create_flow, }; diff --git a/drivers/net/mlx5/mlx5_glue.h b/drivers/net/mlx5/mlx5_glue.h index e584d3679..f6e4e3842 100644 --- a/drivers/net/mlx5/mlx5_glue.h +++ b/drivers/net/mlx5/mlx5_glue.h @@ -39,6 +39,13 @@ struct mlx5dv_qp_init_attr; struct mlx5dv_wq_init_attr; #endif +#ifndef HAVE_IBV_FLOW_DV_SUPPORT +struct mlx5dv_flow_matcher; +struct mlx5dv_flow_matcher_attr; +struct mlx5dv_flow_action_attr; +struct mlx5dv_flow_match_parameters; +#endif + /* LIB_GLUE_VERSION must be updated every time this structure is modified. */ struct mlx5_glue { const char *version; @@ -122,6 +129,14 @@ struct mlx5_glue { (struct ibv_context *context, struct ibv_qp_init_attr_ex *qp_init_attr_ex, struct mlx5dv_qp_init_attr *dv_qp_init_attr); + struct mlx5dv_flow_matcher *(*dv_create_flow_matcher) + (struct ibv_context *context, + struct mlx5dv_flow_matcher_attr *matcher_attr); + int (*dv_destroy_flow_matcher)(struct mlx5dv_flow_matcher *matcher); + struct ibv_flow *(*dv_create_flow)(struct mlx5dv_flow_matcher *matcher, + struct mlx5dv_flow_match_parameters *match_value, + size_t num_actions, + struct mlx5dv_flow_action_attr *actions_attr); }; const struct mlx5_glue *mlx5_glue;