DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back
@ 2019-10-25 12:51 Ferruh Yigit
  2019-10-25 12:51 ` [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list Ferruh Yigit
                   ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: Ferruh Yigit @ 2019-10-25 12:51 UTC (permalink / raw)
  To: John McNamara, Marko Kovacevic
  Cc: dev, stable, Thomas Monjalon, Andrew Rybchenko, Adrien Mazarguil,
	Ajit Khaparde, Jerin Jacob

What has been deprecated is enabling filtering support using the
'filter_ctrl' APIs [1], now same filtering features can be implemented
using rte_flow APIs and this is the preferred way for DPDK.

Since those filtering features can be enabled via rte_flow too, better
to keep them in the feature list, and mark them enabled for the PMDs
that enabled features via rte_flow API.
That is why PMD feature announcements not added back, they can announce
the feature again when 'filter_ctrl' implementation replaced with
'rte_flow" ones.

Also filter definitions should be clarified more in the features
documentation so that all PMDs can easily figure out to announce or
not these filtering features, also users can understand better what to
expect from this feature.

Fixes: 030febb6642c ("doc: remove deprecated ethdev features")
Cc: stable@dpdk.org

[1]
rte_eth_dev_filter_ctrl()
rte_eth_dev_filter_supported()
These APIs were passing using input related to the filtering by
'filter_type' and type specific structs.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Thomas Monjalon <thomas@monjalon.net>
Cc: Andrew Rybchenko <arybchenko@solarflare.com>
Cc: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>
Cc: Jerin Jacob <jerinj@marvell.com>
---
 doc/guides/nics/features.rst         | 78 ++++++++++++++++++++++++++++
 doc/guides/nics/features/default.ini |  7 +++
 2 files changed, 85 insertions(+)

diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index d96696801..4fcb37e4b 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -366,6 +366,84 @@ Supports filtering of a VLAN Tag identifier.
 * **[related]    API**: ``rte_eth_dev_vlan_filter()``.
 
 
+.. _nic_features_ethertype_filter:
+
+Ethertype filter
+----------------
+
+Supports filtering on Ethernet type.
+
+* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_ETHERTYPE``.
+* **[related]    API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``.
+
+.. _nic_features_ntuple_filter:
+
+N-tuple filter
+--------------
+
+Supports filtering on N-tuple values.
+
+* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_NTUPLE``.
+* **[related]    API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``.
+
+
+.. _nic_features_syn_filter:
+
+SYN filter
+----------
+
+Supports TCP syn filtering.
+
+* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_SYN``.
+* **[related]    API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``.
+
+
+.. _nic_features_tunnel_filter:
+
+Tunnel filter
+-------------
+
+Supports tunnel filtering.
+
+* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_TUNNEL``.
+* **[related]    API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``.
+
+
+.. _nic_features_flexible_filter:
+
+Flexible filter
+---------------
+
+Supports a flexible (non-tuple or Ethertype) filter.
+
+* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_FLEXIBLE``.
+* **[related]    API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``.
+
+
+.. _nic_features_hash_filter:
+
+Hash filter
+-----------
+
+Supports Hash filtering.
+
+* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_HASH``.
+* **[related]    API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``.
+
+
+.. _nic_features_flow_director:
+
+Flow director
+-------------
+
+Supports Flow Director style filtering to queues.
+
+* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_FDIR``.
+* **[provides]   mbuf**: ``mbuf.ol_flags:`` ``PKT_RX_FDIR``, ``PKT_RX_FDIR_ID``,
+  ``PKT_RX_FDIR_FLX``.
+* **[related]    API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``.
+
+
 .. _nic_features_flow_control:
 
 Flow control
diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini
index 91ec61901..ca3b738ea 100644
--- a/doc/guides/nics/features/default.ini
+++ b/doc/guides/nics/features/default.ini
@@ -37,6 +37,13 @@ VMDq                 =
 SR-IOV               =
 DCB                  =
 VLAN filter          =
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
 Flow control         =
 Flow API             =
 Rate limitation      =
-- 
2.21.0


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list
  2019-10-25 12:51 [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back Ferruh Yigit
@ 2019-10-25 12:51 ` Ferruh Yigit
  2019-10-25 13:26   ` Thomas Monjalon
  2019-10-25 13:23 ` [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back Thomas Monjalon
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 18+ messages in thread
From: Ferruh Yigit @ 2019-10-25 12:51 UTC (permalink / raw)
  To: John McNamara, Marko Kovacevic
  Cc: dev, Thomas Monjalon, Andrew Rybchenko, Adrien Mazarguil,
	Ajit Khaparde, Jerin Jacob

"Flow API" is a method/API to implement various filtering features, on
its own it doesn't give much context on what features are provided. And
it is not really a feature, so doesn't fit into feature table.

Also since other filtering related APIs, 'filter_ctrl', has been
deprecated, flow API is the only supported way in the DPDK to implement
filtering options, if related filter options announced by PMDs, listing
"Flow API" as implemented is redundant information.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Thomas Monjalon <thomas@monjalon.net>
Cc: Andrew Rybchenko <arybchenko@solarflare.com>
Cc: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>
Cc: Jerin Jacob <jerinj@marvell.com>
---
 doc/guides/nics/features/default.ini | 1 -
 1 file changed, 1 deletion(-)

diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini
index ca3b738ea..192a5168e 100644
--- a/doc/guides/nics/features/default.ini
+++ b/doc/guides/nics/features/default.ini
@@ -45,7 +45,6 @@ Flexible filter      =
 Hash filter          =
 Flow director        =
 Flow control         =
-Flow API             =
 Rate limitation      =
 Traffic mirroring    =
 Inline crypto        =
-- 
2.21.0


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back
  2019-10-25 12:51 [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back Ferruh Yigit
  2019-10-25 12:51 ` [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list Ferruh Yigit
@ 2019-10-25 13:23 ` Thomas Monjalon
  2020-04-10  8:53   ` Ferruh Yigit
  2020-04-10  9:29 ` [dpdk-dev] [PATCH v2] doc: remove flow API from the feature list Ferruh Yigit
  2020-04-10  9:29 ` [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back Ferruh Yigit
  3 siblings, 1 reply; 18+ messages in thread
From: Thomas Monjalon @ 2019-10-25 13:23 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: John McNamara, Marko Kovacevic, dev, stable, Andrew Rybchenko,
	Adrien Mazarguil, Ajit Khaparde, Jerin Jacob

25/10/2019 14:51, Ferruh Yigit:
> Also filter definitions should be clarified more in the features
> documentation so that all PMDs can easily figure out to announce or
> not these filtering features, also users can understand better what to
> expect from this feature.

OK let's try to dig in some descriptions.

[...]
> +N-tuple filter
> +--------------
> +
> +Supports filtering on N-tuple values.

What is n-tuple? 3-tuple is enough?

> +Tunnel filter
> +-------------
> +
> +Supports tunnel filtering.

There are so many kinds of tunnels and filtering.
What is minimum to declare such feature?
Isn't it more relevant to list the supported tunnels?

> +Flexible filter
> +---------------
> +
> +Supports a flexible (non-tuple or Ethertype) filter.

This is meaningless and should be dropped for sure.

> +* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_FLEXIBLE``.
> +* **[related]    API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``.

You are referring to the deprecated API here and in other places.

> +Hash filter
> +-----------
> +
> +Supports Hash filtering.

Which hash?

> +Flow director
> +-------------
> +
> +Supports Flow Director style filtering to queues.

I think it is an Intel wording.
Could you describe it with networking words?




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list
  2019-10-25 12:51 ` [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list Ferruh Yigit
@ 2019-10-25 13:26   ` Thomas Monjalon
  2019-10-25 13:39     ` Jerin Jacob
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Monjalon @ 2019-10-25 13:26 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: John McNamara, Marko Kovacevic, dev, Andrew Rybchenko,
	Adrien Mazarguil, Ajit Khaparde, Jerin Jacob, orika

25/10/2019 14:51, Ferruh Yigit:
> "Flow API" is a method/API to implement various filtering features, on
> its own it doesn't give much context on what features are provided. And
> it is not really a feature, so doesn't fit into feature table.
> 
> Also since other filtering related APIs, 'filter_ctrl', has been
> deprecated, flow API is the only supported way in the DPDK to implement
> filtering options, if related filter options announced by PMDs, listing
> "Flow API" as implemented is redundant information.

I fully agree with this explanation.
rte_flow is the only supported API for flow offloads.
That's why we must remove the legacy API.

> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> --- a/doc/guides/nics/features/default.ini
> +++ b/doc/guides/nics/features/default.ini
> -Flow API             =

Acked-by: Thomas Monjalon <thomas@monjalon.net>



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list
  2019-10-25 13:26   ` Thomas Monjalon
@ 2019-10-25 13:39     ` Jerin Jacob
  2020-04-10  8:44       ` Ferruh Yigit
  0 siblings, 1 reply; 18+ messages in thread
From: Jerin Jacob @ 2019-10-25 13:39 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Ferruh Yigit, John McNamara, Marko Kovacevic, dpdk-dev,
	Andrew Rybchenko, Adrien Mazarguil, Ajit Khaparde, Jerin Jacob,
	Ori Kam

On Fri, Oct 25, 2019 at 6:56 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 25/10/2019 14:51, Ferruh Yigit:
> > "Flow API" is a method/API to implement various filtering features, on
> > its own it doesn't give much context on what features are provided. And
> > it is not really a feature, so doesn't fit into feature table.
> >
> > Also since other filtering related APIs, 'filter_ctrl', has been
> > deprecated, flow API is the only supported way in the DPDK to implement
> > filtering options, if related filter options announced by PMDs, listing
> > "Flow API" as implemented is redundant information.
>
> I fully agree with this explanation.
> rte_flow is the only supported API for flow offloads.
> That's why we must remove the legacy API.
>
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > ---
> > --- a/doc/guides/nics/features/default.ini
> > +++ b/doc/guides/nics/features/default.ini
> > -Flow API             =
>
> Acked-by: Thomas Monjalon <thomas@monjalon.net>

# Need to remove "Flow API" from doc/guides/nics/features.rst
# Need to remove refference of "Flow API" from "doc/guides/nics/*" as well.

Not specific to this patch,
Probably we need to add a new matrix to enumerate PATTERN and ACTIONS
supported by each PMD as a rte_flow feature matrix.
That some else can take it up if everyone agrees the semantics.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list
  2019-10-25 13:39     ` Jerin Jacob
@ 2020-04-10  8:44       ` Ferruh Yigit
  2020-04-10  8:56         ` Thomas Monjalon
  0 siblings, 1 reply; 18+ messages in thread
From: Ferruh Yigit @ 2020-04-10  8:44 UTC (permalink / raw)
  To: Jerin Jacob, Thomas Monjalon
  Cc: John McNamara, Marko Kovacevic, dpdk-dev, Andrew Rybchenko,
	Adrien Mazarguil, Ajit Khaparde, Jerin Jacob, Ori Kam

On 10/25/2019 2:39 PM, Jerin Jacob wrote:
> On Fri, Oct 25, 2019 at 6:56 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>>
>> 25/10/2019 14:51, Ferruh Yigit:
>>> "Flow API" is a method/API to implement various filtering features, on
>>> its own it doesn't give much context on what features are provided. And
>>> it is not really a feature, so doesn't fit into feature table.
>>>
>>> Also since other filtering related APIs, 'filter_ctrl', has been
>>> deprecated, flow API is the only supported way in the DPDK to implement
>>> filtering options, if related filter options announced by PMDs, listing
>>> "Flow API" as implemented is redundant information.
>>
>> I fully agree with this explanation.
>> rte_flow is the only supported API for flow offloads.
>> That's why we must remove the legacy API.
>>
>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>> ---
>>> --- a/doc/guides/nics/features/default.ini
>>> +++ b/doc/guides/nics/features/default.ini
>>> -Flow API             =
>>
>> Acked-by: Thomas Monjalon <thomas@monjalon.net>
> 
> # Need to remove "Flow API" from doc/guides/nics/features.rst

+1

> # Need to remove refference of "Flow API" from "doc/guides/nics/*" as well.

"Flow API" is the implementation of the filtering, it may exist in the nic
documentation, only it is not a feature on itself. I will scan the docs for usage.

> 
> Not specific to this patch,
> Probably we need to add a new matrix to enumerate PATTERN and ACTIONS
> supported by each PMD as a rte_flow feature matrix.
> That some else can take it up if everyone agrees the semantics.
> 

+1, there needs a way to figure out which filtering is supported by a
device/driver. It is not documented and it is very hard to got it from the code.

Not sure if a new matrix is the good way to go, but I agree we need some way to
clarify it.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back
  2019-10-25 13:23 ` [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back Thomas Monjalon
@ 2020-04-10  8:53   ` Ferruh Yigit
  0 siblings, 0 replies; 18+ messages in thread
From: Ferruh Yigit @ 2020-04-10  8:53 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: John McNamara, Marko Kovacevic, dev, stable, Andrew Rybchenko,
	Adrien Mazarguil, Ajit Khaparde, Jerin Jacob

On 10/25/2019 2:23 PM, Thomas Monjalon wrote:
> 25/10/2019 14:51, Ferruh Yigit:
>> Also filter definitions should be clarified more in the features
>> documentation so that all PMDs can easily figure out to announce or
>> not these filtering features, also users can understand better what to
>> expect from this feature.
> 
> OK let's try to dig in some descriptions.
> 
> [...]
>> +N-tuple filter
>> +--------------
>> +
>> +Supports filtering on N-tuple values.
> 
> What is n-tuple? 3-tuple is enough?

I don't know why these are added historically, and myself not aware of the all
filtering to classify them properly.

Just saying "Flow API" is supported is not really says anything,
either we can try to group the filtering features, as done here and advertise
these filtering features, or create a rte flow based pattern/action
documentation which I believe will be too big and detailed.

So I think it is good to have some grouping for the filtering features, but if
current grouping is not good, what it should be like, and how we can define them?

I will send a v2 based on other comments, but it won't be addressing the groping
questions.

> 
>> +Tunnel filter
>> +-------------
>> +
>> +Supports tunnel filtering.
> 
> There are so many kinds of tunnels and filtering.
> What is minimum to declare such feature?
> Isn't it more relevant to list the supported tunnels?
> 
>> +Flexible filter
>> +---------------
>> +
>> +Supports a flexible (non-tuple or Ethertype) filter.
> 
> This is meaningless and should be dropped for sure.
> 
>> +* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_FLEXIBLE``.
>> +* **[related]    API**: ``rte_eth_dev_filter_ctrl()``, ``rte_eth_dev_filter_supported()``.
> 
> You are referring to the deprecated API here and in other places.

+1 to remove the deprecated APIs, I will convert them to rte flow.

> 
>> +Hash filter
>> +-----------
>> +
>> +Supports Hash filtering.
> 
> Which hash?
> 
>> +Flow director
>> +-------------
>> +
>> +Supports Flow Director style filtering to queues.
> 
> I think it is an Intel wording.
> Could you describe it with networking words?
> 
> 
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list
  2020-04-10  8:44       ` Ferruh Yigit
@ 2020-04-10  8:56         ` Thomas Monjalon
  2020-04-10  9:04           ` Jerin Jacob
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Monjalon @ 2020-04-10  8:56 UTC (permalink / raw)
  To: Jerin Jacob, Ferruh Yigit
  Cc: John McNamara, Marko Kovacevic, dpdk-dev, Andrew Rybchenko,
	Adrien Mazarguil, Ajit Khaparde, Jerin Jacob, Ori Kam

10/04/2020 10:44, Ferruh Yigit:
> On 10/25/2019 2:39 PM, Jerin Jacob wrote:
> > On Fri, Oct 25, 2019 at 6:56 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >>
> >> 25/10/2019 14:51, Ferruh Yigit:
> >>> "Flow API" is a method/API to implement various filtering features, on
> >>> its own it doesn't give much context on what features are provided. And
> >>> it is not really a feature, so doesn't fit into feature table.
> >>>
> >>> Also since other filtering related APIs, 'filter_ctrl', has been
> >>> deprecated, flow API is the only supported way in the DPDK to implement
> >>> filtering options, if related filter options announced by PMDs, listing
> >>> "Flow API" as implemented is redundant information.
> >>
> >> I fully agree with this explanation.
> >> rte_flow is the only supported API for flow offloads.
> >> That's why we must remove the legacy API.
> >>
> >>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >>> ---
> >>> --- a/doc/guides/nics/features/default.ini
> >>> +++ b/doc/guides/nics/features/default.ini
> >>> -Flow API             =
> >>
> >> Acked-by: Thomas Monjalon <thomas@monjalon.net>
> > 
> > # Need to remove "Flow API" from doc/guides/nics/features.rst
> 
> +1
> 
> > # Need to remove refference of "Flow API" from "doc/guides/nics/*" as well.
> 
> "Flow API" is the implementation of the filtering, it may exist in the nic
> documentation, only it is not a feature on itself. I will scan the docs for usage.
> 
> > 
> > Not specific to this patch,
> > Probably we need to add a new matrix to enumerate PATTERN and ACTIONS
> > supported by each PMD as a rte_flow feature matrix.
> > That some else can take it up if everyone agrees the semantics.
> > 
> 
> +1, there needs a way to figure out which filtering is supported by a
> device/driver. It is not documented and it is very hard to got it from the code.
> 
> Not sure if a new matrix is the good way to go, but I agree we need some way to
> clarify it.

I think we should split the matrix.
Adding a new matrix for flow offloads looks the way to go.
I suggest 3 matrices:
	- port-level features
	- queue-level features
	- flow-level features



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list
  2020-04-10  8:56         ` Thomas Monjalon
@ 2020-04-10  9:04           ` Jerin Jacob
  2020-04-10  9:20             ` Thomas Monjalon
  0 siblings, 1 reply; 18+ messages in thread
From: Jerin Jacob @ 2020-04-10  9:04 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Ferruh Yigit, John McNamara, Marko Kovacevic, dpdk-dev,
	Andrew Rybchenko, Adrien Mazarguil, Ajit Khaparde, Jerin Jacob,
	Ori Kam

On Fri, Apr 10, 2020 at 2:26 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 10/04/2020 10:44, Ferruh Yigit:
> > On 10/25/2019 2:39 PM, Jerin Jacob wrote:
> > > On Fri, Oct 25, 2019 at 6:56 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >>
> > >> 25/10/2019 14:51, Ferruh Yigit:
> > >>> "Flow API" is a method/API to implement various filtering features, on
> > >>> its own it doesn't give much context on what features are provided. And
> > >>> it is not really a feature, so doesn't fit into feature table.
> > >>>
> > >>> Also since other filtering related APIs, 'filter_ctrl', has been
> > >>> deprecated, flow API is the only supported way in the DPDK to implement
> > >>> filtering options, if related filter options announced by PMDs, listing
> > >>> "Flow API" as implemented is redundant information.
> > >>
> > >> I fully agree with this explanation.
> > >> rte_flow is the only supported API for flow offloads.
> > >> That's why we must remove the legacy API.
> > >>
> > >>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > >>> ---
> > >>> --- a/doc/guides/nics/features/default.ini
> > >>> +++ b/doc/guides/nics/features/default.ini
> > >>> -Flow API             =
> > >>
> > >> Acked-by: Thomas Monjalon <thomas@monjalon.net>
> > >
> > > # Need to remove "Flow API" from doc/guides/nics/features.rst
> >
> > +1
> >
> > > # Need to remove refference of "Flow API" from "doc/guides/nics/*" as well.
> >
> > "Flow API" is the implementation of the filtering, it may exist in the nic
> > documentation, only it is not a feature on itself. I will scan the docs for usage.
> >
> > >
> > > Not specific to this patch,
> > > Probably we need to add a new matrix to enumerate PATTERN and ACTIONS
> > > supported by each PMD as a rte_flow feature matrix.
> > > That some else can take it up if everyone agrees the semantics.
> > >
> >
> > +1, there needs a way to figure out which filtering is supported by a
> > device/driver. It is not documented and it is very hard to got it from the code.
> >
> > Not sure if a new matrix is the good way to go, but I agree we need some way to
> > clarify it.
>
> I think we should split the matrix.
> Adding a new matrix for flow offloads looks the way to go.
> I suggest 3 matrices:
>         - port-level features
>         - queue-level features
>         - flow-level features

Not sure what will be the details in "flow-level features".

IMO, We need to have a separate matrix for subdomain features for
rte_flow, rte_tm, rte_mtr, etc which part of ethdev.
For instance, rte_flow features can be translated into a matrix of
supported PATTERN and ACTIONS.


>
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list
  2020-04-10  9:04           ` Jerin Jacob
@ 2020-04-10  9:20             ` Thomas Monjalon
  2020-04-10  9:27               ` Ferruh Yigit
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Monjalon @ 2020-04-10  9:20 UTC (permalink / raw)
  To: Jerin Jacob
  Cc: Ferruh Yigit, John McNamara, Marko Kovacevic, dpdk-dev,
	Andrew Rybchenko, Adrien Mazarguil, Ajit Khaparde, Jerin Jacob,
	Ori Kam

10/04/2020 11:04, Jerin Jacob:
> On Fri, Apr 10, 2020 at 2:26 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > 10/04/2020 10:44, Ferruh Yigit:
> > > On 10/25/2019 2:39 PM, Jerin Jacob wrote:
> > > > On Fri, Oct 25, 2019 at 6:56 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > >>
> > > >> 25/10/2019 14:51, Ferruh Yigit:
> > > >>> "Flow API" is a method/API to implement various filtering features, on
> > > >>> its own it doesn't give much context on what features are provided. And
> > > >>> it is not really a feature, so doesn't fit into feature table.
> > > >>>
> > > >>> Also since other filtering related APIs, 'filter_ctrl', has been
> > > >>> deprecated, flow API is the only supported way in the DPDK to implement
> > > >>> filtering options, if related filter options announced by PMDs, listing
> > > >>> "Flow API" as implemented is redundant information.
> > > >>
> > > >> I fully agree with this explanation.
> > > >> rte_flow is the only supported API for flow offloads.
> > > >> That's why we must remove the legacy API.
> > > >>
> > > >>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > > >>> ---
> > > >>> --- a/doc/guides/nics/features/default.ini
> > > >>> +++ b/doc/guides/nics/features/default.ini
> > > >>> -Flow API             =
> > > >>
> > > >> Acked-by: Thomas Monjalon <thomas@monjalon.net>
> > > >
> > > > # Need to remove "Flow API" from doc/guides/nics/features.rst
> > >
> > > +1
> > >
> > > > # Need to remove refference of "Flow API" from "doc/guides/nics/*" as well.
> > >
> > > "Flow API" is the implementation of the filtering, it may exist in the nic
> > > documentation, only it is not a feature on itself. I will scan the docs for usage.
> > >
> > > >
> > > > Not specific to this patch,
> > > > Probably we need to add a new matrix to enumerate PATTERN and ACTIONS
> > > > supported by each PMD as a rte_flow feature matrix.
> > > > That some else can take it up if everyone agrees the semantics.
> > > >
> > >
> > > +1, there needs a way to figure out which filtering is supported by a
> > > device/driver. It is not documented and it is very hard to got it from the code.
> > >
> > > Not sure if a new matrix is the good way to go, but I agree we need some way to
> > > clarify it.
> >
> > I think we should split the matrix.
> > Adding a new matrix for flow offloads looks the way to go.
> > I suggest 3 matrices:
> >         - port-level features
> >         - queue-level features
> >         - flow-level features
> 
> Not sure what will be the details in "flow-level features".
> 
> IMO, We need to have a separate matrix for subdomain features for
> rte_flow, rte_tm, rte_mtr, etc which part of ethdev.
> For instance, rte_flow features can be translated into a matrix of
> supported PATTERN and ACTIONS.

Yes I'm also fine with this proposal.



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list
  2020-04-10  9:20             ` Thomas Monjalon
@ 2020-04-10  9:27               ` Ferruh Yigit
  0 siblings, 0 replies; 18+ messages in thread
From: Ferruh Yigit @ 2020-04-10  9:27 UTC (permalink / raw)
  To: Thomas Monjalon, Jerin Jacob
  Cc: John McNamara, Marko Kovacevic, dpdk-dev, Andrew Rybchenko,
	Adrien Mazarguil, Ajit Khaparde, Jerin Jacob, Ori Kam

On 4/10/2020 10:20 AM, Thomas Monjalon wrote:
> 10/04/2020 11:04, Jerin Jacob:
>> On Fri, Apr 10, 2020 at 2:26 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>>> 10/04/2020 10:44, Ferruh Yigit:
>>>> On 10/25/2019 2:39 PM, Jerin Jacob wrote:
>>>>> On Fri, Oct 25, 2019 at 6:56 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>>>>>>
>>>>>> 25/10/2019 14:51, Ferruh Yigit:
>>>>>>> "Flow API" is a method/API to implement various filtering features, on
>>>>>>> its own it doesn't give much context on what features are provided. And
>>>>>>> it is not really a feature, so doesn't fit into feature table.
>>>>>>>
>>>>>>> Also since other filtering related APIs, 'filter_ctrl', has been
>>>>>>> deprecated, flow API is the only supported way in the DPDK to implement
>>>>>>> filtering options, if related filter options announced by PMDs, listing
>>>>>>> "Flow API" as implemented is redundant information.
>>>>>>
>>>>>> I fully agree with this explanation.
>>>>>> rte_flow is the only supported API for flow offloads.
>>>>>> That's why we must remove the legacy API.
>>>>>>
>>>>>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>>>>>> ---
>>>>>>> --- a/doc/guides/nics/features/default.ini
>>>>>>> +++ b/doc/guides/nics/features/default.ini
>>>>>>> -Flow API             =
>>>>>>
>>>>>> Acked-by: Thomas Monjalon <thomas@monjalon.net>
>>>>>
>>>>> # Need to remove "Flow API" from doc/guides/nics/features.rst
>>>>
>>>> +1
>>>>
>>>>> # Need to remove refference of "Flow API" from "doc/guides/nics/*" as well.
>>>>
>>>> "Flow API" is the implementation of the filtering, it may exist in the nic
>>>> documentation, only it is not a feature on itself. I will scan the docs for usage.
>>>>
>>>>>
>>>>> Not specific to this patch,
>>>>> Probably we need to add a new matrix to enumerate PATTERN and ACTIONS
>>>>> supported by each PMD as a rte_flow feature matrix.
>>>>> That some else can take it up if everyone agrees the semantics.
>>>>>
>>>>
>>>> +1, there needs a way to figure out which filtering is supported by a
>>>> device/driver. It is not documented and it is very hard to got it from the code.
>>>>
>>>> Not sure if a new matrix is the good way to go, but I agree we need some way to
>>>> clarify it.
>>>
>>> I think we should split the matrix.
>>> Adding a new matrix for flow offloads looks the way to go.
>>> I suggest 3 matrices:
>>>         - port-level features
>>>         - queue-level features
>>>         - flow-level features
>>
>> Not sure what will be the details in "flow-level features".
>>
>> IMO, We need to have a separate matrix for subdomain features for
>> rte_flow, rte_tm, rte_mtr, etc which part of ethdev.
>> For instance, rte_flow features can be translated into a matrix of
>> supported PATTERN and ACTIONS.
> 
> Yes I'm also fine with this proposal.
> 

My concern is it will be too big and detailed, also hard to maintain which means
it will be out dated a while later.

After above said, I don't have a better solution right now ...

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [dpdk-dev] [PATCH v2] doc: remove flow API from the feature list
  2019-10-25 12:51 [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back Ferruh Yigit
  2019-10-25 12:51 ` [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list Ferruh Yigit
  2019-10-25 13:23 ` [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back Thomas Monjalon
@ 2020-04-10  9:29 ` Ferruh Yigit
  2020-04-10  9:29 ` [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back Ferruh Yigit
  3 siblings, 0 replies; 18+ messages in thread
From: Ferruh Yigit @ 2020-04-10  9:29 UTC (permalink / raw)
  To: dev, Rahul Lakkireddy, John McNamara, Marko Kovacevic,
	John Daley, Hyong Youb Kim, Ajit Khaparde, Somnath Kotur,
	Gaetan Rivet, Ziyang Xuan, Xiaoyun Wang, Guoyang Zhou,
	Wei Hu (Xavier), Min Hu (Connor),
	Yisen Zhuang, Beilei Xing, Qi Zhang, Jingjing Wu, Wenzhuo Lu,
	Qiming Yang, Rosen Xu, Konstantin Ananyev, Matan Azrad,
	Shahaf Shuler, Viacheslav Ovsiienko, Jerin Jacob,
	Nithin Dabilpuram, Kiran Kumar K, Rasesh Mody, Shahed Shaikh,
	Andrew Rybchenko, Keith Wiles, Tomasz Duszynski, Liron Himi
  Cc: Ferruh Yigit, Thomas Monjalon, Adrien Mazarguil

"Flow API" is a method/API to implement various filtering features, on
its own it doesn't give much context on what features are provided. And
it is not really a feature, so doesn't fit into feature table.

Also since other filtering related APIs, 'filter_ctrl', has been
deprecated, flow API is the only supported way in the DPDK to implement
filtering options, if related filter options announced by PMDs, listing
"Flow API" as implemented is redundant information.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Thomas Monjalon <thomas@monjalon.net>
Cc: Andrew Rybchenko <arybchenko@solarflare.com>
Cc: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>
Cc: Jerin Jacob <jerinj@marvell.com>

v2:
* Removed feature from all .ini files
* Removed some references from nic guides
---
 doc/guides/nics/cxgbe.rst                  |  2 +-
 doc/guides/nics/enic.rst                   |  6 +++---
 doc/guides/nics/features.rst               | 11 -----------
 doc/guides/nics/features/bnxt.ini          |  1 -
 doc/guides/nics/features/cxgbe.ini         |  1 -
 doc/guides/nics/features/default.ini       |  1 -
 doc/guides/nics/features/enic.ini          |  1 -
 doc/guides/nics/features/failsafe.ini      |  1 -
 doc/guides/nics/features/hinic.ini         |  1 -
 doc/guides/nics/features/hns3.ini          |  1 -
 doc/guides/nics/features/hns3_vf.ini       |  1 -
 doc/guides/nics/features/i40e.ini          |  1 -
 doc/guides/nics/features/iavf.ini          |  1 -
 doc/guides/nics/features/ice.ini           |  1 -
 doc/guides/nics/features/igb.ini           |  1 -
 doc/guides/nics/features/ipn3ke.ini        |  1 -
 doc/guides/nics/features/ixgbe.ini         |  1 -
 doc/guides/nics/features/mlx4.ini          |  1 -
 doc/guides/nics/features/mlx5.ini          |  1 -
 doc/guides/nics/features/octeontx2.ini     |  1 -
 doc/guides/nics/features/octeontx2_vec.ini |  1 -
 doc/guides/nics/features/octeontx2_vf.ini  |  1 -
 doc/guides/nics/features/qede.ini          |  1 -
 doc/guides/nics/features/sfc_efx.ini       |  1 -
 doc/guides/nics/features/tap.ini           |  1 -
 doc/guides/nics/hinic.rst                  |  2 +-
 doc/guides/nics/mlx5.rst                   |  2 +-
 doc/guides/nics/mvpp2.rst                  |  6 +++---
 doc/guides/nics/sfc_efx.rst                |  2 +-
 doc/guides/nics/tap.rst                    |  4 ++--
 30 files changed, 12 insertions(+), 45 deletions(-)

diff --git a/doc/guides/nics/cxgbe.rst b/doc/guides/nics/cxgbe.rst
index 54a4c1389..c4f263053 100644
--- a/doc/guides/nics/cxgbe.rst
+++ b/doc/guides/nics/cxgbe.rst
@@ -30,7 +30,7 @@ CXGBE and CXGBEVF PMD has support for:
 - All multicast mode
 - Port hardware statistics
 - Jumbo frames
-- Flow API - Support for both Wildcard (LE-TCAM) and Exact (HASH) match filters.
+- Packet filtering - Support for both Wildcard (LE-TCAM) and Exact (HASH) match filters.
 
 Limitations
 -----------
diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
index 65e536d42..43ea2cf10 100644
--- a/doc/guides/nics/enic.rst
+++ b/doc/guides/nics/enic.rst
@@ -208,8 +208,8 @@ the use of SR-IOV.
 
 .. _enic-generic-flow-api:
 
-Generic Flow API support
-------------------------
+Generic packet filtering support
+--------------------------------
 
 Generic Flow API (also called "rte_flow" API) is supported. More advanced
 capabilities are available when "Advanced Filtering" is enabled on the adapter.
@@ -524,7 +524,7 @@ Supported features
 - Scattered Rx
 - MTU update
 - SR-IOV on UCS managed servers connected to Fabric Interconnects
-- Flow API
+- Packet filtering via Flow API
 - Overlay offload
 
   - Rx/Tx checksum offloads for VXLAN, NVGRE, GENEVE
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index ea64f81c1..e44614335 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -453,17 +453,6 @@ Supports configuring link flow control.
   ``rte_eth_dev_priority_flow_ctrl_set()``.
 
 
-.. _nic_features_flow_api:
-
-Flow API
---------
-
-Supports the DPDK Flow API for generic filtering.
-
-* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_GENERIC``.
-* **[implements] rte_flow_ops**: ``All``.
-
-
 .. _nic_features_rate_limitation:
 
 Rate limitation
diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
index e359c157a..bb039da9b 100644
--- a/doc/guides/nics/features/bnxt.ini
+++ b/doc/guides/nics/features/bnxt.ini
@@ -28,7 +28,6 @@ Ethertype filter     = Y
 N-tuple filter       = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
diff --git a/doc/guides/nics/features/cxgbe.ini b/doc/guides/nics/features/cxgbe.ini
index 88f2f92b7..6cf5c13f5 100644
--- a/doc/guides/nics/features/cxgbe.ini
+++ b/doc/guides/nics/features/cxgbe.ini
@@ -16,7 +16,6 @@ Allmulticast mode    = Y
 RSS hash             = Y
 RSS key update       = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini
index cc229e7ae..bf2b0d94c 100644
--- a/doc/guides/nics/features/default.ini
+++ b/doc/guides/nics/features/default.ini
@@ -45,7 +45,6 @@ Flexible filter      =
 Hash filter          =
 Flow director        =
 Flow control         =
-Flow API             =
 Rate limitation      =
 Traffic mirroring    =
 Inline crypto        =
diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini
index d0f3ae23f..c38f8a01c 100644
--- a/doc/guides/nics/features/enic.ini
+++ b/doc/guides/nics/features/enic.ini
@@ -25,7 +25,6 @@ SR-IOV               = Y
 CRC offload          = Y
 VLAN offload         = Y
 Flow director        = Y
-Flow API             = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
 Inner L3 checksum    = Y
diff --git a/doc/guides/nics/features/failsafe.ini b/doc/guides/nics/features/failsafe.ini
index b6f3dcee6..8a2b92fc9 100644
--- a/doc/guides/nics/features/failsafe.ini
+++ b/doc/guides/nics/features/failsafe.ini
@@ -19,7 +19,6 @@ Unicast MAC filter   = Y
 Multicast MAC filter = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 Packet type parsing  = Y
 Basic stats          = Y
 Stats per queue      = Y
diff --git a/doc/guides/nics/features/hinic.ini b/doc/guides/nics/features/hinic.ini
index 5be05d36f..36940fca8 100644
--- a/doc/guides/nics/features/hinic.ini
+++ b/doc/guides/nics/features/hinic.ini
@@ -32,7 +32,6 @@ Inner L4 checksum    = Y
 Basic stats          = Y
 Extended stats       = Y
 Stats per queue      = Y
-Flow API             = Y
 Flow control         = Y
 FW version           = Y
 Multiprocess aware   = Y
diff --git a/doc/guides/nics/features/hns3.ini b/doc/guides/nics/features/hns3.ini
index c3a8544bc..b5c783140 100644
--- a/doc/guides/nics/features/hns3.ini
+++ b/doc/guides/nics/features/hns3.ini
@@ -19,7 +19,6 @@ RSS reta update      = Y
 DCB                  = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/hns3_vf.ini b/doc/guides/nics/features/hns3_vf.ini
index 80773ac90..3b85633a1 100644
--- a/doc/guides/nics/features/hns3_vf.ini
+++ b/doc/guides/nics/features/hns3_vf.ini
@@ -17,7 +17,6 @@ RSS hash             = Y
 RSS key update       = Y
 RSS reta update      = Y
 VLAN filter          = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/i40e.ini b/doc/guides/nics/features/i40e.ini
index 0b9bd99be..512c15733 100644
--- a/doc/guides/nics/features/i40e.ini
+++ b/doc/guides/nics/features/i40e.ini
@@ -28,7 +28,6 @@ SR-IOV               = Y
 DCB                  = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 Traffic mirroring    = Y
 CRC offload          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/iavf.ini b/doc/guides/nics/features/iavf.ini
index 17f7928eb..94d9f88a6 100644
--- a/doc/guides/nics/features/iavf.ini
+++ b/doc/guides/nics/features/iavf.ini
@@ -19,7 +19,6 @@ Multicast MAC filter = Y
 RSS hash             = Y
 RSS key update       = Y
 RSS reta update      = Y
-Flow API             = Y
 VLAN filter          = Y
 CRC offload          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/ice.ini b/doc/guides/nics/features/ice.ini
index 895d6b309..d9246e7c1 100644
--- a/doc/guides/nics/features/ice.ini
+++ b/doc/guides/nics/features/ice.ini
@@ -22,7 +22,6 @@ Multicast MAC filter = Y
 RSS hash             = Y
 RSS key update       = Y
 RSS reta update      = Y
-Flow API             = Y
 VLAN filter          = Y
 CRC offload          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/igb.ini b/doc/guides/nics/features/igb.ini
index c53fd0757..9f28819f6 100644
--- a/doc/guides/nics/features/igb.ini
+++ b/doc/guides/nics/features/igb.ini
@@ -27,7 +27,6 @@ N-tuple filter       = Y
 SYN filter           = Y
 Flexible filter      = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 QinQ offload         = Y
diff --git a/doc/guides/nics/features/ipn3ke.ini b/doc/guides/nics/features/ipn3ke.ini
index a194e3564..93b9f8f3f 100644
--- a/doc/guides/nics/features/ipn3ke.ini
+++ b/doc/guides/nics/features/ipn3ke.ini
@@ -30,7 +30,6 @@ Tunnel filter        = Y
 Hash filter          = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 Traffic mirroring    = Y
 CRC offload          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/ixgbe.ini b/doc/guides/nics/features/ixgbe.ini
index 724cf8976..5195cd815 100644
--- a/doc/guides/nics/features/ixgbe.ini
+++ b/doc/guides/nics/features/ixgbe.ini
@@ -30,7 +30,6 @@ SYN filter           = Y
 Tunnel filter        = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 Rate limitation      = Y
 Traffic mirroring    = Y
 Inline crypto        = Y
diff --git a/doc/guides/nics/features/mlx4.ini b/doc/guides/nics/features/mlx4.ini
index 9b70089df..c38f1d68f 100644
--- a/doc/guides/nics/features/mlx4.ini
+++ b/doc/guides/nics/features/mlx4.ini
@@ -22,7 +22,6 @@ RSS hash             = Y
 SR-IOV               = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
diff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini
index 5f4a96b7c..aac606952 100644
--- a/doc/guides/nics/features/mlx5.ini
+++ b/doc/guides/nics/features/mlx5.ini
@@ -28,7 +28,6 @@ SR-IOV               = Y
 VLAN filter          = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/octeontx2.ini b/doc/guides/nics/features/octeontx2.ini
index fb1351782..05dce7764 100644
--- a/doc/guides/nics/features/octeontx2.ini
+++ b/doc/guides/nics/features/octeontx2.ini
@@ -30,7 +30,6 @@ Inner RSS            = Y
 Inline protocol      = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 Rate limitation      = Y
 Jumbo frame          = Y
 Scattered Rx         = Y
diff --git a/doc/guides/nics/features/octeontx2_vec.ini b/doc/guides/nics/features/octeontx2_vec.ini
index 66e233aba..5fdb36e68 100644
--- a/doc/guides/nics/features/octeontx2_vec.ini
+++ b/doc/guides/nics/features/octeontx2_vec.ini
@@ -27,7 +27,6 @@ RSS reta update      = Y
 Inner RSS            = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 Rate limitation      = Y
 Jumbo frame          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/octeontx2_vf.ini b/doc/guides/nics/features/octeontx2_vf.ini
index c04c0e906..19034c941 100644
--- a/doc/guides/nics/features/octeontx2_vf.ini
+++ b/doc/guides/nics/features/octeontx2_vf.ini
@@ -23,7 +23,6 @@ RSS reta update      = Y
 Inner RSS            = Y
 Inline protocol      = Y
 VLAN filter          = Y
-Flow API             = Y
 Rate limitation      = Y
 Jumbo frame          = Y
 Scattered Rx         = Y
diff --git a/doc/guides/nics/features/qede.ini b/doc/guides/nics/features/qede.ini
index f69e4f843..0d0810021 100644
--- a/doc/guides/nics/features/qede.ini
+++ b/doc/guides/nics/features/qede.ini
@@ -23,7 +23,6 @@ N-tuple filter       = Y
 Tunnel filter        = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/sfc_efx.ini b/doc/guides/nics/features/sfc_efx.ini
index eca14270e..2eb875b89 100644
--- a/doc/guides/nics/features/sfc_efx.ini
+++ b/doc/guides/nics/features/sfc_efx.ini
@@ -24,7 +24,6 @@ RSS key update       = Y
 RSS reta update      = Y
 SR-IOV               = Y
 Flow control         = Y
-Flow API             = Y
 VLAN offload         = P
 L3 checksum offload  = Y
 L4 checksum offload  = Y
diff --git a/doc/guides/nics/features/tap.ini b/doc/guides/nics/features/tap.ini
index 519cad924..c36626d2c 100644
--- a/doc/guides/nics/features/tap.ini
+++ b/doc/guides/nics/features/tap.ini
@@ -11,7 +11,6 @@ Rx interrupt         = Y
 Promiscuous mode     = Y
 Allmulticast mode    = Y
 Basic stats          = Y
-Flow API             = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
 MTU update           = Y
diff --git a/doc/guides/nics/hinic.rst b/doc/guides/nics/hinic.rst
index f76506064..7277d9374 100644
--- a/doc/guides/nics/hinic.rst
+++ b/doc/guides/nics/hinic.rst
@@ -30,7 +30,7 @@ Features
 - MTU update
 - Unicast MAC filter
 - Multicast MAC filter
-- Flow API
+- Packet filtering via Flow API
 - Set Link down or up
 - FW version
 - LRO
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index e13c07d9a..70cbb0598 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -82,7 +82,7 @@ Features
 - Hardware checksum offloads.
 - Flow director (RTE_FDIR_MODE_PERFECT, RTE_FDIR_MODE_PERFECT_MAC_VLAN and
   RTE_ETH_FDIR_REJECT).
-- Flow API, including :ref:`flow_isolated_mode`.
+- Packet filtering via Flow API, including :ref:`flow_isolated_mode`.
 - Multiple process.
 - KVM and VMware ESX SR-IOV modes are supported.
 - RSS hash result is supported.
diff --git a/doc/guides/nics/mvpp2.rst b/doc/guides/nics/mvpp2.rst
index 19cab1cbc..98fdd004e 100644
--- a/doc/guides/nics/mvpp2.rst
+++ b/doc/guides/nics/mvpp2.rst
@@ -47,7 +47,7 @@ Features of the MVPP2 PMD are:
 - RX flow control
 - Scattered TX frames
 - :ref:`QoS <qossupport>`
-- :ref:`Flow API <flowapi>`
+- :ref:`Packet filtering via Flow API <flowapi>`
 - :ref:`Traffic metering and policing <mtrapi>`
 - :ref:`Traffic Management API <tmapi>`
 
@@ -378,8 +378,8 @@ Usage example
 
 .. _flowapi:
 
-Flow API
---------
+Packet filtering
+----------------
 
 PPv2 offers packet classification capabilities via classifier engine which
 can be configured via generic flow API offered by DPDK.
diff --git a/doc/guides/nics/sfc_efx.rst b/doc/guides/nics/sfc_efx.rst
index be1c2fe1d..a77770a1f 100644
--- a/doc/guides/nics/sfc_efx.rst
+++ b/doc/guides/nics/sfc_efx.rst
@@ -67,7 +67,7 @@ SFC EFX PMD has support for:
 
 - Transmit VLAN insertion (if running firmware variant supports it)
 
-- Flow API
+- Packet filtering via Flow API
 
 - Loopback
 
diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 7e44f8462..1448689b4 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -94,8 +94,8 @@ where X stands for unique id, example::
 Unlike TAP PMD, TUN PMD does not support user arguments as ``MAC`` or ``remote`` user
 options. Default interface name is ``dtunX``, where X stands for unique id.
 
-Flow API support
-----------------
+Packet filtering support
+------------------------
 
 The tap PMD supports major flow API pattern items and actions, when running on
 linux kernels above 4.2 ("Flower" classifier required).
-- 
2.25.2


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back
  2019-10-25 12:51 [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back Ferruh Yigit
                   ` (2 preceding siblings ...)
  2020-04-10  9:29 ` [dpdk-dev] [PATCH v2] doc: remove flow API from the feature list Ferruh Yigit
@ 2020-04-10  9:29 ` Ferruh Yigit
  2020-04-10  9:29   ` [dpdk-dev] [PATCH v2 2/2] doc: remove flow API from the feature list Ferruh Yigit
  2020-04-10 12:22   ` [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back Jerin Jacob
  3 siblings, 2 replies; 18+ messages in thread
From: Ferruh Yigit @ 2020-04-10  9:29 UTC (permalink / raw)
  To: dev, John McNamara, Marko Kovacevic, Ajit Khaparde,
	Somnath Kotur, John Daley, Hyong Youb Kim, Beilei Xing, Qi Zhang,
	Wenzhuo Lu, Rosen Xu, Konstantin Ananyev, Matan Azrad,
	Shahaf Shuler, Viacheslav Ovsiienko, Rasesh Mody, Shahed Shaikh,
	Jerin Jacob, Andrew Rybchenko, Thomas Monjalon
  Cc: Ferruh Yigit, stable, Adrien Mazarguil

What has been deprecated is enabling filtering support using the
'filter_ctrl' APIs [1], now same filtering features can be implemented
using rte_flow APIs and this is the preferred way for DPDK.

Since those filtering features can be enabled via rte_flow too, better
to keep them in the feature list, and mark them enabled for the PMDs
that enabled features via rte_flow API.
That is why PMD feature announcements not added back, they can announce
the feature again when 'filter_ctrl' implementation replaced with
'rte_flow" ones.

Also filter definitions should be clarified more in the features
documentation so that all PMDs can easily figure out to announce or
not these filtering features, also users can understand better what to
expect from this feature.

Fixes: 030febb6642c ("doc: remove deprecated ethdev features")
Cc: stable@dpdk.org

[1]
rte_eth_dev_filter_ctrl()
rte_eth_dev_filter_supported()
These APIs were passing using input related to the filtering by
'filter_type' and type specific structs.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Thomas Monjalon <thomas@monjalon.net>
Cc: Andrew Rybchenko <arybchenko@solarflare.com>
Cc: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>
Cc: Jerin Jacob <jerinj@marvell.com>

v2:
* Remove deprecated API references
* Add previously removed filter features back to nic .ini files
---
 doc/guides/nics/features.rst         | 70 ++++++++++++++++++++++++++++
 doc/guides/nics/features/bnxt.ini    |  3 ++
 doc/guides/nics/features/default.ini |  7 +++
 doc/guides/nics/features/enic.ini    |  1 +
 doc/guides/nics/features/i40e.ini    |  4 ++
 doc/guides/nics/features/i40e_vf.ini |  1 +
 doc/guides/nics/features/igb.ini     |  4 ++
 doc/guides/nics/features/ipn3ke.ini  |  4 ++
 doc/guides/nics/features/ixgbe.ini   |  5 ++
 doc/guides/nics/features/mlx5.ini    |  1 +
 doc/guides/nics/features/qede.ini    |  3 ++
 11 files changed, 103 insertions(+)

diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index edd21c4d8..ea64f81c1 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -370,6 +370,76 @@ Supports filtering of a VLAN Tag identifier.
 * **[related]    API**: ``rte_eth_dev_vlan_filter()``.
 
 
+.. _nic_features_ethertype_filter:
+
+Ethertype filter
+----------------
+
+Supports filtering on Ethernet type.
+
+* **[implements] Related Flow API pattern and actions.**
+
+
+.. _nic_features_ntuple_filter:
+
+N-tuple filter
+--------------
+
+Supports filtering on N-tuple values.
+
+* **[implements] Related Flow API pattern and actions.**
+
+
+.. _nic_features_syn_filter:
+
+SYN filter
+----------
+
+Supports TCP syn filtering.
+
+* **[implements] Related Flow API pattern and actions.**
+
+
+.. _nic_features_tunnel_filter:
+
+Tunnel filter
+-------------
+
+Supports tunnel filtering.
+
+* **[implements] Related Flow API pattern and actions.**
+
+
+.. _nic_features_flexible_filter:
+
+Flexible filter
+---------------
+
+Supports a flexible (non-tuple or Ethertype) filter.
+
+* **[implements] Related Flow API pattern and actions.**
+
+
+.. _nic_features_hash_filter:
+
+Hash filter
+-----------
+
+Supports Hash filtering.
+
+* **[implements] Related Flow API pattern and actions.**
+
+
+.. _nic_features_flow_director:
+
+Flow director
+-------------
+
+Supports Flow Director style filtering to queues.
+
+* **[implements] Related Flow API pattern and actions.**
+
+
 .. _nic_features_flow_control:
 
 Flow control
diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
index 37a99e336..e359c157a 100644
--- a/doc/guides/nics/features/bnxt.ini
+++ b/doc/guides/nics/features/bnxt.ini
@@ -24,6 +24,9 @@ RSS reta update      = Y
 VMDq                 = Y
 SR-IOV               = Y
 VLAN filter          = Y
+Ethertype filter     = Y
+N-tuple filter       = Y
+Flow director        = Y
 Flow control         = Y
 Flow API             = Y
 CRC offload          = Y
diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini
index 4d0ad324e..cc229e7ae 100644
--- a/doc/guides/nics/features/default.ini
+++ b/doc/guides/nics/features/default.ini
@@ -37,6 +37,13 @@ VMDq                 =
 SR-IOV               =
 DCB                  =
 VLAN filter          =
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
 Flow control         =
 Flow API             =
 Rate limitation      =
diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini
index 1a065a84f..d0f3ae23f 100644
--- a/doc/guides/nics/features/enic.ini
+++ b/doc/guides/nics/features/enic.ini
@@ -24,6 +24,7 @@ Inner RSS            = Y
 SR-IOV               = Y
 CRC offload          = Y
 VLAN offload         = Y
+Flow director        = Y
 Flow API             = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
diff --git a/doc/guides/nics/features/i40e.ini b/doc/guides/nics/features/i40e.ini
index a326f7345..0b9bd99be 100644
--- a/doc/guides/nics/features/i40e.ini
+++ b/doc/guides/nics/features/i40e.ini
@@ -32,6 +32,10 @@ Flow API             = Y
 Traffic mirroring    = Y
 CRC offload          = Y
 VLAN offload         = Y
+Ethertype filter     = Y
+Tunnel filter        = Y
+Hash filter          = Y
+Flow director        = Y
 QinQ offload         = P
 L3 checksum offload  = P
 L4 checksum offload  = P
diff --git a/doc/guides/nics/features/i40e_vf.ini b/doc/guides/nics/features/i40e_vf.ini
index 9f95063d2..c5cd3f5cb 100644
--- a/doc/guides/nics/features/i40e_vf.ini
+++ b/doc/guides/nics/features/i40e_vf.ini
@@ -19,6 +19,7 @@ RSS hash             = Y
 RSS key update       = Y
 RSS reta update      = Y
 VLAN filter          = Y
+Hash filter          = Y
 CRC offload          = Y
 VLAN offload         = Y
 QinQ offload         = P
diff --git a/doc/guides/nics/features/igb.ini b/doc/guides/nics/features/igb.ini
index 0351f8495..c53fd0757 100644
--- a/doc/guides/nics/features/igb.ini
+++ b/doc/guides/nics/features/igb.ini
@@ -22,6 +22,10 @@ VMDq                 = Y
 SR-IOV               = Y
 DCB                  = Y
 VLAN filter          = Y
+Ethertype filter     = Y
+N-tuple filter       = Y
+SYN filter           = Y
+Flexible filter      = Y
 Flow control         = Y
 Flow API             = Y
 CRC offload          = Y
diff --git a/doc/guides/nics/features/ipn3ke.ini b/doc/guides/nics/features/ipn3ke.ini
index 47a6526be..a194e3564 100644
--- a/doc/guides/nics/features/ipn3ke.ini
+++ b/doc/guides/nics/features/ipn3ke.ini
@@ -25,6 +25,10 @@ VMDq                 = Y
 SR-IOV               = Y
 DCB                  = Y
 VLAN filter          = Y
+Ethertype filter     = Y
+Tunnel filter        = Y
+Hash filter          = Y
+Flow director        = Y
 Flow control         = Y
 Flow API             = Y
 Traffic mirroring    = Y
diff --git a/doc/guides/nics/features/ixgbe.ini b/doc/guides/nics/features/ixgbe.ini
index fab0487fa..724cf8976 100644
--- a/doc/guides/nics/features/ixgbe.ini
+++ b/doc/guides/nics/features/ixgbe.ini
@@ -24,6 +24,11 @@ VMDq                 = Y
 SR-IOV               = Y
 DCB                  = Y
 VLAN filter          = Y
+Ethertype filter     = Y
+N-tuple filter       = Y
+SYN filter           = Y
+Tunnel filter        = Y
+Flow director        = Y
 Flow control         = Y
 Flow API             = Y
 Rate limitation      = Y
diff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini
index 54ec95db7..5f4a96b7c 100644
--- a/doc/guides/nics/features/mlx5.ini
+++ b/doc/guides/nics/features/mlx5.ini
@@ -26,6 +26,7 @@ RSS reta update      = Y
 Inner RSS            = Y
 SR-IOV               = Y
 VLAN filter          = Y
+Flow director        = Y
 Flow control         = Y
 Flow API             = Y
 CRC offload          = Y
diff --git a/doc/guides/nics/features/qede.ini b/doc/guides/nics/features/qede.ini
index 20c90e626..f69e4f843 100644
--- a/doc/guides/nics/features/qede.ini
+++ b/doc/guides/nics/features/qede.ini
@@ -19,6 +19,9 @@ RSS hash             = Y
 RSS key update       = Y
 RSS reta update      = Y
 VLAN filter          = Y
+N-tuple filter       = Y
+Tunnel filter        = Y
+Flow director        = Y
 Flow control         = Y
 Flow API             = Y
 CRC offload          = Y
-- 
2.25.2


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [dpdk-dev] [PATCH v2 2/2] doc: remove flow API from the feature list
  2020-04-10  9:29 ` [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back Ferruh Yigit
@ 2020-04-10  9:29   ` Ferruh Yigit
  2020-04-10 12:10     ` Jerin Jacob
  2020-04-10 12:22   ` [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back Jerin Jacob
  1 sibling, 1 reply; 18+ messages in thread
From: Ferruh Yigit @ 2020-04-10  9:29 UTC (permalink / raw)
  To: dev, Rahul Lakkireddy, John McNamara, Marko Kovacevic,
	John Daley, Hyong Youb Kim, Ajit Khaparde, Somnath Kotur,
	Gaetan Rivet, Ziyang Xuan, Xiaoyun Wang, Guoyang Zhou,
	Wei Hu (Xavier), Min Hu (Connor),
	Yisen Zhuang, Beilei Xing, Qi Zhang, Jingjing Wu, Wenzhuo Lu,
	Qiming Yang, Rosen Xu, Konstantin Ananyev, Matan Azrad,
	Shahaf Shuler, Viacheslav Ovsiienko, Jerin Jacob,
	Nithin Dabilpuram, Kiran Kumar K, Rasesh Mody, Shahed Shaikh,
	Andrew Rybchenko, Keith Wiles, Tomasz Duszynski, Liron Himi
  Cc: Ferruh Yigit, Thomas Monjalon, Adrien Mazarguil

"Flow API" is a method/API to implement various filtering features, on
its own it doesn't give much context on what features are provided. And
it is not really a feature, so doesn't fit into feature table.

Also since other filtering related APIs, 'filter_ctrl', has been
deprecated, flow API is the only supported way in the DPDK to implement
filtering options, if related filter options announced by PMDs, listing
"Flow API" as implemented is redundant information.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Thomas Monjalon <thomas@monjalon.net>
Cc: Andrew Rybchenko <arybchenko@solarflare.com>
Cc: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>
Cc: Jerin Jacob <jerinj@marvell.com>

v2:
* Removed feature from all .ini files
* Removed some references from nic guides
---
 doc/guides/nics/cxgbe.rst                  |  2 +-
 doc/guides/nics/enic.rst                   |  6 +++---
 doc/guides/nics/features.rst               | 11 -----------
 doc/guides/nics/features/bnxt.ini          |  1 -
 doc/guides/nics/features/cxgbe.ini         |  1 -
 doc/guides/nics/features/default.ini       |  1 -
 doc/guides/nics/features/enic.ini          |  1 -
 doc/guides/nics/features/failsafe.ini      |  1 -
 doc/guides/nics/features/hinic.ini         |  1 -
 doc/guides/nics/features/hns3.ini          |  1 -
 doc/guides/nics/features/hns3_vf.ini       |  1 -
 doc/guides/nics/features/i40e.ini          |  1 -
 doc/guides/nics/features/iavf.ini          |  1 -
 doc/guides/nics/features/ice.ini           |  1 -
 doc/guides/nics/features/igb.ini           |  1 -
 doc/guides/nics/features/ipn3ke.ini        |  1 -
 doc/guides/nics/features/ixgbe.ini         |  1 -
 doc/guides/nics/features/mlx4.ini          |  1 -
 doc/guides/nics/features/mlx5.ini          |  1 -
 doc/guides/nics/features/octeontx2.ini     |  1 -
 doc/guides/nics/features/octeontx2_vec.ini |  1 -
 doc/guides/nics/features/octeontx2_vf.ini  |  1 -
 doc/guides/nics/features/qede.ini          |  1 -
 doc/guides/nics/features/sfc_efx.ini       |  1 -
 doc/guides/nics/features/tap.ini           |  1 -
 doc/guides/nics/hinic.rst                  |  2 +-
 doc/guides/nics/mlx5.rst                   |  2 +-
 doc/guides/nics/mvpp2.rst                  |  6 +++---
 doc/guides/nics/sfc_efx.rst                |  2 +-
 doc/guides/nics/tap.rst                    |  4 ++--
 30 files changed, 12 insertions(+), 45 deletions(-)

diff --git a/doc/guides/nics/cxgbe.rst b/doc/guides/nics/cxgbe.rst
index 54a4c1389..c4f263053 100644
--- a/doc/guides/nics/cxgbe.rst
+++ b/doc/guides/nics/cxgbe.rst
@@ -30,7 +30,7 @@ CXGBE and CXGBEVF PMD has support for:
 - All multicast mode
 - Port hardware statistics
 - Jumbo frames
-- Flow API - Support for both Wildcard (LE-TCAM) and Exact (HASH) match filters.
+- Packet filtering - Support for both Wildcard (LE-TCAM) and Exact (HASH) match filters.
 
 Limitations
 -----------
diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
index 65e536d42..43ea2cf10 100644
--- a/doc/guides/nics/enic.rst
+++ b/doc/guides/nics/enic.rst
@@ -208,8 +208,8 @@ the use of SR-IOV.
 
 .. _enic-generic-flow-api:
 
-Generic Flow API support
-------------------------
+Generic packet filtering support
+--------------------------------
 
 Generic Flow API (also called "rte_flow" API) is supported. More advanced
 capabilities are available when "Advanced Filtering" is enabled on the adapter.
@@ -524,7 +524,7 @@ Supported features
 - Scattered Rx
 - MTU update
 - SR-IOV on UCS managed servers connected to Fabric Interconnects
-- Flow API
+- Packet filtering via Flow API
 - Overlay offload
 
   - Rx/Tx checksum offloads for VXLAN, NVGRE, GENEVE
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index ea64f81c1..e44614335 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -453,17 +453,6 @@ Supports configuring link flow control.
   ``rte_eth_dev_priority_flow_ctrl_set()``.
 
 
-.. _nic_features_flow_api:
-
-Flow API
---------
-
-Supports the DPDK Flow API for generic filtering.
-
-* **[implements] eth_dev_ops**: ``filter_ctrl:RTE_ETH_FILTER_GENERIC``.
-* **[implements] rte_flow_ops**: ``All``.
-
-
 .. _nic_features_rate_limitation:
 
 Rate limitation
diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
index e359c157a..bb039da9b 100644
--- a/doc/guides/nics/features/bnxt.ini
+++ b/doc/guides/nics/features/bnxt.ini
@@ -28,7 +28,6 @@ Ethertype filter     = Y
 N-tuple filter       = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
diff --git a/doc/guides/nics/features/cxgbe.ini b/doc/guides/nics/features/cxgbe.ini
index 88f2f92b7..6cf5c13f5 100644
--- a/doc/guides/nics/features/cxgbe.ini
+++ b/doc/guides/nics/features/cxgbe.ini
@@ -16,7 +16,6 @@ Allmulticast mode    = Y
 RSS hash             = Y
 RSS key update       = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini
index cc229e7ae..bf2b0d94c 100644
--- a/doc/guides/nics/features/default.ini
+++ b/doc/guides/nics/features/default.ini
@@ -45,7 +45,6 @@ Flexible filter      =
 Hash filter          =
 Flow director        =
 Flow control         =
-Flow API             =
 Rate limitation      =
 Traffic mirroring    =
 Inline crypto        =
diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini
index d0f3ae23f..c38f8a01c 100644
--- a/doc/guides/nics/features/enic.ini
+++ b/doc/guides/nics/features/enic.ini
@@ -25,7 +25,6 @@ SR-IOV               = Y
 CRC offload          = Y
 VLAN offload         = Y
 Flow director        = Y
-Flow API             = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
 Inner L3 checksum    = Y
diff --git a/doc/guides/nics/features/failsafe.ini b/doc/guides/nics/features/failsafe.ini
index b6f3dcee6..8a2b92fc9 100644
--- a/doc/guides/nics/features/failsafe.ini
+++ b/doc/guides/nics/features/failsafe.ini
@@ -19,7 +19,6 @@ Unicast MAC filter   = Y
 Multicast MAC filter = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 Packet type parsing  = Y
 Basic stats          = Y
 Stats per queue      = Y
diff --git a/doc/guides/nics/features/hinic.ini b/doc/guides/nics/features/hinic.ini
index 5be05d36f..36940fca8 100644
--- a/doc/guides/nics/features/hinic.ini
+++ b/doc/guides/nics/features/hinic.ini
@@ -32,7 +32,6 @@ Inner L4 checksum    = Y
 Basic stats          = Y
 Extended stats       = Y
 Stats per queue      = Y
-Flow API             = Y
 Flow control         = Y
 FW version           = Y
 Multiprocess aware   = Y
diff --git a/doc/guides/nics/features/hns3.ini b/doc/guides/nics/features/hns3.ini
index c3a8544bc..b5c783140 100644
--- a/doc/guides/nics/features/hns3.ini
+++ b/doc/guides/nics/features/hns3.ini
@@ -19,7 +19,6 @@ RSS reta update      = Y
 DCB                  = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/hns3_vf.ini b/doc/guides/nics/features/hns3_vf.ini
index 80773ac90..3b85633a1 100644
--- a/doc/guides/nics/features/hns3_vf.ini
+++ b/doc/guides/nics/features/hns3_vf.ini
@@ -17,7 +17,6 @@ RSS hash             = Y
 RSS key update       = Y
 RSS reta update      = Y
 VLAN filter          = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/i40e.ini b/doc/guides/nics/features/i40e.ini
index 0b9bd99be..512c15733 100644
--- a/doc/guides/nics/features/i40e.ini
+++ b/doc/guides/nics/features/i40e.ini
@@ -28,7 +28,6 @@ SR-IOV               = Y
 DCB                  = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 Traffic mirroring    = Y
 CRC offload          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/iavf.ini b/doc/guides/nics/features/iavf.ini
index 17f7928eb..94d9f88a6 100644
--- a/doc/guides/nics/features/iavf.ini
+++ b/doc/guides/nics/features/iavf.ini
@@ -19,7 +19,6 @@ Multicast MAC filter = Y
 RSS hash             = Y
 RSS key update       = Y
 RSS reta update      = Y
-Flow API             = Y
 VLAN filter          = Y
 CRC offload          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/ice.ini b/doc/guides/nics/features/ice.ini
index 895d6b309..d9246e7c1 100644
--- a/doc/guides/nics/features/ice.ini
+++ b/doc/guides/nics/features/ice.ini
@@ -22,7 +22,6 @@ Multicast MAC filter = Y
 RSS hash             = Y
 RSS key update       = Y
 RSS reta update      = Y
-Flow API             = Y
 VLAN filter          = Y
 CRC offload          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/igb.ini b/doc/guides/nics/features/igb.ini
index c53fd0757..9f28819f6 100644
--- a/doc/guides/nics/features/igb.ini
+++ b/doc/guides/nics/features/igb.ini
@@ -27,7 +27,6 @@ N-tuple filter       = Y
 SYN filter           = Y
 Flexible filter      = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 QinQ offload         = Y
diff --git a/doc/guides/nics/features/ipn3ke.ini b/doc/guides/nics/features/ipn3ke.ini
index a194e3564..93b9f8f3f 100644
--- a/doc/guides/nics/features/ipn3ke.ini
+++ b/doc/guides/nics/features/ipn3ke.ini
@@ -30,7 +30,6 @@ Tunnel filter        = Y
 Hash filter          = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 Traffic mirroring    = Y
 CRC offload          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/ixgbe.ini b/doc/guides/nics/features/ixgbe.ini
index 724cf8976..5195cd815 100644
--- a/doc/guides/nics/features/ixgbe.ini
+++ b/doc/guides/nics/features/ixgbe.ini
@@ -30,7 +30,6 @@ SYN filter           = Y
 Tunnel filter        = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 Rate limitation      = Y
 Traffic mirroring    = Y
 Inline crypto        = Y
diff --git a/doc/guides/nics/features/mlx4.ini b/doc/guides/nics/features/mlx4.ini
index 9b70089df..c38f1d68f 100644
--- a/doc/guides/nics/features/mlx4.ini
+++ b/doc/guides/nics/features/mlx4.ini
@@ -22,7 +22,6 @@ RSS hash             = Y
 SR-IOV               = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
diff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini
index 5f4a96b7c..aac606952 100644
--- a/doc/guides/nics/features/mlx5.ini
+++ b/doc/guides/nics/features/mlx5.ini
@@ -28,7 +28,6 @@ SR-IOV               = Y
 VLAN filter          = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/octeontx2.ini b/doc/guides/nics/features/octeontx2.ini
index fb1351782..05dce7764 100644
--- a/doc/guides/nics/features/octeontx2.ini
+++ b/doc/guides/nics/features/octeontx2.ini
@@ -30,7 +30,6 @@ Inner RSS            = Y
 Inline protocol      = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 Rate limitation      = Y
 Jumbo frame          = Y
 Scattered Rx         = Y
diff --git a/doc/guides/nics/features/octeontx2_vec.ini b/doc/guides/nics/features/octeontx2_vec.ini
index 66e233aba..5fdb36e68 100644
--- a/doc/guides/nics/features/octeontx2_vec.ini
+++ b/doc/guides/nics/features/octeontx2_vec.ini
@@ -27,7 +27,6 @@ RSS reta update      = Y
 Inner RSS            = Y
 VLAN filter          = Y
 Flow control         = Y
-Flow API             = Y
 Rate limitation      = Y
 Jumbo frame          = Y
 VLAN offload         = Y
diff --git a/doc/guides/nics/features/octeontx2_vf.ini b/doc/guides/nics/features/octeontx2_vf.ini
index c04c0e906..19034c941 100644
--- a/doc/guides/nics/features/octeontx2_vf.ini
+++ b/doc/guides/nics/features/octeontx2_vf.ini
@@ -23,7 +23,6 @@ RSS reta update      = Y
 Inner RSS            = Y
 Inline protocol      = Y
 VLAN filter          = Y
-Flow API             = Y
 Rate limitation      = Y
 Jumbo frame          = Y
 Scattered Rx         = Y
diff --git a/doc/guides/nics/features/qede.ini b/doc/guides/nics/features/qede.ini
index f69e4f843..0d0810021 100644
--- a/doc/guides/nics/features/qede.ini
+++ b/doc/guides/nics/features/qede.ini
@@ -23,7 +23,6 @@ N-tuple filter       = Y
 Tunnel filter        = Y
 Flow director        = Y
 Flow control         = Y
-Flow API             = Y
 CRC offload          = Y
 VLAN offload         = Y
 L3 checksum offload  = Y
diff --git a/doc/guides/nics/features/sfc_efx.ini b/doc/guides/nics/features/sfc_efx.ini
index eca14270e..2eb875b89 100644
--- a/doc/guides/nics/features/sfc_efx.ini
+++ b/doc/guides/nics/features/sfc_efx.ini
@@ -24,7 +24,6 @@ RSS key update       = Y
 RSS reta update      = Y
 SR-IOV               = Y
 Flow control         = Y
-Flow API             = Y
 VLAN offload         = P
 L3 checksum offload  = Y
 L4 checksum offload  = Y
diff --git a/doc/guides/nics/features/tap.ini b/doc/guides/nics/features/tap.ini
index 519cad924..c36626d2c 100644
--- a/doc/guides/nics/features/tap.ini
+++ b/doc/guides/nics/features/tap.ini
@@ -11,7 +11,6 @@ Rx interrupt         = Y
 Promiscuous mode     = Y
 Allmulticast mode    = Y
 Basic stats          = Y
-Flow API             = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
 MTU update           = Y
diff --git a/doc/guides/nics/hinic.rst b/doc/guides/nics/hinic.rst
index f76506064..7277d9374 100644
--- a/doc/guides/nics/hinic.rst
+++ b/doc/guides/nics/hinic.rst
@@ -30,7 +30,7 @@ Features
 - MTU update
 - Unicast MAC filter
 - Multicast MAC filter
-- Flow API
+- Packet filtering via Flow API
 - Set Link down or up
 - FW version
 - LRO
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index e13c07d9a..70cbb0598 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -82,7 +82,7 @@ Features
 - Hardware checksum offloads.
 - Flow director (RTE_FDIR_MODE_PERFECT, RTE_FDIR_MODE_PERFECT_MAC_VLAN and
   RTE_ETH_FDIR_REJECT).
-- Flow API, including :ref:`flow_isolated_mode`.
+- Packet filtering via Flow API, including :ref:`flow_isolated_mode`.
 - Multiple process.
 - KVM and VMware ESX SR-IOV modes are supported.
 - RSS hash result is supported.
diff --git a/doc/guides/nics/mvpp2.rst b/doc/guides/nics/mvpp2.rst
index 19cab1cbc..98fdd004e 100644
--- a/doc/guides/nics/mvpp2.rst
+++ b/doc/guides/nics/mvpp2.rst
@@ -47,7 +47,7 @@ Features of the MVPP2 PMD are:
 - RX flow control
 - Scattered TX frames
 - :ref:`QoS <qossupport>`
-- :ref:`Flow API <flowapi>`
+- :ref:`Packet filtering via Flow API <flowapi>`
 - :ref:`Traffic metering and policing <mtrapi>`
 - :ref:`Traffic Management API <tmapi>`
 
@@ -378,8 +378,8 @@ Usage example
 
 .. _flowapi:
 
-Flow API
---------
+Packet filtering
+----------------
 
 PPv2 offers packet classification capabilities via classifier engine which
 can be configured via generic flow API offered by DPDK.
diff --git a/doc/guides/nics/sfc_efx.rst b/doc/guides/nics/sfc_efx.rst
index be1c2fe1d..a77770a1f 100644
--- a/doc/guides/nics/sfc_efx.rst
+++ b/doc/guides/nics/sfc_efx.rst
@@ -67,7 +67,7 @@ SFC EFX PMD has support for:
 
 - Transmit VLAN insertion (if running firmware variant supports it)
 
-- Flow API
+- Packet filtering via Flow API
 
 - Loopback
 
diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 7e44f8462..1448689b4 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -94,8 +94,8 @@ where X stands for unique id, example::
 Unlike TAP PMD, TUN PMD does not support user arguments as ``MAC`` or ``remote`` user
 options. Default interface name is ``dtunX``, where X stands for unique id.
 
-Flow API support
-----------------
+Packet filtering support
+------------------------
 
 The tap PMD supports major flow API pattern items and actions, when running on
 linux kernels above 4.2 ("Flower" classifier required).
-- 
2.25.2


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH v2 2/2] doc: remove flow API from the feature list
  2020-04-10  9:29   ` [dpdk-dev] [PATCH v2 2/2] doc: remove flow API from the feature list Ferruh Yigit
@ 2020-04-10 12:10     ` Jerin Jacob
  2020-04-10 12:34       ` Thomas Monjalon
  0 siblings, 1 reply; 18+ messages in thread
From: Jerin Jacob @ 2020-04-10 12:10 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: dpdk-dev, Rahul Lakkireddy, John McNamara, Marko Kovacevic,
	John Daley, Hyong Youb Kim, Ajit Khaparde, Somnath Kotur,
	Gaetan Rivet, Ziyang Xuan, Xiaoyun Wang, Guoyang Zhou,
	Wei Hu (Xavier), Min Hu (Connor),
	Yisen Zhuang, Beilei Xing, Qi Zhang, Jingjing Wu, Wenzhuo Lu,
	Qiming Yang, Rosen Xu, Konstantin Ananyev, Matan Azrad,
	Shahaf Shuler, Viacheslav Ovsiienko, Jerin Jacob,
	Nithin Dabilpuram, Kiran Kumar K, Rasesh Mody, Shahed Shaikh,
	Andrew Rybchenko, Keith Wiles, Tomasz Duszynski, Liron Himi,
	Thomas Monjalon, Adrien Mazarguil

On Fri, Apr 10, 2020 at 3:00 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> "Flow API" is a method/API to implement various filtering features, on
> its own it doesn't give much context on what features are provided. And
> it is not really a feature, so doesn't fit into feature table.
>
> Also since other filtering related APIs, 'filter_ctrl', has been
> deprecated, flow API is the only supported way in the DPDK to implement
> filtering options, if related filter options announced by PMDs, listing
> "Flow API" as implemented is redundant information.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> Cc: Thomas Monjalon <thomas@monjalon.net>
> Cc: Andrew Rybchenko <arybchenko@solarflare.com>
> Cc: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Cc: Jerin Jacob <jerinj@marvell.com>
>
> v2:
> * Removed feature from all .ini files
> * Removed some references from nic guides
> ---
>  doc/guides/nics/cxgbe.rst                  |  2 +-
>  doc/guides/nics/enic.rst                   |  6 +++---
>  doc/guides/nics/features.rst               | 11 -----------
>  doc/guides/nics/features/bnxt.ini          |  1 -
>  doc/guides/nics/features/cxgbe.ini         |  1 -
>  doc/guides/nics/features/default.ini       |  1 -
>  doc/guides/nics/features/enic.ini          |  1 -
>  doc/guides/nics/features/failsafe.ini      |  1 -
>  doc/guides/nics/features/hinic.ini         |  1 -
>  doc/guides/nics/features/hns3.ini          |  1 -
>  doc/guides/nics/features/hns3_vf.ini       |  1 -
>  doc/guides/nics/features/i40e.ini          |  1 -
>  doc/guides/nics/features/iavf.ini          |  1 -
>  doc/guides/nics/features/ice.ini           |  1 -
>  doc/guides/nics/features/igb.ini           |  1 -
>  doc/guides/nics/features/ipn3ke.ini        |  1 -
>  doc/guides/nics/features/ixgbe.ini         |  1 -
>  doc/guides/nics/features/mlx4.ini          |  1 -
>  doc/guides/nics/features/mlx5.ini          |  1 -
>  doc/guides/nics/features/octeontx2.ini     |  1 -
>  doc/guides/nics/features/octeontx2_vec.ini |  1 -
>  doc/guides/nics/features/octeontx2_vf.ini  |  1 -
>  doc/guides/nics/features/qede.ini          |  1 -
>  doc/guides/nics/features/sfc_efx.ini       |  1 -
>  doc/guides/nics/features/tap.ini           |  1 -
>  doc/guides/nics/hinic.rst                  |  2 +-
>  doc/guides/nics/mlx5.rst                   |  2 +-
>  doc/guides/nics/mvpp2.rst                  |  6 +++---
>  doc/guides/nics/sfc_efx.rst                |  2 +-
>  doc/guides/nics/tap.rst                    |  4 ++--

Since you are changing "Flow API" to  "Packet filtering via Flow API"
to all the .rst file,
Could update doc/guides/nics/octeontx2.rst, From "Generic flow API" to
"Packet filtering via Flow API"

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back
  2020-04-10  9:29 ` [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back Ferruh Yigit
  2020-04-10  9:29   ` [dpdk-dev] [PATCH v2 2/2] doc: remove flow API from the feature list Ferruh Yigit
@ 2020-04-10 12:22   ` Jerin Jacob
  1 sibling, 0 replies; 18+ messages in thread
From: Jerin Jacob @ 2020-04-10 12:22 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: dpdk-dev, John McNamara, Marko Kovacevic, Ajit Khaparde,
	Somnath Kotur, John Daley, Hyong Youb Kim, Beilei Xing, Qi Zhang,
	Wenzhuo Lu, Rosen Xu, Konstantin Ananyev, Matan Azrad,
	Shahaf Shuler, Viacheslav Ovsiienko, Rasesh Mody, Shahed Shaikh,
	Jerin Jacob, Andrew Rybchenko, Thomas Monjalon, dpdk stable,
	Adrien Mazarguil

On Fri, Apr 10, 2020 at 3:00 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> What has been deprecated is enabling filtering support using the
> 'filter_ctrl' APIs [1], now same filtering features can be implemented
> using rte_flow APIs and this is the preferred way for DPDK.
>
> Since those filtering features can be enabled via rte_flow too, better
> to keep them in the feature list, and mark them enabled for the PMDs
> that enabled features via rte_flow API.
> That is why PMD feature announcements not added back, they can announce
> the feature again when 'filter_ctrl' implementation replaced with
> 'rte_flow" ones.
>
> Also filter definitions should be clarified more in the features
> documentation so that all PMDs can easily figure out to announce or
> not these filtering features, also users can understand better what to
> expect from this feature.
>
> Fixes: 030febb6642c ("doc: remove deprecated ethdev features")
> Cc: stable@dpdk.org
>
> [1]
> rte_eth_dev_filter_ctrl()
> rte_eth_dev_filter_supported()
> These APIs were passing using input related to the filtering by
> 'filter_type' and type specific structs.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> Cc: Thomas Monjalon <thomas@monjalon.net>
> Cc: Andrew Rybchenko <arybchenko@solarflare.com>
> Cc: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Cc: Jerin Jacob <jerinj@marvell.com>
>
> v2:
> * Remove deprecated API references
> * Add previously removed filter features back to nic .ini files
> ---
>  doc/guides/nics/features.rst         | 70 ++++++++++++++++++++++++++++
>  doc/guides/nics/features/bnxt.ini    |  3 ++
>  doc/guides/nics/features/default.ini |  7 +++
>  doc/guides/nics/features/enic.ini    |  1 +
>  doc/guides/nics/features/i40e.ini    |  4 ++
>  doc/guides/nics/features/i40e_vf.ini |  1 +
>  doc/guides/nics/features/igb.ini     |  4 ++
>  doc/guides/nics/features/ipn3ke.ini  |  4 ++
>  doc/guides/nics/features/ixgbe.ini   |  5 ++
>  doc/guides/nics/features/mlx5.ini    |  1 +
>  doc/guides/nics/features/qede.ini    |  3 ++
>  11 files changed, 103 insertions(+)
>
> diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
> index edd21c4d8..ea64f81c1 100644
> --- a/doc/guides/nics/features.rst
> +++ b/doc/guides/nics/features.rst
> @@ -370,6 +370,76 @@ Supports filtering of a VLAN Tag identifier.
>  * **[related]    API**: ``rte_eth_dev_vlan_filter()``.
>

IMO, Following enumeration is just a subset, I think, we should
express the FLOW API
capabilities in flow API semantics.
It is a finite set of  ACTIONS and PATTERNS. I think it should be easy
to make Matrix.

Please see: "40.8. RTE Flow Support" section in
https://doc.dpdk.org/guides/nics/octeontx2.html as reference.




> +.. _nic_features_ethertype_filter:
> +
> +Ethertype filter
> +----------------
> +
> +Supports filtering on Ethernet type.
> +
> +* **[implements] Related Flow API pattern and actions.**
> +
> +
> +.. _nic_features_ntuple_filter:
> +
> +N-tuple filter
> +--------------
> +
> +Supports filtering on N-tuple values.
> +
> +* **[implements] Related Flow API pattern and actions.**
> +
> +
> +.. _nic_features_syn_filter:
> +
> +SYN filter
> +----------
> +
> +Supports TCP syn filtering.
> +
> +* **[implements] Related Flow API pattern and actions.**
> +
> +
> +.. _nic_features_tunnel_filter:
> +
> +Tunnel filter
> +-------------
> +
> +Supports tunnel filtering.
> +
> +* **[implements] Related Flow API pattern and actions.**
> +
> +
> +.. _nic_features_flexible_filter:
> +
> +Flexible filter
> +---------------
> +
> +Supports a flexible (non-tuple or Ethertype) filter.
> +
> +* **[implements] Related Flow API pattern and actions.**
> +
> +
> +.. _nic_features_hash_filter:
> +
> +Hash filter
> +-----------
> +
> +Supports Hash filtering.
> +
> +* **[implements] Related Flow API pattern and actions.**
> +
> +
> +.. _nic_features_flow_director:
> +
> +Flow director
> +-------------
> +
> +Supports Flow Director style filtering to queues.
> +
> +* **[implements] Related Flow API pattern and actions.**
> +
> +
>  .. _nic_features_flow_control:
>
>  Flow control
> diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
> index 37a99e336..e359c157a 100644
> --- a/doc/guides/nics/features/bnxt.ini
> +++ b/doc/guides/nics/features/bnxt.ini
> @@ -24,6 +24,9 @@ RSS reta update      = Y
>  VMDq                 = Y
>  SR-IOV               = Y
>  VLAN filter          = Y
> +Ethertype filter     = Y
> +N-tuple filter       = Y
> +Flow director        = Y
>  Flow control         = Y
>  Flow API             = Y
>  CRC offload          = Y
> diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini
> index 4d0ad324e..cc229e7ae 100644
> --- a/doc/guides/nics/features/default.ini
> +++ b/doc/guides/nics/features/default.ini
> @@ -37,6 +37,13 @@ VMDq                 =
>  SR-IOV               =
>  DCB                  =
>  VLAN filter          =
> +Ethertype filter     =
> +N-tuple filter       =
> +SYN filter           =
> +Tunnel filter        =
> +Flexible filter      =
> +Hash filter          =
> +Flow director        =
>  Flow control         =
>  Flow API             =
>  Rate limitation      =
> diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini
> index 1a065a84f..d0f3ae23f 100644
> --- a/doc/guides/nics/features/enic.ini
> +++ b/doc/guides/nics/features/enic.ini
> @@ -24,6 +24,7 @@ Inner RSS            = Y
>  SR-IOV               = Y
>  CRC offload          = Y
>  VLAN offload         = Y
> +Flow director        = Y
>  Flow API             = Y
>  L3 checksum offload  = Y
>  L4 checksum offload  = Y
> diff --git a/doc/guides/nics/features/i40e.ini b/doc/guides/nics/features/i40e.ini
> index a326f7345..0b9bd99be 100644
> --- a/doc/guides/nics/features/i40e.ini
> +++ b/doc/guides/nics/features/i40e.ini
> @@ -32,6 +32,10 @@ Flow API             = Y
>  Traffic mirroring    = Y
>  CRC offload          = Y
>  VLAN offload         = Y
> +Ethertype filter     = Y
> +Tunnel filter        = Y
> +Hash filter          = Y
> +Flow director        = Y
>  QinQ offload         = P
>  L3 checksum offload  = P
>  L4 checksum offload  = P
> diff --git a/doc/guides/nics/features/i40e_vf.ini b/doc/guides/nics/features/i40e_vf.ini
> index 9f95063d2..c5cd3f5cb 100644
> --- a/doc/guides/nics/features/i40e_vf.ini
> +++ b/doc/guides/nics/features/i40e_vf.ini
> @@ -19,6 +19,7 @@ RSS hash             = Y
>  RSS key update       = Y
>  RSS reta update      = Y
>  VLAN filter          = Y
> +Hash filter          = Y
>  CRC offload          = Y
>  VLAN offload         = Y
>  QinQ offload         = P
> diff --git a/doc/guides/nics/features/igb.ini b/doc/guides/nics/features/igb.ini
> index 0351f8495..c53fd0757 100644
> --- a/doc/guides/nics/features/igb.ini
> +++ b/doc/guides/nics/features/igb.ini
> @@ -22,6 +22,10 @@ VMDq                 = Y
>  SR-IOV               = Y
>  DCB                  = Y
>  VLAN filter          = Y
> +Ethertype filter     = Y
> +N-tuple filter       = Y
> +SYN filter           = Y
> +Flexible filter      = Y
>  Flow control         = Y
>  Flow API             = Y
>  CRC offload          = Y
> diff --git a/doc/guides/nics/features/ipn3ke.ini b/doc/guides/nics/features/ipn3ke.ini
> index 47a6526be..a194e3564 100644
> --- a/doc/guides/nics/features/ipn3ke.ini
> +++ b/doc/guides/nics/features/ipn3ke.ini
> @@ -25,6 +25,10 @@ VMDq                 = Y
>  SR-IOV               = Y
>  DCB                  = Y
>  VLAN filter          = Y
> +Ethertype filter     = Y
> +Tunnel filter        = Y
> +Hash filter          = Y
> +Flow director        = Y
>  Flow control         = Y
>  Flow API             = Y
>  Traffic mirroring    = Y
> diff --git a/doc/guides/nics/features/ixgbe.ini b/doc/guides/nics/features/ixgbe.ini
> index fab0487fa..724cf8976 100644
> --- a/doc/guides/nics/features/ixgbe.ini
> +++ b/doc/guides/nics/features/ixgbe.ini
> @@ -24,6 +24,11 @@ VMDq                 = Y
>  SR-IOV               = Y
>  DCB                  = Y
>  VLAN filter          = Y
> +Ethertype filter     = Y
> +N-tuple filter       = Y
> +SYN filter           = Y
> +Tunnel filter        = Y
> +Flow director        = Y
>  Flow control         = Y
>  Flow API             = Y
>  Rate limitation      = Y
> diff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini
> index 54ec95db7..5f4a96b7c 100644
> --- a/doc/guides/nics/features/mlx5.ini
> +++ b/doc/guides/nics/features/mlx5.ini
> @@ -26,6 +26,7 @@ RSS reta update      = Y
>  Inner RSS            = Y
>  SR-IOV               = Y
>  VLAN filter          = Y
> +Flow director        = Y
>  Flow control         = Y
>  Flow API             = Y
>  CRC offload          = Y
> diff --git a/doc/guides/nics/features/qede.ini b/doc/guides/nics/features/qede.ini
> index 20c90e626..f69e4f843 100644
> --- a/doc/guides/nics/features/qede.ini
> +++ b/doc/guides/nics/features/qede.ini
> @@ -19,6 +19,9 @@ RSS hash             = Y
>  RSS key update       = Y
>  RSS reta update      = Y
>  VLAN filter          = Y
> +N-tuple filter       = Y
> +Tunnel filter        = Y
> +Flow director        = Y
>  Flow control         = Y
>  Flow API             = Y
>  CRC offload          = Y
> --
> 2.25.2
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH v2 2/2] doc: remove flow API from the feature list
  2020-04-10 12:10     ` Jerin Jacob
@ 2020-04-10 12:34       ` Thomas Monjalon
  2020-04-10 12:38         ` Jerin Jacob
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Monjalon @ 2020-04-10 12:34 UTC (permalink / raw)
  To: Ferruh Yigit, Jerin Jacob
  Cc: dpdk-dev, Rahul Lakkireddy, John McNamara, Marko Kovacevic,
	John Daley, Hyong Youb Kim, Ajit Khaparde, Somnath Kotur,
	Gaetan Rivet, Ziyang Xuan, Xiaoyun Wang, Guoyang Zhou,
	Wei Hu (Xavier), Min Hu (Connor),
	Yisen Zhuang, Beilei Xing, Qi Zhang, Jingjing Wu, Wenzhuo Lu,
	Qiming Yang, Rosen Xu, Konstantin Ananyev, Matan Azrad,
	Shahaf Shuler, Viacheslav Ovsiienko, Jerin Jacob,
	Nithin Dabilpuram, Kiran Kumar K, Rasesh Mody, Shahed Shaikh,
	Andrew Rybchenko, Keith Wiles, Tomasz Duszynski, Liron Himi,
	Adrien Mazarguil

10/04/2020 14:10, Jerin Jacob:
> On Fri, Apr 10, 2020 at 3:00 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> >
> > "Flow API" is a method/API to implement various filtering features, on
> > its own it doesn't give much context on what features are provided. And
> > it is not really a feature, so doesn't fit into feature table.
> >
> > Also since other filtering related APIs, 'filter_ctrl', has been
> > deprecated, flow API is the only supported way in the DPDK to implement
> > filtering options, if related filter options announced by PMDs, listing
> > "Flow API" as implemented is redundant information.
> >
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> 
> Since you are changing "Flow API" to  "Packet filtering via Flow API"
> to all the .rst file,
> Could update doc/guides/nics/octeontx2.rst, From "Generic flow API" to
> "Packet filtering via Flow API"

Wait
rte_flow is not only about filtering.
rte_flow can configure any flow-related offload,
including encapsulation or header update.



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [dpdk-dev] [PATCH v2 2/2] doc: remove flow API from the feature list
  2020-04-10 12:34       ` Thomas Monjalon
@ 2020-04-10 12:38         ` Jerin Jacob
  0 siblings, 0 replies; 18+ messages in thread
From: Jerin Jacob @ 2020-04-10 12:38 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Ferruh Yigit, dpdk-dev, Rahul Lakkireddy, John McNamara,
	Marko Kovacevic, John Daley, Hyong Youb Kim, Ajit Khaparde,
	Somnath Kotur, Gaetan Rivet, Ziyang Xuan, Xiaoyun Wang,
	Guoyang Zhou, Wei Hu (Xavier), Min Hu (Connor),
	Yisen Zhuang, Beilei Xing, Qi Zhang, Jingjing Wu, Wenzhuo Lu,
	Qiming Yang, Rosen Xu, Konstantin Ananyev, Matan Azrad,
	Shahaf Shuler, Viacheslav Ovsiienko, Jerin Jacob,
	Nithin Dabilpuram, Kiran Kumar K, Rasesh Mody, Shahed Shaikh,
	Andrew Rybchenko, Keith Wiles, Tomasz Duszynski, Liron Himi,
	Adrien Mazarguil

On Fri, Apr 10, 2020 at 6:04 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 10/04/2020 14:10, Jerin Jacob:
> > On Fri, Apr 10, 2020 at 3:00 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> > >
> > > "Flow API" is a method/API to implement various filtering features, on
> > > its own it doesn't give much context on what features are provided. And
> > > it is not really a feature, so doesn't fit into feature table.
> > >
> > > Also since other filtering related APIs, 'filter_ctrl', has been
> > > deprecated, flow API is the only supported way in the DPDK to implement
> > > filtering options, if related filter options announced by PMDs, listing
> > > "Flow API" as implemented is redundant information.
> > >
> > > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >
> > Since you are changing "Flow API" to  "Packet filtering via Flow API"
> > to all the .rst file,
> > Could update doc/guides/nics/octeontx2.rst, From "Generic flow API" to
> > "Packet filtering via Flow API"
>
> Wait
> rte_flow is not only about filtering.
> rte_flow can configure any flow-related offload,
> including encapsulation or header update.

Agree. Then it better to change to "Generic flow API" in all the docs.

>
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2020-04-10 12:38 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-25 12:51 [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back Ferruh Yigit
2019-10-25 12:51 ` [dpdk-dev] [PATCH 2/2] doc: remove flow API from the feature list Ferruh Yigit
2019-10-25 13:26   ` Thomas Monjalon
2019-10-25 13:39     ` Jerin Jacob
2020-04-10  8:44       ` Ferruh Yigit
2020-04-10  8:56         ` Thomas Monjalon
2020-04-10  9:04           ` Jerin Jacob
2020-04-10  9:20             ` Thomas Monjalon
2020-04-10  9:27               ` Ferruh Yigit
2019-10-25 13:23 ` [dpdk-dev] [PATCH 1/2] doc: add PMD filtering features back Thomas Monjalon
2020-04-10  8:53   ` Ferruh Yigit
2020-04-10  9:29 ` [dpdk-dev] [PATCH v2] doc: remove flow API from the feature list Ferruh Yigit
2020-04-10  9:29 ` [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back Ferruh Yigit
2020-04-10  9:29   ` [dpdk-dev] [PATCH v2 2/2] doc: remove flow API from the feature list Ferruh Yigit
2020-04-10 12:10     ` Jerin Jacob
2020-04-10 12:34       ` Thomas Monjalon
2020-04-10 12:38         ` Jerin Jacob
2020-04-10 12:22   ` [dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back Jerin Jacob

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).