On 09/04, Ying Wang wrote:
>From: Qiming Yang <[email protected]>
>
>Added a devarg to control the mode in generic flow API.
>We use none-pipeline mode by default.
>
>Signed-off-by: Qiming Yang <[email protected]>
>---
> 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
s/setted/set
>+ ``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
Can we have more description of the 'permission' and 'distributor' in the doc?
And we also need update in 19.11 release note, maybe in Ying's patch.
>+ stage, priority is ignored. Default, generic flow API is enabled in none
>pipeline mode,
s/Default/By default
>+ user can choose to use pipeline mode by set ``devargs`` parameter
>``pipeline-mode-support``,
s/set/setting
>+ 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;
>
These 2 lines are duplicated with below code.
>+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
>