On Fri, Apr 10, 2020 at 3:00 PM Ferruh Yigit <[email protected]> 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: [email protected] > > [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 <[email protected]> > --- > Cc: Thomas Monjalon <[email protected]> > Cc: Andrew Rybchenko <[email protected]> > Cc: Adrien Mazarguil <[email protected]> > Cc: Ajit Khaparde <[email protected]> > Cc: Jerin Jacob <[email protected]> > > 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 >

