[dpdk-dev] [PATCH 1/4] net/ice: add devargs to control pipeline mode

Stillwell Jr, Paul M paul.m.stillwell.jr at intel.com
Wed Sep 4 20:29:03 CEST 2019


> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Ying Wang
> Sent: Tuesday, September 3, 2019 3:15 PM
> To: Zhang, Qi Z <qi.z.zhang at intel.com>
> Cc: Ye, Xiaolong <xiaolong.ye at intel.com>; Yang, Qiming
> <qiming.yang at intel.com>; dev at dpdk.org; Wang, Ying A
> <ying.a.wang at intel.com>; Zhao1, Wei <wei.zhao1 at intel.com>
> Subject: [dpdk-dev] [PATCH 1/4] net/ice: add devargs to control pipeline
> mode
> 
> From: Qiming Yang <qiming.yang at intel.com>
> 
> Added a devarg to control the mode in generic flow API.
> We use none-pipeline mode by default.
> 
> Signed-off-by: Qiming Yang <qiming.yang at intel.com>
> ---
>  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

setted => set

> + setting parameter  ``priority``. Currently, we support two stages,
> + priority 0 for permission and 1 for  distributor. For none-pipeline

none-pipeline => non-pipeline

> + mode, all flows are assumed to be at the same pipeline  stage,
> + priority is ignored. Default, generic flow API is enabled in none

none => non

> + 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



More information about the dev mailing list