[dpdk-dev] [PATCH v2 1/2] doc: add PMD filtering features back

Jerin Jacob jerinjacobk at gmail.com
Fri Apr 10 14:22:42 CEST 2020


On Fri, Apr 10, 2020 at 3:00 PM Ferruh Yigit <ferruh.yigit at 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 at 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 at intel.com>
> ---
> Cc: Thomas Monjalon <thomas at monjalon.net>
> Cc: Andrew Rybchenko <arybchenko at solarflare.com>
> Cc: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
> Cc: Ajit Khaparde <ajit.khaparde at broadcom.com>
> Cc: Jerin Jacob <jerinj at 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
>


More information about the dev mailing list