[v2,1/2] doc: add PMD filtering features back

Message ID 20200410092956.951168-1-ferruh.yigit@intel.com (mailing list archive)
State Rejected, archived
Delegated to: Ferruh Yigit
Headers
Series [v2,1/2] doc: add PMD filtering features back |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK

Commit Message

Ferruh Yigit April 10, 2020, 9:29 a.m. UTC
  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(+)
  

Comments

Jerin Jacob April 10, 2020, 12:22 p.m. UTC | #1
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
>
  

Patch

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