From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 53633A2E1B for ; Wed, 4 Sep 2019 08:37:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5EDA71ECEE; Wed, 4 Sep 2019 08:37:14 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 101561E565 for ; Wed, 4 Sep 2019 08:37:10 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Sep 2019 23:37:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,465,1559545200"; d="scan'208";a="207359980" Received: from npg-dpdk-cvl-yingwang-117d84.sh.intel.com ([10.67.117.84]) by fmsmga004.fm.intel.com with ESMTP; 03 Sep 2019 23:37:09 -0700 From: Ying Wang To: qi.z.zhang@intel.com Cc: xiaolong.ye@intel.com, qiming.yang@intel.com, dev@dpdk.org, ying.a.wang@intel.com, wei.zhao1@intel.com Date: Wed, 4 Sep 2019 06:15:19 +0800 Message-Id: <20190903221522.151382-2-ying.a.wang@intel.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20190903221522.151382-1-ying.a.wang@intel.com> References: <20190903221522.151382-1-ying.a.wang@intel.com> Subject: [dpdk-dev] [PATCH 1/4] net/ice: add devargs to control pipeline mode 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: Qiming Yang Added a devarg to control the mode in generic flow API. We use none-pipeline mode by default. Signed-off-by: Qiming Yang --- doc/guides/nics/ice.rst | 11 +++++++++++ drivers/net/ice/ice_ethdev.c | 16 +++++++++++++++- drivers/net/ice/ice_ethdev.h | 1 + 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst index 03819d29f..a8429a535 100644 --- a/doc/guides/nics/ice.rst +++ b/doc/guides/nics/ice.rst @@ -61,6 +61,17 @@ Runtime Config Options NOTE: In Safe mode, only very limited features are available, features like RSS, checksum, fdir, tunneling ... are all disabled. +- ``Generic Flow Pipeline Mode Support`` (default ``0``) + + In pipeline mode, a flow can be setted at one specific stage by setting parameter + ``priority``. Currently, we support two stages, priority 0 for permission and 1 for + distributor. For none-pipeline mode, all flows are assumed to be at the same pipeline + stage, priority is ignored. Default, generic flow API is enabled in none pipeline mode, + user can choose to use pipeline mode by set ``devargs`` parameter ``pipeline-mode-support``, + for example:: + + -w 80:00.0, pipleline-mode-support=1 + Driver compilation and testing ------------------------------ diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 9aa7506ba..4e0645db1 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -19,9 +19,11 @@ /* devargs */ #define ICE_SAFE_MODE_SUPPORT_ARG "safe-mode-support" +#define ICE_PIPELINE_MODE_SUPPORT_ARG "pipeline-mode-support" static const char * const ice_valid_args[] = { ICE_SAFE_MODE_SUPPORT_ARG, + ICE_PIPELINE_MODE_SUPPORT_ARG, NULL }; @@ -1510,7 +1512,18 @@ static int ice_parse_devargs(struct rte_eth_dev *dev) ret = rte_kvargs_process(kvlist, ICE_SAFE_MODE_SUPPORT_ARG, &parse_bool, &ad->devargs.safe_mode_support); + if (ret) + goto err_devargs; + + ret = rte_kvargs_process(kvlist, ICE_PIPELINE_MODE_SUPPORT_ARG, + &parse_bool, &ad->devargs.pipeline_mode_support); + if (ret) + goto err_devargs; + + rte_kvargs_free(kvlist); + return ret; +err_devargs: rte_kvargs_free(kvlist); return ret; } @@ -3925,7 +3938,8 @@ RTE_PMD_REGISTER_PCI(net_ice, rte_ice_pmd); RTE_PMD_REGISTER_PCI_TABLE(net_ice, pci_id_ice_map); RTE_PMD_REGISTER_KMOD_DEP(net_ice, "* igb_uio | uio_pci_generic | vfio-pci"); RTE_PMD_REGISTER_PARAM_STRING(net_ice, - ICE_SAFE_MODE_SUPPORT_ARG "=<0|1>"); + ICE_SAFE_MODE_SUPPORT_ARG "=<0|1>" + ICE_PIPELINE_MODE_SUPPORT_ARG "=<0|1>"); RTE_INIT(ice_init_log) { diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h index 926db23d2..9bf5de08d 100644 --- a/drivers/net/ice/ice_ethdev.h +++ b/drivers/net/ice/ice_ethdev.h @@ -285,6 +285,7 @@ struct ice_pf { */ struct ice_devargs { int safe_mode_support; + int pipeline_mode_support; }; /** -- 2.15.1