[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