From patchwork Mon Sep 24 19:50:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongseok Koh X-Patchwork-Id: 45237 X-Patchwork-Delegate: thomas@monjalon.net 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 2C0211B188; Mon, 24 Sep 2018 21:50:41 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0043.outbound.protection.outlook.com [104.47.0.43]) by dpdk.org (Postfix) with ESMTP id E84671B139 for ; Mon, 24 Sep 2018 21:50:27 +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=GAlNwIHL/vjaRMfrNps4+4Ci8pAzGaq3XE24VK8d2rk=; b=RjvjTd/Sei+YL7TUHKzxND8D23aBFkKNtoRaLOEGyRHVgqTx/OapqWQFMVxOBPM2VyCu51jjVFWwB9qJ8zh47W+TT5O7NB1uA7WJmUzBkH3HAyBmmkkZjv8LgmIYwEmyWyWeplEEtBgxmK5eNQnafrAyYIrzjmPX0avadNSgAKg= Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by DB3PR0502MB3963.eurprd05.prod.outlook.com (52.134.72.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1164.20; Mon, 24 Sep 2018 19:50:26 +0000 Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::1cb0:661b:ecab:6045]) by DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::1cb0:661b:ecab:6045%2]) with mapi id 15.20.1164.017; Mon, 24 Sep 2018 19:50:26 +0000 From: Yongseok Koh To: Thomas Monjalon , Shahaf Shuler CC: "dev@dpdk.org" , Ori Kam Thread-Topic: [PATCH v2 11/11] net/mlx5: add runtime parameter to enable Direct Verbs Thread-Index: AQHUVD/W5LHEE23OT0q/jmVeKX7jgg== Date: Mon, 24 Sep 2018 19:50:26 +0000 Message-ID: <20180924194951.18650-12-yskoh@mellanox.com> References: <20180919064814.21645-1-yskoh@mellanox.com> <20180924194951.18650-1-yskoh@mellanox.com> In-Reply-To: <20180924194951.18650-1-yskoh@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BN6PR2001CA0039.namprd20.prod.outlook.com (2603:10b6:405:16::25) 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; DB3PR0502MB3963; 6:1GhkqNGjBoro+zSGOBlAE1Q+242VRlGilNCMGV/wfSb02qZjC5zxBVvyh9ZWZf8rlS7hZ6Aw5YyjvzbXOxfNESCXEdJjmYG6FFol2gf9aRQQalYDUvbSTQ3WO/+syI66WJtpZjYy1NqTahchFK/I9HHf6GWR3T0vHdiV4Iu8tFryQMm6zrVN3lTrZwalllzgtc0xJrAX5Dzfd28qJ1kBCKGUXgh2dRf5WR2wnx5OtciMtKWEI0HcwuigM8NyTbz8WcnZmx+xATq/I/ltV9+g/i7Q11Ih7Wdq0a03ide5bPc8WZDOPEos/vwy3rEVqEObNN1H5QySJzHrG5J8b6sKWJYsq/0PAMhzXREyzFyiOPOkZDPesPsZzSMpqQfRsG7od6UKsoXDuXYYYcWiIL07n9LcYlJ86yTf+haqa2Qcgm6UtYgf2jszBMsL9EP7XM25EJl6HxWavE23bS+SoqR0hg==; 5:J27juVyiqRn5lhq4fWhu6JqqGDUIXXxh+36+Fc8Zt8HEE+ocu+BiBTAHlNyIv2apiuVu4ni1t4yzRzi27nAEwS4FZIUwT3LQ/VYd6Q7BItUdC0+DGU2MfMbpdyFLNnLTAqkLYoEubtr+RYjV4RmjhuTE0QytcVee+j6ftL10/7A=; 7:sBZBI35jvn+9mB5aMHndpLpsNSjavHCsashW8hWRznEKH3LMwXt1gHcdihPnQ4b4Z6AgjeiAAEOfiu0f+coeFueTqDmrJzUrRRUBRMxFFNVqWepYtP3TinAd0iTAKeF8H5OpfpQ6qomF9ne9kA41OXlGpe8lFJgFVS+mqgQiV+ZD56dU/rd9j611oApCo3RAdt9w8982bj+8LA6B2Cs+k2YSXOfb1n5235DgWwNYCY8FuT65OsmtiaEB/47VdBan x-ms-office365-filtering-correlation-id: c223b634-43ed-4fbc-6108-08d62256f938 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0502MB3963; x-ms-traffictypediagnostic: DB3PR0502MB3963: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr 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)(3231355)(944501410)(52105095)(3002001)(6055026)(149066)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(201708071742011)(7699051); SRVR:DB3PR0502MB3963; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0502MB3963; x-forefront-prvs: 0805EC9467 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(1496009)(39860400002)(376002)(346002)(136003)(396003)(366004)(189003)(199004)(71190400001)(71200400001)(2906002)(97736004)(6486002)(107886003)(105586002)(8676002)(81156014)(8936002)(6636002)(81166006)(106356001)(53936002)(6512007)(6436002)(68736007)(2900100001)(5660300001)(66066001)(52116002)(478600001)(5250100002)(316002)(76176011)(386003)(6506007)(1076002)(14454004)(6116002)(54906003)(110136005)(99286004)(3846002)(26005)(7736002)(256004)(476003)(446003)(14444005)(36756003)(86362001)(102836004)(2616005)(305945005)(186003)(25786009)(486006)(11346002)(4326008)(309714004); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB3963; 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: blCKT7xH+XuXfSfh2XVsSwFcMnd9lOXg8RFmj8JLMtwJP3Cbq/2+CFbv6a4GTF03/hyOL+6+EF+8nhZYwa9mbiHLrKNa5xul1gVWVbK18LaRN8y1D9Y82Q40SP012sw60QavrUqsgvEEcTGLURXyz47QNGwJaNUkVim4SG6qAfvfoZtO3M7Ym4bOmA5BboduX3J/pqhqmJZh1Nx4c5NE1zvg27s1Hqaq7Jzu99/GIcYWdW7yvRUEMNjV/kbuVlMQzqwLKfr3MyPhaABN+x/DRyE2ezSRlKrMKoHH6m7YRQkbQYTY/Efkxdg1XXP+uAqm2DaQIg0zUuT2/OU2KvbZVxlUi1clJlkG3+kKYp2oGrw= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: c223b634-43ed-4fbc-6108-08d62256f938 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Sep 2018 19:50:26.7476 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB3963 Subject: [dpdk-dev] [PATCH v2 11/11] net/mlx5: add runtime parameter to enable Direct Verbs 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 DV flow API is based on new kernel API and is missing some functionality like counter but add other functionality like encap. In order not to affect current users even if the kernel supports the new DV API it should be enabled only manually. Signed-off-by: Ori Kam Acked-by: Yongseok Koh --- doc/guides/nics/mlx5.rst | 7 +++++++ drivers/net/mlx5/mlx5.c | 6 ++++++ drivers/net/mlx5/mlx5.h | 1 + drivers/net/mlx5/mlx5_flow.c | 9 +++++++-- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index dbdb90b59..67696283e 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -397,6 +397,13 @@ Run-time configuration Disabled by default. +- ``dv_flow_en`` parameter [int] + + A nonzero value enables the DV flow steering assuming it is supported + by the driver. + + Disabled by default. + - ``representor`` parameter [list] This parameter can be used to instantiate DPDK Ethernet devices from diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index ab44864e9..9b208109b 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -90,6 +90,9 @@ /* Allow L3 VXLAN flow creation. */ #define MLX5_L3_VXLAN_EN "l3_vxlan_en" +/* Activate DV flow steering. */ +#define MLX5_DV_FLOW_EN "dv_flow_en" + /* Activate Netlink support in VF mode. */ #define MLX5_VF_NL_EN "vf_nl_en" @@ -491,6 +494,8 @@ mlx5_args_check(const char *key, const char *val, void *opaque) config->l3_vxlan_en = !!tmp; } else if (strcmp(MLX5_VF_NL_EN, key) == 0) { config->vf_nl_en = !!tmp; + } else if (strcmp(MLX5_DV_FLOW_EN, key) == 0) { + config->dv_flow_en = !!tmp; } else { DRV_LOG(WARNING, "%s: unknown parameter", key); rte_errno = EINVAL; @@ -528,6 +533,7 @@ mlx5_args(struct mlx5_dev_config *config, struct rte_devargs *devargs) MLX5_RX_VEC_EN, MLX5_L3_VXLAN_EN, MLX5_VF_NL_EN, + MLX5_DV_FLOW_EN, MLX5_REPRESENTOR, NULL, }; diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 8ff6d6987..8bb619d9e 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -111,6 +111,7 @@ struct mlx5_dev_config { unsigned int mpw_hdr_dseg:1; /* Enable DSEGs in the title WQEBB. */ unsigned int l3_vxlan_en:1; /* Enable L3 VXLAN flow creation. */ unsigned int vf_nl_en:1; /* Enable Netlink requests in VF mode. */ + unsigned int dv_flow_en:1; /* Enable DV flow. */ unsigned int swp:1; /* Tx generic tunnel checksum and TSO offload. */ struct { unsigned int enabled:1; /* Whether MPRQ is enabled. */ diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 1990d7acc..2119211f5 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -2471,10 +2471,15 @@ mlx5_dev_filter_ctrl(struct rte_eth_dev *dev, * Pointer to Ethernet device structure. */ void -mlx5_flow_init_driver_ops(struct rte_eth_dev *dev __rte_unused) +mlx5_flow_init_driver_ops(struct rte_eth_dev *dev) { + struct priv *priv __rte_unused = dev->data->dev_private; + #ifdef HAVE_IBV_FLOW_DV_SUPPORT - mlx5_flow_dv_get_driver_ops(&nic_ops); + if (priv->config.dv_flow_en) + mlx5_flow_dv_get_driver_ops(&nic_ops); + else + mlx5_flow_verbs_get_driver_ops(&nic_ops); #else mlx5_flow_verbs_get_driver_ops(&nic_ops); #endif