On 09/04, Ying Wang wrote:
>From: Qiming Yang <qiming.y...@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.y...@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 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
>

Reply via email to