DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] doc: fix support table for ETH and VLAN flow items
@ 2022-03-16 12:01 Ilya Maximets
  2022-04-20 17:51 ` Ferruh Yigit
  2022-09-12 10:09 ` Thomas Monjalon
  0 siblings, 2 replies; 12+ messages in thread
From: Ilya Maximets @ 2022-03-16 12:01 UTC (permalink / raw)
  To: dev
  Cc: Ajit Khaparde, Rahul Lakkireddy, Hemant Agrawal, Haiyue Wang,
	John Daley, Guoyang Zhou, Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Viacheslav Ovsiienko, Liron Himi, Jiawen Wu, Ori Kam,
	Dekel Peled, Thomas Monjalon, Ilya Maximets, stable

'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
Other drivers doesn't support it.  Most of them (like i40e) just
ignore it silently.  Some drivers (like mlx4) never had a full
support of the eth item even before introduction of 'has_vlan'
(mlx4 allows to match on the destination MAC only).

Same for the 'has_more_vlan' flag of the vlan item.

Changing the support level to 'partial' for all such drivers.
This doesn't solve the issue, but at least marks the problematic
drivers.

Some details are available in:
  https://bugs.dpdk.org/show_bug.cgi?id=958

Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
Cc: stable@dpdk.org

Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
---

I added the stable in CC, but the patch should be extended while
backporting.  For 21.11 the cnxk driver should be also updated,
for 20.11, sfc driver should also be included.

 doc/guides/nics/features/bnxt.ini   | 4 ++--
 doc/guides/nics/features/cxgbe.ini  | 4 ++--
 doc/guides/nics/features/dpaa2.ini  | 4 ++--
 doc/guides/nics/features/e1000.ini  | 2 +-
 doc/guides/nics/features/enic.ini   | 4 ++--
 doc/guides/nics/features/hinic.ini  | 2 +-
 doc/guides/nics/features/hns3.ini   | 4 ++--
 doc/guides/nics/features/i40e.ini   | 4 ++--
 doc/guides/nics/features/iavf.ini   | 4 ++--
 doc/guides/nics/features/ice.ini    | 4 ++--
 doc/guides/nics/features/igc.ini    | 2 +-
 doc/guides/nics/features/ipn3ke.ini | 4 ++--
 doc/guides/nics/features/ixgbe.ini  | 4 ++--
 doc/guides/nics/features/mlx4.ini   | 4 ++--
 doc/guides/nics/features/mvpp2.ini  | 4 ++--
 doc/guides/nics/features/tap.ini    | 4 ++--
 doc/guides/nics/features/txgbe.ini  | 4 ++--
 17 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
index afb5414b49..ac682c5779 100644
--- a/doc/guides/nics/features/bnxt.ini
+++ b/doc/guides/nics/features/bnxt.ini
@@ -57,7 +57,7 @@ Perf doc             = Y
 
 [rte_flow items]
 any                  = Y
-eth                  = Y
+eth                  = P
 ipv4                 = Y
 ipv6                 = Y
 gre                  = Y
@@ -71,7 +71,7 @@ represented_port     = Y
 tcp                  = Y
 udp                  = Y
 vf                   = Y
-vlan                 = Y
+vlan                 = P
 vxlan                = Y
 
 [rte_flow actions]
diff --git a/doc/guides/nics/features/cxgbe.ini b/doc/guides/nics/features/cxgbe.ini
index f674803ec4..f9912390fb 100644
--- a/doc/guides/nics/features/cxgbe.ini
+++ b/doc/guides/nics/features/cxgbe.ini
@@ -36,7 +36,7 @@ x86-64               = Y
 Usage doc            = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 ipv4                 = Y
 ipv6                 = Y
 pf                   = Y
@@ -44,7 +44,7 @@ phy_port             = Y
 tcp                  = Y
 udp                  = Y
 vf                   = Y
-vlan                 = Y
+vlan                 = P
 
 [rte_flow actions]
 count                = Y
diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini
index 4c06841a87..09ce66c788 100644
--- a/doc/guides/nics/features/dpaa2.ini
+++ b/doc/guides/nics/features/dpaa2.ini
@@ -31,7 +31,7 @@ ARMv8                = Y
 Usage doc            = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 gre                  = Y
 icmp                 = Y
 ipv4                 = Y
@@ -41,7 +41,7 @@ raw                  = Y
 sctp                 = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 
 [rte_flow actions]
 drop                 = Y
diff --git a/doc/guides/nics/features/e1000.ini b/doc/guides/nics/features/e1000.ini
index e4bdef6da9..a9cbed1c3c 100644
--- a/doc/guides/nics/features/e1000.ini
+++ b/doc/guides/nics/features/e1000.ini
@@ -31,7 +31,7 @@ x86-32               = Y
 x86-64               = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 ipv4                 = Y
 ipv6                 = Y
 raw                  = Y
diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini
index 61bec4910e..6dbea9f36e 100644
--- a/doc/guides/nics/features/enic.ini
+++ b/doc/guides/nics/features/enic.ini
@@ -40,7 +40,7 @@ Usage doc            = Y
 
 [rte_flow items]
 ecpri                = Y
-eth                  = Y
+eth                  = P
 geneve               = Y
 geneve_opt           = Y
 gtp                  = Y
@@ -52,7 +52,7 @@ raw                  = Y
 sctp                 = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 vxlan                = Y
 
 [rte_flow actions]
diff --git a/doc/guides/nics/features/hinic.ini b/doc/guides/nics/features/hinic.ini
index 9f6f0ebf3a..ada6607fe9 100644
--- a/doc/guides/nics/features/hinic.ini
+++ b/doc/guides/nics/features/hinic.ini
@@ -40,7 +40,7 @@ ARMv8                = Y
 
 [rte_flow items]
 any                  = Y
-eth                  = Y
+eth                  = P
 icmp                 = Y
 icmp6                = Y
 ipv4                 = Y
diff --git a/doc/guides/nics/features/hns3.ini b/doc/guides/nics/features/hns3.ini
index 405b94f05c..338b4e6864 100644
--- a/doc/guides/nics/features/hns3.ini
+++ b/doc/guides/nics/features/hns3.ini
@@ -51,7 +51,7 @@ Linux                = Y
 ARMv8                = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 geneve               = Y
 icmp                 = Y
 ipv4                 = Y
@@ -60,7 +60,7 @@ nvgre                = Y
 sctp                 = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 vxlan                = Y
 vxlan_gpe            = Y
 
diff --git a/doc/guides/nics/features/i40e.ini b/doc/guides/nics/features/i40e.ini
index dd18fec217..6e141de326 100644
--- a/doc/guides/nics/features/i40e.ini
+++ b/doc/guides/nics/features/i40e.ini
@@ -54,7 +54,7 @@ Power8               = Y
 [rte_flow items]
 ah                   = Y
 esp                  = Y
-eth                  = Y
+eth                  = P
 gre                  = Y
 gtpc                 = Y
 gtpu                 = Y
@@ -69,7 +69,7 @@ sctp                 = Y
 tcp                  = Y
 udp                  = Y
 vf                   = Y
-vlan                 = Y
+vlan                 = P
 vxlan                = Y
 
 [rte_flow actions]
diff --git a/doc/guides/nics/features/iavf.ini b/doc/guides/nics/features/iavf.ini
index 01f514239e..c6694a1a94 100644
--- a/doc/guides/nics/features/iavf.ini
+++ b/doc/guides/nics/features/iavf.ini
@@ -40,7 +40,7 @@ ah                   = Y
 arp_eth_ipv4         = Y
 ecpri                = Y
 esp                  = Y
-eth                  = Y
+eth                  = P
 gre                  = Y
 gtpc                 = Y
 gtpu                 = Y
@@ -57,7 +57,7 @@ ppp                  = Y
 sctp                 = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 
 [rte_flow actions]
 count                = Y
diff --git a/doc/guides/nics/features/ice.ini b/doc/guides/nics/features/ice.ini
index 7861790a51..0bd2f2d7b2 100644
--- a/doc/guides/nics/features/ice.ini
+++ b/doc/guides/nics/features/ice.ini
@@ -53,7 +53,7 @@ ah                   = Y
 any                  = Y
 arp_eth_ipv4         = Y
 esp                  = Y
-eth                  = Y
+eth                  = P
 gtpu                 = Y
 gtp_psc              = Y
 icmp                 = Y
@@ -71,7 +71,7 @@ raw                  = Y
 sctp                 = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 vxlan                = Y
 
 [rte_flow actions]
diff --git a/doc/guides/nics/features/igc.ini b/doc/guides/nics/features/igc.ini
index f2c6fa28ad..b5deea3f61 100644
--- a/doc/guides/nics/features/igc.ini
+++ b/doc/guides/nics/features/igc.ini
@@ -35,7 +35,7 @@ Linux                = Y
 x86-64               = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 ipv4                 = Y
 ipv6                 = Y
 tcp                  = Y
diff --git a/doc/guides/nics/features/ipn3ke.ini b/doc/guides/nics/features/ipn3ke.ini
index defc39f525..1f6b780273 100644
--- a/doc/guides/nics/features/ipn3ke.ini
+++ b/doc/guides/nics/features/ipn3ke.ini
@@ -47,13 +47,13 @@ x86-32               = Y
 x86-64               = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 ipv4                 = Y
 mpls                 = Y
 nvgre                = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 vxlan                = Y
 
 [rte_flow actions]
diff --git a/doc/guides/nics/features/ixgbe.ini b/doc/guides/nics/features/ixgbe.ini
index c5333d1142..e5cef81f9a 100644
--- a/doc/guides/nics/features/ixgbe.ini
+++ b/doc/guides/nics/features/ixgbe.ini
@@ -56,7 +56,7 @@ x86-32               = Y
 x86-64               = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 e_tag                = Y
 fuzzy                = Y
 ipv4                 = Y
@@ -66,7 +66,7 @@ raw                  = Y
 sctp                 = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 vxlan                = Y
 
 [rte_flow actions]
diff --git a/doc/guides/nics/features/mlx4.ini b/doc/guides/nics/features/mlx4.ini
index 82f6f0bc0b..03f59a5f8b 100644
--- a/doc/guides/nics/features/mlx4.ini
+++ b/doc/guides/nics/features/mlx4.ini
@@ -38,11 +38,11 @@ x86-64               = Y
 Usage doc            = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 ipv4                 = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 
 [rte_flow actions]
 drop                 = Y
diff --git a/doc/guides/nics/features/mvpp2.ini b/doc/guides/nics/features/mvpp2.ini
index 1bcf74875e..653c9d08cb 100644
--- a/doc/guides/nics/features/mvpp2.ini
+++ b/doc/guides/nics/features/mvpp2.ini
@@ -24,13 +24,13 @@ ARMv8                = Y
 Usage doc            = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 ipv4                 = Y
 ipv6                 = Y
 raw                  = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 
 [rte_flow actions]
 drop                 = Y
diff --git a/doc/guides/nics/features/tap.ini b/doc/guides/nics/features/tap.ini
index b4a356e5d5..f26355e57f 100644
--- a/doc/guides/nics/features/tap.ini
+++ b/doc/guides/nics/features/tap.ini
@@ -27,12 +27,12 @@ x86-64               = Y
 Usage doc            = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 ipv4                 = Y
 ipv6                 = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 
 [rte_flow actions]
 drop                 = Y
diff --git a/doc/guides/nics/features/txgbe.ini b/doc/guides/nics/features/txgbe.ini
index 22c74ba9e3..e21083052c 100644
--- a/doc/guides/nics/features/txgbe.ini
+++ b/doc/guides/nics/features/txgbe.ini
@@ -53,7 +53,7 @@ x86-32               = Y
 x86-64               = Y
 
 [rte_flow items]
-eth                  = Y
+eth                  = P
 e_tag                = Y
 fuzzy                = Y
 ipv4                 = Y
@@ -63,7 +63,7 @@ raw                  = Y
 sctp                 = Y
 tcp                  = Y
 udp                  = Y
-vlan                 = Y
+vlan                 = P
 vxlan                = Y
 
 [rte_flow actions]
-- 
2.34.1


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

* Re: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-03-16 12:01 [PATCH] doc: fix support table for ETH and VLAN flow items Ilya Maximets
@ 2022-04-20 17:51 ` Ferruh Yigit
  2022-04-26  8:55   ` Asaf Penso
  2022-09-12 10:09 ` Thomas Monjalon
  1 sibling, 1 reply; 12+ messages in thread
From: Ferruh Yigit @ 2022-04-20 17:51 UTC (permalink / raw)
  To: Ilya Maximets, dev, Asaf Penso
  Cc: Ajit Khaparde, Rahul Lakkireddy, Hemant Agrawal, Haiyue Wang,
	John Daley, Guoyang Zhou, Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Viacheslav Ovsiienko, Liron Himi, Jiawen Wu, Ori Kam,
	Dekel Peled, Thomas Monjalon, stable, Thomas Monjalon

On 3/16/2022 12:01 PM, Ilya Maximets wrote:
> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
> Other drivers doesn't support it.  Most of them (like i40e) just
> ignore it silently.  Some drivers (like mlx4) never had a full
> support of the eth item even before introduction of 'has_vlan'
> (mlx4 allows to match on the destination MAC only).
> 
> Same for the 'has_more_vlan' flag of the vlan item.
> 
> Changing the support level to 'partial' for all such drivers.
> This doesn't solve the issue, but at least marks the problematic
> drivers.
> 

Hi Asaf,

This was the kind of maintanance issue I was referring to have this kind 
of capability documentation for flow API.

All below drivers are using 'RTE_FLOW_ITEM_TYPE_VLAN', the script 
verifies this, but are they actually supporting VLAN filter and in which 
case?

We need comment from driver maintainers about the support level.

> Some details are available in:
>    https://bugs.dpdk.org/show_bug.cgi?id=958
> 
> Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> ---
> 
> I added the stable in CC, but the patch should be extended while
> backporting.  For 21.11 the cnxk driver should be also updated,
> for 20.11, sfc driver should also be included.
> 
>   doc/guides/nics/features/bnxt.ini   | 4 ++--
>   doc/guides/nics/features/cxgbe.ini  | 4 ++--
>   doc/guides/nics/features/dpaa2.ini  | 4 ++--
>   doc/guides/nics/features/e1000.ini  | 2 +-
>   doc/guides/nics/features/enic.ini   | 4 ++--
>   doc/guides/nics/features/hinic.ini  | 2 +-
>   doc/guides/nics/features/hns3.ini   | 4 ++--
>   doc/guides/nics/features/i40e.ini   | 4 ++--
>   doc/guides/nics/features/iavf.ini   | 4 ++--
>   doc/guides/nics/features/ice.ini    | 4 ++--
>   doc/guides/nics/features/igc.ini    | 2 +-
>   doc/guides/nics/features/ipn3ke.ini | 4 ++--
>   doc/guides/nics/features/ixgbe.ini  | 4 ++--
>   doc/guides/nics/features/mlx4.ini   | 4 ++--
>   doc/guides/nics/features/mvpp2.ini  | 4 ++--
>   doc/guides/nics/features/tap.ini    | 4 ++--
>   doc/guides/nics/features/txgbe.ini  | 4 ++--
>   17 files changed, 31 insertions(+), 31 deletions(-)
> 
> diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
> index afb5414b49..ac682c5779 100644
> --- a/doc/guides/nics/features/bnxt.ini
> +++ b/doc/guides/nics/features/bnxt.ini
> @@ -57,7 +57,7 @@ Perf doc             = Y
>   
>   [rte_flow items]
>   any                  = Y
> -eth                  = Y
> +eth                  = P
>   ipv4                 = Y
>   ipv6                 = Y
>   gre                  = Y
> @@ -71,7 +71,7 @@ represented_port     = Y
>   tcp                  = Y
>   udp                  = Y
>   vf                   = Y
> -vlan                 = Y
> +vlan                 = P
>   vxlan                = Y
>   
>   [rte_flow actions]
> diff --git a/doc/guides/nics/features/cxgbe.ini b/doc/guides/nics/features/cxgbe.ini
> index f674803ec4..f9912390fb 100644
> --- a/doc/guides/nics/features/cxgbe.ini
> +++ b/doc/guides/nics/features/cxgbe.ini
> @@ -36,7 +36,7 @@ x86-64               = Y
>   Usage doc            = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   ipv4                 = Y
>   ipv6                 = Y
>   pf                   = Y
> @@ -44,7 +44,7 @@ phy_port             = Y
>   tcp                  = Y
>   udp                  = Y
>   vf                   = Y
> -vlan                 = Y
> +vlan                 = P
>   
>   [rte_flow actions]
>   count                = Y
> diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini
> index 4c06841a87..09ce66c788 100644
> --- a/doc/guides/nics/features/dpaa2.ini
> +++ b/doc/guides/nics/features/dpaa2.ini
> @@ -31,7 +31,7 @@ ARMv8                = Y
>   Usage doc            = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   gre                  = Y
>   icmp                 = Y
>   ipv4                 = Y
> @@ -41,7 +41,7 @@ raw                  = Y
>   sctp                 = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   
>   [rte_flow actions]
>   drop                 = Y
> diff --git a/doc/guides/nics/features/e1000.ini b/doc/guides/nics/features/e1000.ini
> index e4bdef6da9..a9cbed1c3c 100644
> --- a/doc/guides/nics/features/e1000.ini
> +++ b/doc/guides/nics/features/e1000.ini
> @@ -31,7 +31,7 @@ x86-32               = Y
>   x86-64               = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   ipv4                 = Y
>   ipv6                 = Y
>   raw                  = Y
> diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini
> index 61bec4910e..6dbea9f36e 100644
> --- a/doc/guides/nics/features/enic.ini
> +++ b/doc/guides/nics/features/enic.ini
> @@ -40,7 +40,7 @@ Usage doc            = Y
>   
>   [rte_flow items]
>   ecpri                = Y
> -eth                  = Y
> +eth                  = P
>   geneve               = Y
>   geneve_opt           = Y
>   gtp                  = Y
> @@ -52,7 +52,7 @@ raw                  = Y
>   sctp                 = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   vxlan                = Y
>   
>   [rte_flow actions]
> diff --git a/doc/guides/nics/features/hinic.ini b/doc/guides/nics/features/hinic.ini
> index 9f6f0ebf3a..ada6607fe9 100644
> --- a/doc/guides/nics/features/hinic.ini
> +++ b/doc/guides/nics/features/hinic.ini
> @@ -40,7 +40,7 @@ ARMv8                = Y
>   
>   [rte_flow items]
>   any                  = Y
> -eth                  = Y
> +eth                  = P
>   icmp                 = Y
>   icmp6                = Y
>   ipv4                 = Y
> diff --git a/doc/guides/nics/features/hns3.ini b/doc/guides/nics/features/hns3.ini
> index 405b94f05c..338b4e6864 100644
> --- a/doc/guides/nics/features/hns3.ini
> +++ b/doc/guides/nics/features/hns3.ini
> @@ -51,7 +51,7 @@ Linux                = Y
>   ARMv8                = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   geneve               = Y
>   icmp                 = Y
>   ipv4                 = Y
> @@ -60,7 +60,7 @@ nvgre                = Y
>   sctp                 = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   vxlan                = Y
>   vxlan_gpe            = Y
>   
> diff --git a/doc/guides/nics/features/i40e.ini b/doc/guides/nics/features/i40e.ini
> index dd18fec217..6e141de326 100644
> --- a/doc/guides/nics/features/i40e.ini
> +++ b/doc/guides/nics/features/i40e.ini
> @@ -54,7 +54,7 @@ Power8               = Y
>   [rte_flow items]
>   ah                   = Y
>   esp                  = Y
> -eth                  = Y
> +eth                  = P
>   gre                  = Y
>   gtpc                 = Y
>   gtpu                 = Y
> @@ -69,7 +69,7 @@ sctp                 = Y
>   tcp                  = Y
>   udp                  = Y
>   vf                   = Y
> -vlan                 = Y
> +vlan                 = P
>   vxlan                = Y
>   
>   [rte_flow actions]
> diff --git a/doc/guides/nics/features/iavf.ini b/doc/guides/nics/features/iavf.ini
> index 01f514239e..c6694a1a94 100644
> --- a/doc/guides/nics/features/iavf.ini
> +++ b/doc/guides/nics/features/iavf.ini
> @@ -40,7 +40,7 @@ ah                   = Y
>   arp_eth_ipv4         = Y
>   ecpri                = Y
>   esp                  = Y
> -eth                  = Y
> +eth                  = P
>   gre                  = Y
>   gtpc                 = Y
>   gtpu                 = Y
> @@ -57,7 +57,7 @@ ppp                  = Y
>   sctp                 = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   
>   [rte_flow actions]
>   count                = Y
> diff --git a/doc/guides/nics/features/ice.ini b/doc/guides/nics/features/ice.ini
> index 7861790a51..0bd2f2d7b2 100644
> --- a/doc/guides/nics/features/ice.ini
> +++ b/doc/guides/nics/features/ice.ini
> @@ -53,7 +53,7 @@ ah                   = Y
>   any                  = Y
>   arp_eth_ipv4         = Y
>   esp                  = Y
> -eth                  = Y
> +eth                  = P
>   gtpu                 = Y
>   gtp_psc              = Y
>   icmp                 = Y
> @@ -71,7 +71,7 @@ raw                  = Y
>   sctp                 = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   vxlan                = Y
>   
>   [rte_flow actions]
> diff --git a/doc/guides/nics/features/igc.ini b/doc/guides/nics/features/igc.ini
> index f2c6fa28ad..b5deea3f61 100644
> --- a/doc/guides/nics/features/igc.ini
> +++ b/doc/guides/nics/features/igc.ini
> @@ -35,7 +35,7 @@ Linux                = Y
>   x86-64               = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   ipv4                 = Y
>   ipv6                 = Y
>   tcp                  = Y
> diff --git a/doc/guides/nics/features/ipn3ke.ini b/doc/guides/nics/features/ipn3ke.ini
> index defc39f525..1f6b780273 100644
> --- a/doc/guides/nics/features/ipn3ke.ini
> +++ b/doc/guides/nics/features/ipn3ke.ini
> @@ -47,13 +47,13 @@ x86-32               = Y
>   x86-64               = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   ipv4                 = Y
>   mpls                 = Y
>   nvgre                = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   vxlan                = Y
>   
>   [rte_flow actions]
> diff --git a/doc/guides/nics/features/ixgbe.ini b/doc/guides/nics/features/ixgbe.ini
> index c5333d1142..e5cef81f9a 100644
> --- a/doc/guides/nics/features/ixgbe.ini
> +++ b/doc/guides/nics/features/ixgbe.ini
> @@ -56,7 +56,7 @@ x86-32               = Y
>   x86-64               = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   e_tag                = Y
>   fuzzy                = Y
>   ipv4                 = Y
> @@ -66,7 +66,7 @@ raw                  = Y
>   sctp                 = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   vxlan                = Y
>   
>   [rte_flow actions]
> diff --git a/doc/guides/nics/features/mlx4.ini b/doc/guides/nics/features/mlx4.ini
> index 82f6f0bc0b..03f59a5f8b 100644
> --- a/doc/guides/nics/features/mlx4.ini
> +++ b/doc/guides/nics/features/mlx4.ini
> @@ -38,11 +38,11 @@ x86-64               = Y
>   Usage doc            = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   ipv4                 = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   
>   [rte_flow actions]
>   drop                 = Y
> diff --git a/doc/guides/nics/features/mvpp2.ini b/doc/guides/nics/features/mvpp2.ini
> index 1bcf74875e..653c9d08cb 100644
> --- a/doc/guides/nics/features/mvpp2.ini
> +++ b/doc/guides/nics/features/mvpp2.ini
> @@ -24,13 +24,13 @@ ARMv8                = Y
>   Usage doc            = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   ipv4                 = Y
>   ipv6                 = Y
>   raw                  = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   
>   [rte_flow actions]
>   drop                 = Y
> diff --git a/doc/guides/nics/features/tap.ini b/doc/guides/nics/features/tap.ini
> index b4a356e5d5..f26355e57f 100644
> --- a/doc/guides/nics/features/tap.ini
> +++ b/doc/guides/nics/features/tap.ini
> @@ -27,12 +27,12 @@ x86-64               = Y
>   Usage doc            = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   ipv4                 = Y
>   ipv6                 = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   
>   [rte_flow actions]
>   drop                 = Y
> diff --git a/doc/guides/nics/features/txgbe.ini b/doc/guides/nics/features/txgbe.ini
> index 22c74ba9e3..e21083052c 100644
> --- a/doc/guides/nics/features/txgbe.ini
> +++ b/doc/guides/nics/features/txgbe.ini
> @@ -53,7 +53,7 @@ x86-32               = Y
>   x86-64               = Y
>   
>   [rte_flow items]
> -eth                  = Y
> +eth                  = P
>   e_tag                = Y
>   fuzzy                = Y
>   ipv4                 = Y
> @@ -63,7 +63,7 @@ raw                  = Y
>   sctp                 = Y
>   tcp                  = Y
>   udp                  = Y
> -vlan                 = Y
> +vlan                 = P
>   vxlan                = Y
>   
>   [rte_flow actions]


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

* RE: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-04-20 17:51 ` Ferruh Yigit
@ 2022-04-26  8:55   ` Asaf Penso
  2022-04-26 10:47     ` Ferruh Yigit
  0 siblings, 1 reply; 12+ messages in thread
From: Asaf Penso @ 2022-04-26  8:55 UTC (permalink / raw)
  To: Ferruh Yigit, Ilya Maximets, dev, Ori Kam
  Cc: Ajit Khaparde, Rahul Lakkireddy, Hemant Agrawal, Haiyue Wang,
	John Daley, Guoyang Zhou, Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Slava Ovsiienko, Liron Himi, Jiawen Wu, Dekel Peled,
	NBU-Contact-Thomas Monjalon (EXTERNAL),
	stable, NBU-Contact-Thomas Monjalon (EXTERNAL)

>-----Original Message-----
>From: Ferruh Yigit <ferruh.yigit@xilinx.com>
>Sent: Wednesday, April 20, 2022 8:52 PM
>To: Ilya Maximets <i.maximets@ovn.org>; dev@dpdk.org; Asaf Penso
><asafp@nvidia.com>
>Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>; Rahul Lakkireddy
><rahul.lakkireddy@chelsio.com>; Hemant Agrawal
><hemant.agrawal@nxp.com>; Haiyue Wang <haiyue.wang@intel.com>; John
>Daley <johndale@cisco.com>; Guoyang Zhou <zhouguoyang@huawei.com>;
>Min Hu (Connor) <humin29@huawei.com>; Beilei Xing
><beilei.xing@intel.com>; Jingjing Wu <jingjing.wu@intel.com>; Qi Zhang
><qi.z.zhang@intel.com>; Rosen Xu <rosen.xu@intel.com>; Matan Azrad
><matan@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>; Liron Himi
><lironh@marvell.com>; Jiawen Wu <jiawenwu@trustnetic.com>; Ori Kam
><orika@nvidia.com>; Dekel Peled <dekelp@nvidia.com>; NBU-Contact-
>Thomas Monjalon (EXTERNAL) <thomas@monjalon.net>; stable@dpdk.org;
>NBU-Contact-Thomas Monjalon (EXTERNAL) <thomas@monjalon.net>
>Subject: Re: [PATCH] doc: fix support table for ETH and VLAN flow items
>
>On 3/16/2022 12:01 PM, Ilya Maximets wrote:
>> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
>> Other drivers doesn't support it.  Most of them (like i40e) just
>> ignore it silently.  Some drivers (like mlx4) never had a full support
>> of the eth item even before introduction of 'has_vlan'
>> (mlx4 allows to match on the destination MAC only).
>>
>> Same for the 'has_more_vlan' flag of the vlan item.
>>
>> Changing the support level to 'partial' for all such drivers.
>> This doesn't solve the issue, but at least marks the problematic
>> drivers.
>>
>
>Hi Asaf,
>
>This was the kind of maintanance issue I was referring to have this kind of
>capability documentation for flow API.
>
Are you referring to the fact that fields like has_vlan are not part of the table?
If so, you are right, but IMHO having the high level items still allows the users to understand what is supported quickly.
We can have another level of tables per each relevant item to address this specific issue.
In this case, we'll have a table for ETH that elaborates the different fields' support, like has_vlan.
If you are referring to a different issue, please elaborate.


>All below drivers are using 'RTE_FLOW_ITEM_TYPE_VLAN', the script verifies
>this, but are they actually supporting VLAN filter and in which case?
>
>We need comment from driver maintainers about the support level.
 
@Ori Kam, please comment for mlx driver.

>
>> Some details are available in:
>>    https://bugs.dpdk.org/show_bug.cgi?id=958
>>
>> Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN
>> items")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
>> ---
>>
>> I added the stable in CC, but the patch should be extended while
>> backporting.  For 21.11 the cnxk driver should be also updated, for
>> 20.11, sfc driver should also be included.
>>
>>   doc/guides/nics/features/bnxt.ini   | 4 ++--
>>   doc/guides/nics/features/cxgbe.ini  | 4 ++--
>>   doc/guides/nics/features/dpaa2.ini  | 4 ++--
>>   doc/guides/nics/features/e1000.ini  | 2 +-
>>   doc/guides/nics/features/enic.ini   | 4 ++--
>>   doc/guides/nics/features/hinic.ini  | 2 +-
>>   doc/guides/nics/features/hns3.ini   | 4 ++--
>>   doc/guides/nics/features/i40e.ini   | 4 ++--
>>   doc/guides/nics/features/iavf.ini   | 4 ++--
>>   doc/guides/nics/features/ice.ini    | 4 ++--
>>   doc/guides/nics/features/igc.ini    | 2 +-
>>   doc/guides/nics/features/ipn3ke.ini | 4 ++--
>>   doc/guides/nics/features/ixgbe.ini  | 4 ++--
>>   doc/guides/nics/features/mlx4.ini   | 4 ++--
>>   doc/guides/nics/features/mvpp2.ini  | 4 ++--
>>   doc/guides/nics/features/tap.ini    | 4 ++--
>>   doc/guides/nics/features/txgbe.ini  | 4 ++--
>>   17 files changed, 31 insertions(+), 31 deletions(-)
>>
>> diff --git a/doc/guides/nics/features/bnxt.ini
>> b/doc/guides/nics/features/bnxt.ini
>> index afb5414b49..ac682c5779 100644
>> --- a/doc/guides/nics/features/bnxt.ini
>> +++ b/doc/guides/nics/features/bnxt.ini
>> @@ -57,7 +57,7 @@ Perf doc             = Y
>>
>>   [rte_flow items]
>>   any                  = Y
>> -eth                  = Y
>> +eth                  = P
>>   ipv4                 = Y
>>   ipv6                 = Y
>>   gre                  = Y
>> @@ -71,7 +71,7 @@ represented_port     = Y
>>   tcp                  = Y
>>   udp                  = Y
>>   vf                   = Y
>> -vlan                 = Y
>> +vlan                 = P
>>   vxlan                = Y
>>
>>   [rte_flow actions]
>> diff --git a/doc/guides/nics/features/cxgbe.ini
>> b/doc/guides/nics/features/cxgbe.ini
>> index f674803ec4..f9912390fb 100644
>> --- a/doc/guides/nics/features/cxgbe.ini
>> +++ b/doc/guides/nics/features/cxgbe.ini
>> @@ -36,7 +36,7 @@ x86-64               = Y
>>   Usage doc            = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   ipv4                 = Y
>>   ipv6                 = Y
>>   pf                   = Y
>> @@ -44,7 +44,7 @@ phy_port             = Y
>>   tcp                  = Y
>>   udp                  = Y
>>   vf                   = Y
>> -vlan                 = Y
>> +vlan                 = P
>>
>>   [rte_flow actions]
>>   count                = Y
>> diff --git a/doc/guides/nics/features/dpaa2.ini
>> b/doc/guides/nics/features/dpaa2.ini
>> index 4c06841a87..09ce66c788 100644
>> --- a/doc/guides/nics/features/dpaa2.ini
>> +++ b/doc/guides/nics/features/dpaa2.ini
>> @@ -31,7 +31,7 @@ ARMv8                = Y
>>   Usage doc            = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   gre                  = Y
>>   icmp                 = Y
>>   ipv4                 = Y
>> @@ -41,7 +41,7 @@ raw                  = Y
>>   sctp                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>
>>   [rte_flow actions]
>>   drop                 = Y
>> diff --git a/doc/guides/nics/features/e1000.ini
>> b/doc/guides/nics/features/e1000.ini
>> index e4bdef6da9..a9cbed1c3c 100644
>> --- a/doc/guides/nics/features/e1000.ini
>> +++ b/doc/guides/nics/features/e1000.ini
>> @@ -31,7 +31,7 @@ x86-32               = Y
>>   x86-64               = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   ipv4                 = Y
>>   ipv6                 = Y
>>   raw                  = Y
>> diff --git a/doc/guides/nics/features/enic.ini
>> b/doc/guides/nics/features/enic.ini
>> index 61bec4910e..6dbea9f36e 100644
>> --- a/doc/guides/nics/features/enic.ini
>> +++ b/doc/guides/nics/features/enic.ini
>> @@ -40,7 +40,7 @@ Usage doc            = Y
>>
>>   [rte_flow items]
>>   ecpri                = Y
>> -eth                  = Y
>> +eth                  = P
>>   geneve               = Y
>>   geneve_opt           = Y
>>   gtp                  = Y
>> @@ -52,7 +52,7 @@ raw                  = Y
>>   sctp                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>   vxlan                = Y
>>
>>   [rte_flow actions]
>> diff --git a/doc/guides/nics/features/hinic.ini
>> b/doc/guides/nics/features/hinic.ini
>> index 9f6f0ebf3a..ada6607fe9 100644
>> --- a/doc/guides/nics/features/hinic.ini
>> +++ b/doc/guides/nics/features/hinic.ini
>> @@ -40,7 +40,7 @@ ARMv8                = Y
>>
>>   [rte_flow items]
>>   any                  = Y
>> -eth                  = Y
>> +eth                  = P
>>   icmp                 = Y
>>   icmp6                = Y
>>   ipv4                 = Y
>> diff --git a/doc/guides/nics/features/hns3.ini
>> b/doc/guides/nics/features/hns3.ini
>> index 405b94f05c..338b4e6864 100644
>> --- a/doc/guides/nics/features/hns3.ini
>> +++ b/doc/guides/nics/features/hns3.ini
>> @@ -51,7 +51,7 @@ Linux                = Y
>>   ARMv8                = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   geneve               = Y
>>   icmp                 = Y
>>   ipv4                 = Y
>> @@ -60,7 +60,7 @@ nvgre                = Y
>>   sctp                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>   vxlan                = Y
>>   vxlan_gpe            = Y
>>
>> diff --git a/doc/guides/nics/features/i40e.ini
>> b/doc/guides/nics/features/i40e.ini
>> index dd18fec217..6e141de326 100644
>> --- a/doc/guides/nics/features/i40e.ini
>> +++ b/doc/guides/nics/features/i40e.ini
>> @@ -54,7 +54,7 @@ Power8               = Y
>>   [rte_flow items]
>>   ah                   = Y
>>   esp                  = Y
>> -eth                  = Y
>> +eth                  = P
>>   gre                  = Y
>>   gtpc                 = Y
>>   gtpu                 = Y
>> @@ -69,7 +69,7 @@ sctp                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>>   vf                   = Y
>> -vlan                 = Y
>> +vlan                 = P
>>   vxlan                = Y
>>
>>   [rte_flow actions]
>> diff --git a/doc/guides/nics/features/iavf.ini
>> b/doc/guides/nics/features/iavf.ini
>> index 01f514239e..c6694a1a94 100644
>> --- a/doc/guides/nics/features/iavf.ini
>> +++ b/doc/guides/nics/features/iavf.ini
>> @@ -40,7 +40,7 @@ ah                   = Y
>>   arp_eth_ipv4         = Y
>>   ecpri                = Y
>>   esp                  = Y
>> -eth                  = Y
>> +eth                  = P
>>   gre                  = Y
>>   gtpc                 = Y
>>   gtpu                 = Y
>> @@ -57,7 +57,7 @@ ppp                  = Y
>>   sctp                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>
>>   [rte_flow actions]
>>   count                = Y
>> diff --git a/doc/guides/nics/features/ice.ini
>> b/doc/guides/nics/features/ice.ini
>> index 7861790a51..0bd2f2d7b2 100644
>> --- a/doc/guides/nics/features/ice.ini
>> +++ b/doc/guides/nics/features/ice.ini
>> @@ -53,7 +53,7 @@ ah                   = Y
>>   any                  = Y
>>   arp_eth_ipv4         = Y
>>   esp                  = Y
>> -eth                  = Y
>> +eth                  = P
>>   gtpu                 = Y
>>   gtp_psc              = Y
>>   icmp                 = Y
>> @@ -71,7 +71,7 @@ raw                  = Y
>>   sctp                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>   vxlan                = Y
>>
>>   [rte_flow actions]
>> diff --git a/doc/guides/nics/features/igc.ini
>> b/doc/guides/nics/features/igc.ini
>> index f2c6fa28ad..b5deea3f61 100644
>> --- a/doc/guides/nics/features/igc.ini
>> +++ b/doc/guides/nics/features/igc.ini
>> @@ -35,7 +35,7 @@ Linux                = Y
>>   x86-64               = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   ipv4                 = Y
>>   ipv6                 = Y
>>   tcp                  = Y
>> diff --git a/doc/guides/nics/features/ipn3ke.ini
>> b/doc/guides/nics/features/ipn3ke.ini
>> index defc39f525..1f6b780273 100644
>> --- a/doc/guides/nics/features/ipn3ke.ini
>> +++ b/doc/guides/nics/features/ipn3ke.ini
>> @@ -47,13 +47,13 @@ x86-32               = Y
>>   x86-64               = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   ipv4                 = Y
>>   mpls                 = Y
>>   nvgre                = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>   vxlan                = Y
>>
>>   [rte_flow actions]
>> diff --git a/doc/guides/nics/features/ixgbe.ini
>> b/doc/guides/nics/features/ixgbe.ini
>> index c5333d1142..e5cef81f9a 100644
>> --- a/doc/guides/nics/features/ixgbe.ini
>> +++ b/doc/guides/nics/features/ixgbe.ini
>> @@ -56,7 +56,7 @@ x86-32               = Y
>>   x86-64               = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   e_tag                = Y
>>   fuzzy                = Y
>>   ipv4                 = Y
>> @@ -66,7 +66,7 @@ raw                  = Y
>>   sctp                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>   vxlan                = Y
>>
>>   [rte_flow actions]
>> diff --git a/doc/guides/nics/features/mlx4.ini
>> b/doc/guides/nics/features/mlx4.ini
>> index 82f6f0bc0b..03f59a5f8b 100644
>> --- a/doc/guides/nics/features/mlx4.ini
>> +++ b/doc/guides/nics/features/mlx4.ini
>> @@ -38,11 +38,11 @@ x86-64               = Y
>>   Usage doc            = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   ipv4                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>
>>   [rte_flow actions]
>>   drop                 = Y
>> diff --git a/doc/guides/nics/features/mvpp2.ini
>> b/doc/guides/nics/features/mvpp2.ini
>> index 1bcf74875e..653c9d08cb 100644
>> --- a/doc/guides/nics/features/mvpp2.ini
>> +++ b/doc/guides/nics/features/mvpp2.ini
>> @@ -24,13 +24,13 @@ ARMv8                = Y
>>   Usage doc            = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   ipv4                 = Y
>>   ipv6                 = Y
>>   raw                  = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>
>>   [rte_flow actions]
>>   drop                 = Y
>> diff --git a/doc/guides/nics/features/tap.ini
>> b/doc/guides/nics/features/tap.ini
>> index b4a356e5d5..f26355e57f 100644
>> --- a/doc/guides/nics/features/tap.ini
>> +++ b/doc/guides/nics/features/tap.ini
>> @@ -27,12 +27,12 @@ x86-64               = Y
>>   Usage doc            = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   ipv4                 = Y
>>   ipv6                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>
>>   [rte_flow actions]
>>   drop                 = Y
>> diff --git a/doc/guides/nics/features/txgbe.ini
>> b/doc/guides/nics/features/txgbe.ini
>> index 22c74ba9e3..e21083052c 100644
>> --- a/doc/guides/nics/features/txgbe.ini
>> +++ b/doc/guides/nics/features/txgbe.ini
>> @@ -53,7 +53,7 @@ x86-32               = Y
>>   x86-64               = Y
>>
>>   [rte_flow items]
>> -eth                  = Y
>> +eth                  = P
>>   e_tag                = Y
>>   fuzzy                = Y
>>   ipv4                 = Y
>> @@ -63,7 +63,7 @@ raw                  = Y
>>   sctp                 = Y
>>   tcp                  = Y
>>   udp                  = Y
>> -vlan                 = Y
>> +vlan                 = P
>>   vxlan                = Y
>>
>>   [rte_flow actions]


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

* Re: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-04-26  8:55   ` Asaf Penso
@ 2022-04-26 10:47     ` Ferruh Yigit
  2022-04-27 11:02       ` Asaf Penso
  0 siblings, 1 reply; 12+ messages in thread
From: Ferruh Yigit @ 2022-04-26 10:47 UTC (permalink / raw)
  To: Asaf Penso, Ilya Maximets, dev, Ori Kam
  Cc: Ajit Khaparde, Rahul Lakkireddy, Hemant Agrawal, Haiyue Wang,
	John Daley, Guoyang Zhou, Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Slava Ovsiienko, Liron Himi, Jiawen Wu, Dekel Peled,
	NBU-Contact-Thomas Monjalon (EXTERNAL),
	stable

On 4/26/2022 9:55 AM, Asaf Penso wrote:
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit@xilinx.com>
>> Sent: Wednesday, April 20, 2022 8:52 PM
>> To: Ilya Maximets <i.maximets@ovn.org>; dev@dpdk.org; Asaf Penso
>> <asafp@nvidia.com>
>> Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>; Rahul Lakkireddy
>> <rahul.lakkireddy@chelsio.com>; Hemant Agrawal
>> <hemant.agrawal@nxp.com>; Haiyue Wang <haiyue.wang@intel.com>; John
>> Daley <johndale@cisco.com>; Guoyang Zhou <zhouguoyang@huawei.com>;
>> Min Hu (Connor) <humin29@huawei.com>; Beilei Xing
>> <beilei.xing@intel.com>; Jingjing Wu <jingjing.wu@intel.com>; Qi Zhang
>> <qi.z.zhang@intel.com>; Rosen Xu <rosen.xu@intel.com>; Matan Azrad
>> <matan@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>; Liron Himi
>> <lironh@marvell.com>; Jiawen Wu <jiawenwu@trustnetic.com>; Ori Kam
>> <orika@nvidia.com>; Dekel Peled <dekelp@nvidia.com>; NBU-Contact-
>> Thomas Monjalon (EXTERNAL) <thomas@monjalon.net>; stable@dpdk.org;
>> NBU-Contact-Thomas Monjalon (EXTERNAL) <thomas@monjalon.net>
>> Subject: Re: [PATCH] doc: fix support table for ETH and VLAN flow items
>>
>> On 3/16/2022 12:01 PM, Ilya Maximets wrote:
>>> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
>>> Other drivers doesn't support it.  Most of them (like i40e) just
>>> ignore it silently.  Some drivers (like mlx4) never had a full support
>>> of the eth item even before introduction of 'has_vlan'
>>> (mlx4 allows to match on the destination MAC only).
>>>
>>> Same for the 'has_more_vlan' flag of the vlan item.
>>>
>>> Changing the support level to 'partial' for all such drivers.
>>> This doesn't solve the issue, but at least marks the problematic
>>> drivers.
>>>
>>
>> Hi Asaf,
>>
>> This was the kind of maintanance issue I was referring to have this kind of
>> capability documentation for flow API.
>>
> Are you referring to the fact that fields like has_vlan are not part of the table?
> If so, you are right, but IMHO having the high level items still allows the users to understand what is supported quickly.
> We can have another level of tables per each relevant item to address this specific issue.
> In this case, we'll have a table for ETH that elaborates the different fields' support, like has_vlan.
> If you are referring to a different issue, please elaborate.
> 

'vlan' in the .ini file is already to document the flow API VLAN 
support, so I am not suggesting adding more to the table.

My point was it is hard to make this kind documentation correct.

> 
>> All below drivers are using 'RTE_FLOW_ITEM_TYPE_VLAN', the script verifies
>> this, but are they actually supporting VLAN filter and in which case?
>>
>> We need comment from driver maintainers about the support level.
>   
> @Ori Kam, please comment for mlx driver.
> 
>>
>>> Some details are available in:
>>>     https://bugs.dpdk.org/show_bug.cgi?id=958
>>>
>>> Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN
>>> items")
>>> Cc: stable@dpdk.org
>>>
>>> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
>>> ---
>>>
>>> I added the stable in CC, but the patch should be extended while
>>> backporting.  For 21.11 the cnxk driver should be also updated, for
>>> 20.11, sfc driver should also be included.
>>>
>>>    doc/guides/nics/features/bnxt.ini   | 4 ++--
>>>    doc/guides/nics/features/cxgbe.ini  | 4 ++--
>>>    doc/guides/nics/features/dpaa2.ini  | 4 ++--
>>>    doc/guides/nics/features/e1000.ini  | 2 +-
>>>    doc/guides/nics/features/enic.ini   | 4 ++--
>>>    doc/guides/nics/features/hinic.ini  | 2 +-
>>>    doc/guides/nics/features/hns3.ini   | 4 ++--
>>>    doc/guides/nics/features/i40e.ini   | 4 ++--
>>>    doc/guides/nics/features/iavf.ini   | 4 ++--
>>>    doc/guides/nics/features/ice.ini    | 4 ++--
>>>    doc/guides/nics/features/igc.ini    | 2 +-
>>>    doc/guides/nics/features/ipn3ke.ini | 4 ++--
>>>    doc/guides/nics/features/ixgbe.ini  | 4 ++--
>>>    doc/guides/nics/features/mlx4.ini   | 4 ++--
>>>    doc/guides/nics/features/mvpp2.ini  | 4 ++--
>>>    doc/guides/nics/features/tap.ini    | 4 ++--
>>>    doc/guides/nics/features/txgbe.ini  | 4 ++--
>>>    17 files changed, 31 insertions(+), 31 deletions(-)
>>>
>>> diff --git a/doc/guides/nics/features/bnxt.ini
>>> b/doc/guides/nics/features/bnxt.ini
>>> index afb5414b49..ac682c5779 100644
>>> --- a/doc/guides/nics/features/bnxt.ini
>>> +++ b/doc/guides/nics/features/bnxt.ini
>>> @@ -57,7 +57,7 @@ Perf doc             = Y
>>>
>>>    [rte_flow items]
>>>    any                  = Y
>>> -eth                  = Y
>>> +eth                  = P
>>>    ipv4                 = Y
>>>    ipv6                 = Y
>>>    gre                  = Y
>>> @@ -71,7 +71,7 @@ represented_port     = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>>    vf                   = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>    vxlan                = Y
>>>
>>>    [rte_flow actions]
>>> diff --git a/doc/guides/nics/features/cxgbe.ini
>>> b/doc/guides/nics/features/cxgbe.ini
>>> index f674803ec4..f9912390fb 100644
>>> --- a/doc/guides/nics/features/cxgbe.ini
>>> +++ b/doc/guides/nics/features/cxgbe.ini
>>> @@ -36,7 +36,7 @@ x86-64               = Y
>>>    Usage doc            = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    ipv4                 = Y
>>>    ipv6                 = Y
>>>    pf                   = Y
>>> @@ -44,7 +44,7 @@ phy_port             = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>>    vf                   = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>
>>>    [rte_flow actions]
>>>    count                = Y
>>> diff --git a/doc/guides/nics/features/dpaa2.ini
>>> b/doc/guides/nics/features/dpaa2.ini
>>> index 4c06841a87..09ce66c788 100644
>>> --- a/doc/guides/nics/features/dpaa2.ini
>>> +++ b/doc/guides/nics/features/dpaa2.ini
>>> @@ -31,7 +31,7 @@ ARMv8                = Y
>>>    Usage doc            = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    gre                  = Y
>>>    icmp                 = Y
>>>    ipv4                 = Y
>>> @@ -41,7 +41,7 @@ raw                  = Y
>>>    sctp                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>
>>>    [rte_flow actions]
>>>    drop                 = Y
>>> diff --git a/doc/guides/nics/features/e1000.ini
>>> b/doc/guides/nics/features/e1000.ini
>>> index e4bdef6da9..a9cbed1c3c 100644
>>> --- a/doc/guides/nics/features/e1000.ini
>>> +++ b/doc/guides/nics/features/e1000.ini
>>> @@ -31,7 +31,7 @@ x86-32               = Y
>>>    x86-64               = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    ipv4                 = Y
>>>    ipv6                 = Y
>>>    raw                  = Y
>>> diff --git a/doc/guides/nics/features/enic.ini
>>> b/doc/guides/nics/features/enic.ini
>>> index 61bec4910e..6dbea9f36e 100644
>>> --- a/doc/guides/nics/features/enic.ini
>>> +++ b/doc/guides/nics/features/enic.ini
>>> @@ -40,7 +40,7 @@ Usage doc            = Y
>>>
>>>    [rte_flow items]
>>>    ecpri                = Y
>>> -eth                  = Y
>>> +eth                  = P
>>>    geneve               = Y
>>>    geneve_opt           = Y
>>>    gtp                  = Y
>>> @@ -52,7 +52,7 @@ raw                  = Y
>>>    sctp                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>    vxlan                = Y
>>>
>>>    [rte_flow actions]
>>> diff --git a/doc/guides/nics/features/hinic.ini
>>> b/doc/guides/nics/features/hinic.ini
>>> index 9f6f0ebf3a..ada6607fe9 100644
>>> --- a/doc/guides/nics/features/hinic.ini
>>> +++ b/doc/guides/nics/features/hinic.ini
>>> @@ -40,7 +40,7 @@ ARMv8                = Y
>>>
>>>    [rte_flow items]
>>>    any                  = Y
>>> -eth                  = Y
>>> +eth                  = P
>>>    icmp                 = Y
>>>    icmp6                = Y
>>>    ipv4                 = Y
>>> diff --git a/doc/guides/nics/features/hns3.ini
>>> b/doc/guides/nics/features/hns3.ini
>>> index 405b94f05c..338b4e6864 100644
>>> --- a/doc/guides/nics/features/hns3.ini
>>> +++ b/doc/guides/nics/features/hns3.ini
>>> @@ -51,7 +51,7 @@ Linux                = Y
>>>    ARMv8                = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    geneve               = Y
>>>    icmp                 = Y
>>>    ipv4                 = Y
>>> @@ -60,7 +60,7 @@ nvgre                = Y
>>>    sctp                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>    vxlan                = Y
>>>    vxlan_gpe            = Y
>>>
>>> diff --git a/doc/guides/nics/features/i40e.ini
>>> b/doc/guides/nics/features/i40e.ini
>>> index dd18fec217..6e141de326 100644
>>> --- a/doc/guides/nics/features/i40e.ini
>>> +++ b/doc/guides/nics/features/i40e.ini
>>> @@ -54,7 +54,7 @@ Power8               = Y
>>>    [rte_flow items]
>>>    ah                   = Y
>>>    esp                  = Y
>>> -eth                  = Y
>>> +eth                  = P
>>>    gre                  = Y
>>>    gtpc                 = Y
>>>    gtpu                 = Y
>>> @@ -69,7 +69,7 @@ sctp                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>>    vf                   = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>    vxlan                = Y
>>>
>>>    [rte_flow actions]
>>> diff --git a/doc/guides/nics/features/iavf.ini
>>> b/doc/guides/nics/features/iavf.ini
>>> index 01f514239e..c6694a1a94 100644
>>> --- a/doc/guides/nics/features/iavf.ini
>>> +++ b/doc/guides/nics/features/iavf.ini
>>> @@ -40,7 +40,7 @@ ah                   = Y
>>>    arp_eth_ipv4         = Y
>>>    ecpri                = Y
>>>    esp                  = Y
>>> -eth                  = Y
>>> +eth                  = P
>>>    gre                  = Y
>>>    gtpc                 = Y
>>>    gtpu                 = Y
>>> @@ -57,7 +57,7 @@ ppp                  = Y
>>>    sctp                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>
>>>    [rte_flow actions]
>>>    count                = Y
>>> diff --git a/doc/guides/nics/features/ice.ini
>>> b/doc/guides/nics/features/ice.ini
>>> index 7861790a51..0bd2f2d7b2 100644
>>> --- a/doc/guides/nics/features/ice.ini
>>> +++ b/doc/guides/nics/features/ice.ini
>>> @@ -53,7 +53,7 @@ ah                   = Y
>>>    any                  = Y
>>>    arp_eth_ipv4         = Y
>>>    esp                  = Y
>>> -eth                  = Y
>>> +eth                  = P
>>>    gtpu                 = Y
>>>    gtp_psc              = Y
>>>    icmp                 = Y
>>> @@ -71,7 +71,7 @@ raw                  = Y
>>>    sctp                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>    vxlan                = Y
>>>
>>>    [rte_flow actions]
>>> diff --git a/doc/guides/nics/features/igc.ini
>>> b/doc/guides/nics/features/igc.ini
>>> index f2c6fa28ad..b5deea3f61 100644
>>> --- a/doc/guides/nics/features/igc.ini
>>> +++ b/doc/guides/nics/features/igc.ini
>>> @@ -35,7 +35,7 @@ Linux                = Y
>>>    x86-64               = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    ipv4                 = Y
>>>    ipv6                 = Y
>>>    tcp                  = Y
>>> diff --git a/doc/guides/nics/features/ipn3ke.ini
>>> b/doc/guides/nics/features/ipn3ke.ini
>>> index defc39f525..1f6b780273 100644
>>> --- a/doc/guides/nics/features/ipn3ke.ini
>>> +++ b/doc/guides/nics/features/ipn3ke.ini
>>> @@ -47,13 +47,13 @@ x86-32               = Y
>>>    x86-64               = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    ipv4                 = Y
>>>    mpls                 = Y
>>>    nvgre                = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>    vxlan                = Y
>>>
>>>    [rte_flow actions]
>>> diff --git a/doc/guides/nics/features/ixgbe.ini
>>> b/doc/guides/nics/features/ixgbe.ini
>>> index c5333d1142..e5cef81f9a 100644
>>> --- a/doc/guides/nics/features/ixgbe.ini
>>> +++ b/doc/guides/nics/features/ixgbe.ini
>>> @@ -56,7 +56,7 @@ x86-32               = Y
>>>    x86-64               = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    e_tag                = Y
>>>    fuzzy                = Y
>>>    ipv4                 = Y
>>> @@ -66,7 +66,7 @@ raw                  = Y
>>>    sctp                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>    vxlan                = Y
>>>
>>>    [rte_flow actions]
>>> diff --git a/doc/guides/nics/features/mlx4.ini
>>> b/doc/guides/nics/features/mlx4.ini
>>> index 82f6f0bc0b..03f59a5f8b 100644
>>> --- a/doc/guides/nics/features/mlx4.ini
>>> +++ b/doc/guides/nics/features/mlx4.ini
>>> @@ -38,11 +38,11 @@ x86-64               = Y
>>>    Usage doc            = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    ipv4                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>
>>>    [rte_flow actions]
>>>    drop                 = Y
>>> diff --git a/doc/guides/nics/features/mvpp2.ini
>>> b/doc/guides/nics/features/mvpp2.ini
>>> index 1bcf74875e..653c9d08cb 100644
>>> --- a/doc/guides/nics/features/mvpp2.ini
>>> +++ b/doc/guides/nics/features/mvpp2.ini
>>> @@ -24,13 +24,13 @@ ARMv8                = Y
>>>    Usage doc            = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    ipv4                 = Y
>>>    ipv6                 = Y
>>>    raw                  = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>
>>>    [rte_flow actions]
>>>    drop                 = Y
>>> diff --git a/doc/guides/nics/features/tap.ini
>>> b/doc/guides/nics/features/tap.ini
>>> index b4a356e5d5..f26355e57f 100644
>>> --- a/doc/guides/nics/features/tap.ini
>>> +++ b/doc/guides/nics/features/tap.ini
>>> @@ -27,12 +27,12 @@ x86-64               = Y
>>>    Usage doc            = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    ipv4                 = Y
>>>    ipv6                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>
>>>    [rte_flow actions]
>>>    drop                 = Y
>>> diff --git a/doc/guides/nics/features/txgbe.ini
>>> b/doc/guides/nics/features/txgbe.ini
>>> index 22c74ba9e3..e21083052c 100644
>>> --- a/doc/guides/nics/features/txgbe.ini
>>> +++ b/doc/guides/nics/features/txgbe.ini
>>> @@ -53,7 +53,7 @@ x86-32               = Y
>>>    x86-64               = Y
>>>
>>>    [rte_flow items]
>>> -eth                  = Y
>>> +eth                  = P
>>>    e_tag                = Y
>>>    fuzzy                = Y
>>>    ipv4                 = Y
>>> @@ -63,7 +63,7 @@ raw                  = Y
>>>    sctp                 = Y
>>>    tcp                  = Y
>>>    udp                  = Y
>>> -vlan                 = Y
>>> +vlan                 = P
>>>    vxlan                = Y
>>>
>>>    [rte_flow actions]
> 


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

* RE: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-04-26 10:47     ` Ferruh Yigit
@ 2022-04-27 11:02       ` Asaf Penso
  0 siblings, 0 replies; 12+ messages in thread
From: Asaf Penso @ 2022-04-27 11:02 UTC (permalink / raw)
  To: Ferruh Yigit, Ilya Maximets, dev, Ori Kam
  Cc: Ajit Khaparde, Rahul Lakkireddy, Hemant Agrawal, Haiyue Wang,
	John Daley, Guoyang Zhou, Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Slava Ovsiienko, Liron Himi, Jiawen Wu, Dekel Peled,
	NBU-Contact-Thomas Monjalon (EXTERNAL),
	stable

>-----Original Message-----
>From: Ferruh Yigit <ferruh.yigit@xilinx.com>
>Sent: Tuesday, April 26, 2022 1:48 PM
>To: Asaf Penso <asafp@nvidia.com>; Ilya Maximets <i.maximets@ovn.org>;
>dev@dpdk.org; Ori Kam <orika@nvidia.com>
>Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>; Rahul Lakkireddy
><rahul.lakkireddy@chelsio.com>; Hemant Agrawal
><hemant.agrawal@nxp.com>; Haiyue Wang <haiyue.wang@intel.com>; John
>Daley <johndale@cisco.com>; Guoyang Zhou <zhouguoyang@huawei.com>;
>Min Hu (Connor) <humin29@huawei.com>; Beilei Xing
><beilei.xing@intel.com>; Jingjing Wu <jingjing.wu@intel.com>; Qi Zhang
><qi.z.zhang@intel.com>; Rosen Xu <rosen.xu@intel.com>; Matan Azrad
><matan@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>; Liron Himi
><lironh@marvell.com>; Jiawen Wu <jiawenwu@trustnetic.com>; Dekel Peled
><dekelp@nvidia.com>; NBU-Contact-Thomas Monjalon (EXTERNAL)
><thomas@monjalon.net>; stable@dpdk.org
>Subject: Re: [PATCH] doc: fix support table for ETH and VLAN flow items
>
>On 4/26/2022 9:55 AM, Asaf Penso wrote:
>>> -----Original Message-----
>>> From: Ferruh Yigit <ferruh.yigit@xilinx.com>
>>> Sent: Wednesday, April 20, 2022 8:52 PM
>>> To: Ilya Maximets <i.maximets@ovn.org>; dev@dpdk.org; Asaf Penso
>>> <asafp@nvidia.com>
>>> Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>; Rahul Lakkireddy
>>> <rahul.lakkireddy@chelsio.com>; Hemant Agrawal
>>> <hemant.agrawal@nxp.com>; Haiyue Wang <haiyue.wang@intel.com>;
>John
>>> Daley <johndale@cisco.com>; Guoyang Zhou
><zhouguoyang@huawei.com>;
>>> Min Hu (Connor) <humin29@huawei.com>; Beilei Xing
>>> <beilei.xing@intel.com>; Jingjing Wu <jingjing.wu@intel.com>; Qi
>>> Zhang <qi.z.zhang@intel.com>; Rosen Xu <rosen.xu@intel.com>; Matan
>>> Azrad <matan@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>;
>>> Liron Himi <lironh@marvell.com>; Jiawen Wu
><jiawenwu@trustnetic.com>;
>>> Ori Kam <orika@nvidia.com>; Dekel Peled <dekelp@nvidia.com>;
>>> NBU-Contact- Thomas Monjalon (EXTERNAL) <thomas@monjalon.net>;
>>> stable@dpdk.org; NBU-Contact-Thomas Monjalon (EXTERNAL)
>>> <thomas@monjalon.net>
>>> Subject: Re: [PATCH] doc: fix support table for ETH and VLAN flow
>>> items
>>>
>>> On 3/16/2022 12:01 PM, Ilya Maximets wrote:
>>>> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
>>>> Other drivers doesn't support it.  Most of them (like i40e) just
>>>> ignore it silently.  Some drivers (like mlx4) never had a full
>>>> support of the eth item even before introduction of 'has_vlan'
>>>> (mlx4 allows to match on the destination MAC only).
>>>>
>>>> Same for the 'has_more_vlan' flag of the vlan item.
>>>>
>>>> Changing the support level to 'partial' for all such drivers.
>>>> This doesn't solve the issue, but at least marks the problematic
>>>> drivers.
>>>>
>>>
>>> Hi Asaf,
>>>
>>> This was the kind of maintanance issue I was referring to have this
>>> kind of capability documentation for flow API.
>>>
>> Are you referring to the fact that fields like has_vlan are not part of the
>table?
>> If so, you are right, but IMHO having the high level items still allows the
>users to understand what is supported quickly.
>> We can have another level of tables per each relevant item to address this
>specific issue.
>> In this case, we'll have a table for ETH that elaborates the different fields'
>support, like has_vlan.
>> If you are referring to a different issue, please elaborate.
>>
>
>'vlan' in the .ini file is already to document the flow API VLAN support, so I am
>not suggesting adding more to the table.
>
>My point was it is hard to make this kind documentation correct.
>

Yes, and I think that between having none and having everything, what we currently have is closer to everything, and is very useful for the users.
 

>>
>>> All below drivers are using 'RTE_FLOW_ITEM_TYPE_VLAN', the script
>>> verifies this, but are they actually supporting VLAN filter and in which case?
>>>
>>> We need comment from driver maintainers about the support level.
>>
>> @Ori Kam, please comment for mlx driver.
>>
>>>
>>>> Some details are available in:
>>>>     https://bugs.dpdk.org/show_bug.cgi?id=958
>>>>
>>>> Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and
>>>> VLAN
>>>> items")
>>>> Cc: stable@dpdk.org
>>>>
>>>> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
>>>> ---
>>>>
>>>> I added the stable in CC, but the patch should be extended while
>>>> backporting.  For 21.11 the cnxk driver should be also updated, for
>>>> 20.11, sfc driver should also be included.
>>>>
>>>>    doc/guides/nics/features/bnxt.ini   | 4 ++--
>>>>    doc/guides/nics/features/cxgbe.ini  | 4 ++--
>>>>    doc/guides/nics/features/dpaa2.ini  | 4 ++--
>>>>    doc/guides/nics/features/e1000.ini  | 2 +-
>>>>    doc/guides/nics/features/enic.ini   | 4 ++--
>>>>    doc/guides/nics/features/hinic.ini  | 2 +-
>>>>    doc/guides/nics/features/hns3.ini   | 4 ++--
>>>>    doc/guides/nics/features/i40e.ini   | 4 ++--
>>>>    doc/guides/nics/features/iavf.ini   | 4 ++--
>>>>    doc/guides/nics/features/ice.ini    | 4 ++--
>>>>    doc/guides/nics/features/igc.ini    | 2 +-
>>>>    doc/guides/nics/features/ipn3ke.ini | 4 ++--
>>>>    doc/guides/nics/features/ixgbe.ini  | 4 ++--
>>>>    doc/guides/nics/features/mlx4.ini   | 4 ++--
>>>>    doc/guides/nics/features/mvpp2.ini  | 4 ++--
>>>>    doc/guides/nics/features/tap.ini    | 4 ++--
>>>>    doc/guides/nics/features/txgbe.ini  | 4 ++--
>>>>    17 files changed, 31 insertions(+), 31 deletions(-)
>>>>
>>>> diff --git a/doc/guides/nics/features/bnxt.ini
>>>> b/doc/guides/nics/features/bnxt.ini
>>>> index afb5414b49..ac682c5779 100644
>>>> --- a/doc/guides/nics/features/bnxt.ini
>>>> +++ b/doc/guides/nics/features/bnxt.ini
>>>> @@ -57,7 +57,7 @@ Perf doc             = Y
>>>>
>>>>    [rte_flow items]
>>>>    any                  = Y
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    ipv4                 = Y
>>>>    ipv6                 = Y
>>>>    gre                  = Y
>>>> @@ -71,7 +71,7 @@ represented_port     = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>>    vf                   = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>    vxlan                = Y
>>>>
>>>>    [rte_flow actions]
>>>> diff --git a/doc/guides/nics/features/cxgbe.ini
>>>> b/doc/guides/nics/features/cxgbe.ini
>>>> index f674803ec4..f9912390fb 100644
>>>> --- a/doc/guides/nics/features/cxgbe.ini
>>>> +++ b/doc/guides/nics/features/cxgbe.ini
>>>> @@ -36,7 +36,7 @@ x86-64               = Y
>>>>    Usage doc            = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    ipv4                 = Y
>>>>    ipv6                 = Y
>>>>    pf                   = Y
>>>> @@ -44,7 +44,7 @@ phy_port             = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>>    vf                   = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>
>>>>    [rte_flow actions]
>>>>    count                = Y
>>>> diff --git a/doc/guides/nics/features/dpaa2.ini
>>>> b/doc/guides/nics/features/dpaa2.ini
>>>> index 4c06841a87..09ce66c788 100644
>>>> --- a/doc/guides/nics/features/dpaa2.ini
>>>> +++ b/doc/guides/nics/features/dpaa2.ini
>>>> @@ -31,7 +31,7 @@ ARMv8                = Y
>>>>    Usage doc            = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    gre                  = Y
>>>>    icmp                 = Y
>>>>    ipv4                 = Y
>>>> @@ -41,7 +41,7 @@ raw                  = Y
>>>>    sctp                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>
>>>>    [rte_flow actions]
>>>>    drop                 = Y
>>>> diff --git a/doc/guides/nics/features/e1000.ini
>>>> b/doc/guides/nics/features/e1000.ini
>>>> index e4bdef6da9..a9cbed1c3c 100644
>>>> --- a/doc/guides/nics/features/e1000.ini
>>>> +++ b/doc/guides/nics/features/e1000.ini
>>>> @@ -31,7 +31,7 @@ x86-32               = Y
>>>>    x86-64               = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    ipv4                 = Y
>>>>    ipv6                 = Y
>>>>    raw                  = Y
>>>> diff --git a/doc/guides/nics/features/enic.ini
>>>> b/doc/guides/nics/features/enic.ini
>>>> index 61bec4910e..6dbea9f36e 100644
>>>> --- a/doc/guides/nics/features/enic.ini
>>>> +++ b/doc/guides/nics/features/enic.ini
>>>> @@ -40,7 +40,7 @@ Usage doc            = Y
>>>>
>>>>    [rte_flow items]
>>>>    ecpri                = Y
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    geneve               = Y
>>>>    geneve_opt           = Y
>>>>    gtp                  = Y
>>>> @@ -52,7 +52,7 @@ raw                  = Y
>>>>    sctp                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>    vxlan                = Y
>>>>
>>>>    [rte_flow actions]
>>>> diff --git a/doc/guides/nics/features/hinic.ini
>>>> b/doc/guides/nics/features/hinic.ini
>>>> index 9f6f0ebf3a..ada6607fe9 100644
>>>> --- a/doc/guides/nics/features/hinic.ini
>>>> +++ b/doc/guides/nics/features/hinic.ini
>>>> @@ -40,7 +40,7 @@ ARMv8                = Y
>>>>
>>>>    [rte_flow items]
>>>>    any                  = Y
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    icmp                 = Y
>>>>    icmp6                = Y
>>>>    ipv4                 = Y
>>>> diff --git a/doc/guides/nics/features/hns3.ini
>>>> b/doc/guides/nics/features/hns3.ini
>>>> index 405b94f05c..338b4e6864 100644
>>>> --- a/doc/guides/nics/features/hns3.ini
>>>> +++ b/doc/guides/nics/features/hns3.ini
>>>> @@ -51,7 +51,7 @@ Linux                = Y
>>>>    ARMv8                = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    geneve               = Y
>>>>    icmp                 = Y
>>>>    ipv4                 = Y
>>>> @@ -60,7 +60,7 @@ nvgre                = Y
>>>>    sctp                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>    vxlan                = Y
>>>>    vxlan_gpe            = Y
>>>>
>>>> diff --git a/doc/guides/nics/features/i40e.ini
>>>> b/doc/guides/nics/features/i40e.ini
>>>> index dd18fec217..6e141de326 100644
>>>> --- a/doc/guides/nics/features/i40e.ini
>>>> +++ b/doc/guides/nics/features/i40e.ini
>>>> @@ -54,7 +54,7 @@ Power8               = Y
>>>>    [rte_flow items]
>>>>    ah                   = Y
>>>>    esp                  = Y
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    gre                  = Y
>>>>    gtpc                 = Y
>>>>    gtpu                 = Y
>>>> @@ -69,7 +69,7 @@ sctp                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>>    vf                   = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>    vxlan                = Y
>>>>
>>>>    [rte_flow actions]
>>>> diff --git a/doc/guides/nics/features/iavf.ini
>>>> b/doc/guides/nics/features/iavf.ini
>>>> index 01f514239e..c6694a1a94 100644
>>>> --- a/doc/guides/nics/features/iavf.ini
>>>> +++ b/doc/guides/nics/features/iavf.ini
>>>> @@ -40,7 +40,7 @@ ah                   = Y
>>>>    arp_eth_ipv4         = Y
>>>>    ecpri                = Y
>>>>    esp                  = Y
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    gre                  = Y
>>>>    gtpc                 = Y
>>>>    gtpu                 = Y
>>>> @@ -57,7 +57,7 @@ ppp                  = Y
>>>>    sctp                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>
>>>>    [rte_flow actions]
>>>>    count                = Y
>>>> diff --git a/doc/guides/nics/features/ice.ini
>>>> b/doc/guides/nics/features/ice.ini
>>>> index 7861790a51..0bd2f2d7b2 100644
>>>> --- a/doc/guides/nics/features/ice.ini
>>>> +++ b/doc/guides/nics/features/ice.ini
>>>> @@ -53,7 +53,7 @@ ah                   = Y
>>>>    any                  = Y
>>>>    arp_eth_ipv4         = Y
>>>>    esp                  = Y
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    gtpu                 = Y
>>>>    gtp_psc              = Y
>>>>    icmp                 = Y
>>>> @@ -71,7 +71,7 @@ raw                  = Y
>>>>    sctp                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>    vxlan                = Y
>>>>
>>>>    [rte_flow actions]
>>>> diff --git a/doc/guides/nics/features/igc.ini
>>>> b/doc/guides/nics/features/igc.ini
>>>> index f2c6fa28ad..b5deea3f61 100644
>>>> --- a/doc/guides/nics/features/igc.ini
>>>> +++ b/doc/guides/nics/features/igc.ini
>>>> @@ -35,7 +35,7 @@ Linux                = Y
>>>>    x86-64               = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    ipv4                 = Y
>>>>    ipv6                 = Y
>>>>    tcp                  = Y
>>>> diff --git a/doc/guides/nics/features/ipn3ke.ini
>>>> b/doc/guides/nics/features/ipn3ke.ini
>>>> index defc39f525..1f6b780273 100644
>>>> --- a/doc/guides/nics/features/ipn3ke.ini
>>>> +++ b/doc/guides/nics/features/ipn3ke.ini
>>>> @@ -47,13 +47,13 @@ x86-32               = Y
>>>>    x86-64               = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    ipv4                 = Y
>>>>    mpls                 = Y
>>>>    nvgre                = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>    vxlan                = Y
>>>>
>>>>    [rte_flow actions]
>>>> diff --git a/doc/guides/nics/features/ixgbe.ini
>>>> b/doc/guides/nics/features/ixgbe.ini
>>>> index c5333d1142..e5cef81f9a 100644
>>>> --- a/doc/guides/nics/features/ixgbe.ini
>>>> +++ b/doc/guides/nics/features/ixgbe.ini
>>>> @@ -56,7 +56,7 @@ x86-32               = Y
>>>>    x86-64               = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    e_tag                = Y
>>>>    fuzzy                = Y
>>>>    ipv4                 = Y
>>>> @@ -66,7 +66,7 @@ raw                  = Y
>>>>    sctp                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>    vxlan                = Y
>>>>
>>>>    [rte_flow actions]
>>>> diff --git a/doc/guides/nics/features/mlx4.ini
>>>> b/doc/guides/nics/features/mlx4.ini
>>>> index 82f6f0bc0b..03f59a5f8b 100644
>>>> --- a/doc/guides/nics/features/mlx4.ini
>>>> +++ b/doc/guides/nics/features/mlx4.ini
>>>> @@ -38,11 +38,11 @@ x86-64               = Y
>>>>    Usage doc            = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    ipv4                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>
>>>>    [rte_flow actions]
>>>>    drop                 = Y
>>>> diff --git a/doc/guides/nics/features/mvpp2.ini
>>>> b/doc/guides/nics/features/mvpp2.ini
>>>> index 1bcf74875e..653c9d08cb 100644
>>>> --- a/doc/guides/nics/features/mvpp2.ini
>>>> +++ b/doc/guides/nics/features/mvpp2.ini
>>>> @@ -24,13 +24,13 @@ ARMv8                = Y
>>>>    Usage doc            = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    ipv4                 = Y
>>>>    ipv6                 = Y
>>>>    raw                  = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>
>>>>    [rte_flow actions]
>>>>    drop                 = Y
>>>> diff --git a/doc/guides/nics/features/tap.ini
>>>> b/doc/guides/nics/features/tap.ini
>>>> index b4a356e5d5..f26355e57f 100644
>>>> --- a/doc/guides/nics/features/tap.ini
>>>> +++ b/doc/guides/nics/features/tap.ini
>>>> @@ -27,12 +27,12 @@ x86-64               = Y
>>>>    Usage doc            = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    ipv4                 = Y
>>>>    ipv6                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>
>>>>    [rte_flow actions]
>>>>    drop                 = Y
>>>> diff --git a/doc/guides/nics/features/txgbe.ini
>>>> b/doc/guides/nics/features/txgbe.ini
>>>> index 22c74ba9e3..e21083052c 100644
>>>> --- a/doc/guides/nics/features/txgbe.ini
>>>> +++ b/doc/guides/nics/features/txgbe.ini
>>>> @@ -53,7 +53,7 @@ x86-32               = Y
>>>>    x86-64               = Y
>>>>
>>>>    [rte_flow items]
>>>> -eth                  = Y
>>>> +eth                  = P
>>>>    e_tag                = Y
>>>>    fuzzy                = Y
>>>>    ipv4                 = Y
>>>> @@ -63,7 +63,7 @@ raw                  = Y
>>>>    sctp                 = Y
>>>>    tcp                  = Y
>>>>    udp                  = Y
>>>> -vlan                 = Y
>>>> +vlan                 = P
>>>>    vxlan                = Y
>>>>
>>>>    [rte_flow actions]
>>


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

* Re: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-03-16 12:01 [PATCH] doc: fix support table for ETH and VLAN flow items Ilya Maximets
  2022-04-20 17:51 ` Ferruh Yigit
@ 2022-09-12 10:09 ` Thomas Monjalon
  2022-09-12 11:08   ` Ori Kam
  2022-10-07 11:50   ` Ilya Maximets
  1 sibling, 2 replies; 12+ messages in thread
From: Thomas Monjalon @ 2022-09-12 10:09 UTC (permalink / raw)
  To: Ilya Maximets
  Cc: dev, stable, Ajit Khaparde, Rahul Lakkireddy, Hemant Agrawal,
	Haiyue Wang, John Daley, Guoyang Zhou, Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Viacheslav Ovsiienko, Liron Himi, Jiawen Wu, Ori Kam

16/03/2022 13:01, Ilya Maximets:
> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
> Other drivers doesn't support it.  Most of them (like i40e) just
> ignore it silently.  Some drivers (like mlx4) never had a full
> support of the eth item even before introduction of 'has_vlan'
> (mlx4 allows to match on the destination MAC only).
> 
> Same for the 'has_more_vlan' flag of the vlan item.
> 
> Changing the support level to 'partial' for all such drivers.
> This doesn't solve the issue, but at least marks the problematic
> drivers.

You changed "eth" and "vlan" from "Y" to "P".
The field "has_vlan" is part of "rte_flow_item_eth",
and "has_more_vlan" is part of "rte_flow_item_vlan",
so I agree we need to change both items to "partial support".
It looks to be a good change, just needs to more explicit,
adding this kind of explanation about the fields.

We missed this patch in 22.07, let's have some progress quickly.

> Some details are available in:
>   https://bugs.dpdk.org/show_bug.cgi?id=958

About rte_flow_item_eth.{src,dst}, I don't find a deprecation notice
about it in the history of the file doc/guides/rel_notes/deprecation.rst
This is what we have in the code:
    union {
        struct {
            /*
             * These fields are retained for compatibility.
             * Please switch to the new header field below.
             */
            struct rte_ether_addr dst; /**< Destination MAC. */
            struct rte_ether_addr src; /**< Source MAC. */
            rte_be16_t type; /**< EtherType or TPID. */
        };
        struct rte_ether_hdr hdr;
    };

Do you think we should remove the old fields now?

> Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>




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

* RE: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-09-12 10:09 ` Thomas Monjalon
@ 2022-09-12 11:08   ` Ori Kam
  2022-10-07 11:50   ` Ilya Maximets
  1 sibling, 0 replies; 12+ messages in thread
From: Ori Kam @ 2022-09-12 11:08 UTC (permalink / raw)
  To: NBU-Contact-Thomas Monjalon (EXTERNAL), Ilya Maximets
  Cc: dev, stable, Ajit Khaparde, Rahul Lakkireddy, Hemant Agrawal,
	Haiyue Wang, John Daley, Guoyang Zhou, Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Slava Ovsiienko, Liron Himi, Jiawen Wu

Hi All,

> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Monday, 12 September 2022 13:10
> Subject: Re: [PATCH] doc: fix support table for ETH and VLAN flow items
> 
> 16/03/2022 13:01, Ilya Maximets:
> > 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
> > Other drivers doesn't support it.  Most of them (like i40e) just
> > ignore it silently.  Some drivers (like mlx4) never had a full
> > support of the eth item even before introduction of 'has_vlan'
> > (mlx4 allows to match on the destination MAC only).
> >
> > Same for the 'has_more_vlan' flag of the vlan item.
> >
> > Changing the support level to 'partial' for all such drivers.
> > This doesn't solve the issue, but at least marks the problematic
> > drivers.
> 
> You changed "eth" and "vlan" from "Y" to "P".
> The field "has_vlan" is part of "rte_flow_item_eth",
> and "has_more_vlan" is part of "rte_flow_item_vlan",
> so I agree we need to change both items to "partial support".
> It looks to be a good change, just needs to more explicit,
> adding this kind of explanation about the fields.
> 
+1

> We missed this patch in 22.07, let's have some progress quickly.
> 
> > Some details are available in:
> >   https://bugs.dpdk.org/show_bug.cgi?id=958
> 
> About rte_flow_item_eth.{src,dst}, I don't find a deprecation notice
> about it in the history of the file doc/guides/rel_notes/deprecation.rst
> This is what we have in the code:
>     union {
>         struct {
>             /*
>              * These fields are retained for compatibility.
>              * Please switch to the new header field below.
>              */
>             struct rte_ether_addr dst; /**< Destination MAC. */
>             struct rte_ether_addr src; /**< Source MAC. */
>             rte_be16_t type; /**< EtherType or TPID. */
>         };
>         struct rte_ether_hdr hdr;
>     };
> 
> Do you think we should remove the old fields now?
> 
> > Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN
> items")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> 
> 

Best,
Ori


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

* Re: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-09-12 10:09 ` Thomas Monjalon
  2022-09-12 11:08   ` Ori Kam
@ 2022-10-07 11:50   ` Ilya Maximets
  2022-10-07 11:55     ` Ilya Maximets
  1 sibling, 1 reply; 12+ messages in thread
From: Ilya Maximets @ 2022-10-07 11:50 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: i.maximets, dev, stable, Ajit Khaparde, Rahul Lakkireddy,
	Hemant Agrawal, Haiyue Wang, John Daley, Guoyang Zhou,
	Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Viacheslav Ovsiienko, Liron Himi, Jiawen Wu, Ori Kam

On 9/12/22 12:09, Thomas Monjalon wrote:
> 16/03/2022 13:01, Ilya Maximets:
>> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
>> Other drivers doesn't support it.  Most of them (like i40e) just
>> ignore it silently.  Some drivers (like mlx4) never had a full
>> support of the eth item even before introduction of 'has_vlan'
>> (mlx4 allows to match on the destination MAC only).
>>
>> Same for the 'has_more_vlan' flag of the vlan item.
>>
>> Changing the support level to 'partial' for all such drivers.
>> This doesn't solve the issue, but at least marks the problematic
>> drivers.
> 
> You changed "eth" and "vlan" from "Y" to "P".
> The field "has_vlan" is part of "rte_flow_item_eth",
> and "has_more_vlan" is part of "rte_flow_item_vlan",
> so I agree we need to change both items to "partial support".
> It looks to be a good change, just needs to more explicit,
> adding this kind of explanation about the fields.

I can add this to the commit message.  Should I also add
some note alongside the table in that documentation page?

> 
> We missed this patch in 22.07, let's have some progress quickly.

It was a busy month + PTO, sorry I didn't get to that patch faster.

> 
>> Some details are available in:
>>   https://bugs.dpdk.org/show_bug.cgi?id=958
> 
> About rte_flow_item_eth.{src,dst}, I don't find a deprecation notice
> about it in the history of the file doc/guides/rel_notes/deprecation.rst

It took some time to find the deprecation notice, but I did find it
in the end.  It's in the doc/guides/rel_notes/deprecation.rst, and
it says:

* ethdev: The flow API matching pattern structures, ``struct rte_flow_item_*``,
  should start with relevant protocol header.
  Some matching pattern structures implements this by duplicating protocol header
  fields in the struct. To clarify the intention and to be sure protocol header
  is intact, will replace those fields with relevant protocol header struct.
  In v21.02 both individual protocol header fields and the protocol header struct
  will be added as union, target is switch usage to the protocol header by time.
  In v21.11 LTS, protocol header fields will be cleaned and only protocol header
  struct will remain.

> This is what we have in the code:
>     union {
>         struct {
>             /*
>              * These fields are retained for compatibility.
>              * Please switch to the new header field below.
>              */
>             struct rte_ether_addr dst; /**< Destination MAC. */
>             struct rte_ether_addr src; /**< Source MAC. */
>             rte_be16_t type; /**< EtherType or TPID. */
>         };
>         struct rte_ether_hdr hdr;
>     };
> 
> Do you think we should remove the old fields now?

From the OVS perspective, we do not care much.  OVS is still using
old fields, but it's fairly simple change that we can do while moving
to a new version of DPDK.

From the perspective of the API clarity, it's probably better to clean
up these structures.

Best regards, Ilya Maximets.

> 
>> Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> 
> 
> 


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

* Re: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-10-07 11:50   ` Ilya Maximets
@ 2022-10-07 11:55     ` Ilya Maximets
  2022-10-12 15:30       ` Thomas Monjalon
  0 siblings, 1 reply; 12+ messages in thread
From: Ilya Maximets @ 2022-10-07 11:55 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: i.maximets, dev, stable, Ajit Khaparde, Rahul Lakkireddy,
	Hemant Agrawal, Haiyue Wang, John Daley, Guoyang Zhou,
	Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Viacheslav Ovsiienko, Liron Himi, Jiawen Wu, Ori Kam

On 10/7/22 13:50, Ilya Maximets wrote:
> On 9/12/22 12:09, Thomas Monjalon wrote:
>> 16/03/2022 13:01, Ilya Maximets:
>>> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
>>> Other drivers doesn't support it.  Most of them (like i40e) just
>>> ignore it silently.  Some drivers (like mlx4) never had a full
>>> support of the eth item even before introduction of 'has_vlan'
>>> (mlx4 allows to match on the destination MAC only).
>>>
>>> Same for the 'has_more_vlan' flag of the vlan item.
>>>
>>> Changing the support level to 'partial' for all such drivers.
>>> This doesn't solve the issue, but at least marks the problematic
>>> drivers.
>>
>> You changed "eth" and "vlan" from "Y" to "P".
>> The field "has_vlan" is part of "rte_flow_item_eth",
>> and "has_more_vlan" is part of "rte_flow_item_vlan",
>> so I agree we need to change both items to "partial support".
>> It looks to be a good change, just needs to more explicit,
>> adding this kind of explanation about the fields.
> 
> I can add this to the commit message.  Should I also add
> some note alongside the table in that documentation page?
> 
>>
>> We missed this patch in 22.07, let's have some progress quickly.
> 
> It was a busy month + PTO, sorry I didn't get to that patch faster.
> 
>>
>>> Some details are available in:
>>>   https://bugs.dpdk.org/show_bug.cgi?id=958
>>
>> About rte_flow_item_eth.{src,dst}, I don't find a deprecation notice
>> about it in the history of the file doc/guides/rel_notes/deprecation.rst
> 
> It took some time to find the deprecation notice, but I did find it
> in the end.  It's in the doc/guides/rel_notes/deprecation.rst, and
> it says:
> 
> * ethdev: The flow API matching pattern structures, ``struct rte_flow_item_*``,
>   should start with relevant protocol header.
>   Some matching pattern structures implements this by duplicating protocol header
>   fields in the struct. To clarify the intention and to be sure protocol header
>   is intact, will replace those fields with relevant protocol header struct.
>   In v21.02 both individual protocol header fields and the protocol header struct
>   will be added as union, target is switch usage to the protocol header by time.
>   In v21.11 LTS, protocol header fields will be cleaned and only protocol header
>   struct will remain.
> 
>> This is what we have in the code:
>>     union {
>>         struct {
>>             /*
>>              * These fields are retained for compatibility.
>>              * Please switch to the new header field below.
>>              */
>>             struct rte_ether_addr dst; /**< Destination MAC. */
>>             struct rte_ether_addr src; /**< Source MAC. */
>>             rte_be16_t type; /**< EtherType or TPID. */
>>         };
>>         struct rte_ether_hdr hdr;
>>     };
>>
>> Do you think we should remove the old fields now?
> 
> From the OVS perspective, we do not care much.  OVS is still using
> old fields, but it's fairly simple change that we can do while moving
> to a new version of DPDK.
> 
> From the perspective of the API clarity, it's probably better to clean
> up these structures.

There seems to be some outstanding work still though:
  https://patches.dpdk.org/project/dpdk/patch/20210312110745.31721-1-ivan.malov@oktetlabs.ru/#129161

> 
> Best regards, Ilya Maximets.
> 
>>
>>> Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
>>> Cc: stable@dpdk.org
>>>
>>> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
>>
>>
>>
> 


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

* Re: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-10-07 11:55     ` Ilya Maximets
@ 2022-10-12 15:30       ` Thomas Monjalon
  2022-10-13 11:01         ` Ilya Maximets
  0 siblings, 1 reply; 12+ messages in thread
From: Thomas Monjalon @ 2022-10-12 15:30 UTC (permalink / raw)
  To: Ilya Maximets
  Cc: dev, stable, Ajit Khaparde, Rahul Lakkireddy, Hemant Agrawal,
	Haiyue Wang, John Daley, Guoyang Zhou, Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Viacheslav Ovsiienko, Liron Himi, Jiawen Wu, Ori Kam,
	ferruh.yigit, andrew.rybchenko, david.marchand, olivier.matz

07/10/2022 13:55, Ilya Maximets:
> On 10/7/22 13:50, Ilya Maximets wrote:
> > On 9/12/22 12:09, Thomas Monjalon wrote:
> >> 16/03/2022 13:01, Ilya Maximets:
> >>> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
> >>> Other drivers doesn't support it.  Most of them (like i40e) just
> >>> ignore it silently.  Some drivers (like mlx4) never had a full
> >>> support of the eth item even before introduction of 'has_vlan'
> >>> (mlx4 allows to match on the destination MAC only).
> >>>
> >>> Same for the 'has_more_vlan' flag of the vlan item.
> >>>
> >>> Changing the support level to 'partial' for all such drivers.
> >>> This doesn't solve the issue, but at least marks the problematic
> >>> drivers.
> >>
> >> You changed "eth" and "vlan" from "Y" to "P".
> >> The field "has_vlan" is part of "rte_flow_item_eth",
> >> and "has_more_vlan" is part of "rte_flow_item_vlan",
> >> so I agree we need to change both items to "partial support".
> >> It looks to be a good change, just needs to more explicit,
> >> adding this kind of explanation about the fields.
> > 
> > I can add this to the commit message.  Should I also add
> > some note alongside the table in that documentation page?

I'm afraid it can be long and complex to add notes in the page
about what is missing to get complete support for each feature/PMD.
I think you can just re-spin with a clear explanation in the commit,
so PMD maintainers can refer to it.

> >> We missed this patch in 22.07, let's have some progress quickly.
> > 
> > It was a busy month + PTO, sorry I didn't get to that patch faster.

No problem, we are still on time for 22.11.

> >>> Some details are available in:
> >>>   https://bugs.dpdk.org/show_bug.cgi?id=958
> >>
> >> About rte_flow_item_eth.{src,dst}, I don't find a deprecation notice
> >> about it in the history of the file doc/guides/rel_notes/deprecation.rst
> > 
> > It took some time to find the deprecation notice, but I did find it
> > in the end.  It's in the doc/guides/rel_notes/deprecation.rst, and
> > it says:
> > 
> > * ethdev: The flow API matching pattern structures, ``struct rte_flow_item_*``,
> >   should start with relevant protocol header.
> >   Some matching pattern structures implements this by duplicating protocol header
> >   fields in the struct. To clarify the intention and to be sure protocol header
> >   is intact, will replace those fields with relevant protocol header struct.
> >   In v21.02 both individual protocol header fields and the protocol header struct
> >   will be added as union, target is switch usage to the protocol header by time.
> >   In v21.11 LTS, protocol header fields will be cleaned and only protocol header
> >   struct will remain.

You're right, this is the general notice for rte_flow_item_*.

> >> This is what we have in the code:
> >>     union {
> >>         struct {
> >>             /*
> >>              * These fields are retained for compatibility.
> >>              * Please switch to the new header field below.
> >>              */
> >>             struct rte_ether_addr dst; /**< Destination MAC. */
> >>             struct rte_ether_addr src; /**< Source MAC. */
> >>             rte_be16_t type; /**< EtherType or TPID. */
> >>         };
> >>         struct rte_ether_hdr hdr;
> >>     };
> >>
> >> Do you think we should remove the old fields now?
> > 
> > From the OVS perspective, we do not care much.  OVS is still using
> > old fields, but it's fairly simple change that we can do while moving
> > to a new version of DPDK.
> > 
> > From the perspective of the API clarity, it's probably better to clean
> > up these structures.
> 
> There seems to be some outstanding work still though:
>   https://patches.dpdk.org/project/dpdk/patch/20210312110745.31721-1-ivan.malov@oktetlabs.ru/#129161

I think nobody took care of it so far.
I will send a patch to clean the easy ones,
and I will follow up with Ori for a complete plan.

Thanks



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

* Re: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-10-12 15:30       ` Thomas Monjalon
@ 2022-10-13 11:01         ` Ilya Maximets
  2022-10-13 12:18           ` Thomas Monjalon
  0 siblings, 1 reply; 12+ messages in thread
From: Ilya Maximets @ 2022-10-13 11:01 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: i.maximets, dev, stable, Ajit Khaparde, Rahul Lakkireddy,
	Hemant Agrawal, Haiyue Wang, John Daley, Guoyang Zhou,
	Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Viacheslav Ovsiienko, Liron Himi, Jiawen Wu, Ori Kam,
	ferruh.yigit, andrew.rybchenko, david.marchand, olivier.matz

On 10/12/22 17:30, Thomas Monjalon wrote:
> 07/10/2022 13:55, Ilya Maximets:
>> On 10/7/22 13:50, Ilya Maximets wrote:
>>> On 9/12/22 12:09, Thomas Monjalon wrote:
>>>> 16/03/2022 13:01, Ilya Maximets:
>>>>> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
>>>>> Other drivers doesn't support it.  Most of them (like i40e) just
>>>>> ignore it silently.  Some drivers (like mlx4) never had a full
>>>>> support of the eth item even before introduction of 'has_vlan'
>>>>> (mlx4 allows to match on the destination MAC only).
>>>>>
>>>>> Same for the 'has_more_vlan' flag of the vlan item.
>>>>>
>>>>> Changing the support level to 'partial' for all such drivers.
>>>>> This doesn't solve the issue, but at least marks the problematic
>>>>> drivers.
>>>>
>>>> You changed "eth" and "vlan" from "Y" to "P".
>>>> The field "has_vlan" is part of "rte_flow_item_eth",
>>>> and "has_more_vlan" is part of "rte_flow_item_vlan",
>>>> so I agree we need to change both items to "partial support".
>>>> It looks to be a good change, just needs to more explicit,
>>>> adding this kind of explanation about the fields.
>>>
>>> I can add this to the commit message.  Should I also add
>>> some note alongside the table in that documentation page?
> 
> I'm afraid it can be long and complex to add notes in the page
> about what is missing to get complete support for each feature/PMD.
> I think you can just re-spin with a clear explanation in the commit,
> so PMD maintainers can refer to it.

OK.  v2 sent here:
  https://patches.dpdk.org/project/dpdk/patch/20221013104849.2677995-1-i.maximets@ovn.org/

Sorry, forgot about --in-reply-to.  Can re-post if necessary.

> 
>>>> We missed this patch in 22.07, let's have some progress quickly.
>>>
>>> It was a busy month + PTO, sorry I didn't get to that patch faster.
> 
> No problem, we are still on time for 22.11.
> 
>>>>> Some details are available in:
>>>>>   https://bugs.dpdk.org/show_bug.cgi?id=958
>>>>
>>>> About rte_flow_item_eth.{src,dst}, I don't find a deprecation notice
>>>> about it in the history of the file doc/guides/rel_notes/deprecation.rst
>>>
>>> It took some time to find the deprecation notice, but I did find it
>>> in the end.  It's in the doc/guides/rel_notes/deprecation.rst, and
>>> it says:
>>>
>>> * ethdev: The flow API matching pattern structures, ``struct rte_flow_item_*``,
>>>   should start with relevant protocol header.
>>>   Some matching pattern structures implements this by duplicating protocol header
>>>   fields in the struct. To clarify the intention and to be sure protocol header
>>>   is intact, will replace those fields with relevant protocol header struct.
>>>   In v21.02 both individual protocol header fields and the protocol header struct
>>>   will be added as union, target is switch usage to the protocol header by time.
>>>   In v21.11 LTS, protocol header fields will be cleaned and only protocol header
>>>   struct will remain.
> 
> You're right, this is the general notice for rte_flow_item_*.
> 
>>>> This is what we have in the code:
>>>>     union {
>>>>         struct {
>>>>             /*
>>>>              * These fields are retained for compatibility.
>>>>              * Please switch to the new header field below.
>>>>              */
>>>>             struct rte_ether_addr dst; /**< Destination MAC. */
>>>>             struct rte_ether_addr src; /**< Source MAC. */
>>>>             rte_be16_t type; /**< EtherType or TPID. */
>>>>         };
>>>>         struct rte_ether_hdr hdr;
>>>>     };
>>>>
>>>> Do you think we should remove the old fields now?
>>>
>>> From the OVS perspective, we do not care much.  OVS is still using
>>> old fields, but it's fairly simple change that we can do while moving
>>> to a new version of DPDK.
>>>
>>> From the perspective of the API clarity, it's probably better to clean
>>> up these structures.
>>
>> There seems to be some outstanding work still though:
>>   https://patches.dpdk.org/project/dpdk/patch/20210312110745.31721-1-ivan.malov@oktetlabs.ru/#129161
> 
> I think nobody took care of it so far.
> I will send a patch to clean the easy ones,
> and I will follow up with Ori for a complete plan.
> 
> Thanks
> 
> 


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

* Re: [PATCH] doc: fix support table for ETH and VLAN flow items
  2022-10-13 11:01         ` Ilya Maximets
@ 2022-10-13 12:18           ` Thomas Monjalon
  0 siblings, 0 replies; 12+ messages in thread
From: Thomas Monjalon @ 2022-10-13 12:18 UTC (permalink / raw)
  To: Ilya Maximets
  Cc: i.maximets, dev, stable, Ajit Khaparde, Rahul Lakkireddy,
	Hemant Agrawal, Haiyue Wang, John Daley, Guoyang Zhou,
	Min Hu (Connor),
	Beilei Xing, Jingjing Wu, Qi Zhang, Rosen Xu, Matan Azrad,
	Viacheslav Ovsiienko, Liron Himi, Jiawen Wu, Ori Kam,
	ferruh.yigit, andrew.rybchenko, david.marchand, olivier.matz

13/10/2022 13:01, Ilya Maximets:
> On 10/12/22 17:30, Thomas Monjalon wrote:
> > 07/10/2022 13:55, Ilya Maximets:
> >> On 10/7/22 13:50, Ilya Maximets wrote:
> >>> On 9/12/22 12:09, Thomas Monjalon wrote:
> >>>> 16/03/2022 13:01, Ilya Maximets:
> >>>>> 'has_vlan' attribute is only supported by sfc, mlx5 and cnxk.
> >>>>> Other drivers doesn't support it.  Most of them (like i40e) just
> >>>>> ignore it silently.  Some drivers (like mlx4) never had a full
> >>>>> support of the eth item even before introduction of 'has_vlan'
> >>>>> (mlx4 allows to match on the destination MAC only).
> >>>>>
> >>>>> Same for the 'has_more_vlan' flag of the vlan item.
> >>>>>
> >>>>> Changing the support level to 'partial' for all such drivers.
> >>>>> This doesn't solve the issue, but at least marks the problematic
> >>>>> drivers.
> >>>>
> >>>> You changed "eth" and "vlan" from "Y" to "P".
> >>>> The field "has_vlan" is part of "rte_flow_item_eth",
> >>>> and "has_more_vlan" is part of "rte_flow_item_vlan",
> >>>> so I agree we need to change both items to "partial support".
> >>>> It looks to be a good change, just needs to more explicit,
> >>>> adding this kind of explanation about the fields.
> >>>
> >>> I can add this to the commit message.  Should I also add
> >>> some note alongside the table in that documentation page?
> > 
> > I'm afraid it can be long and complex to add notes in the page
> > about what is missing to get complete support for each feature/PMD.
> > I think you can just re-spin with a clear explanation in the commit,
> > so PMD maintainers can refer to it.
> 
> OK.  v2 sent here:
>   https://patches.dpdk.org/project/dpdk/patch/20221013104849.2677995-1-i.maximets@ovn.org/

Thank you, I'm currently working on the rte_flow_items to use structs from librte_net.



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

end of thread, other threads:[~2022-10-13 12:18 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-16 12:01 [PATCH] doc: fix support table for ETH and VLAN flow items Ilya Maximets
2022-04-20 17:51 ` Ferruh Yigit
2022-04-26  8:55   ` Asaf Penso
2022-04-26 10:47     ` Ferruh Yigit
2022-04-27 11:02       ` Asaf Penso
2022-09-12 10:09 ` Thomas Monjalon
2022-09-12 11:08   ` Ori Kam
2022-10-07 11:50   ` Ilya Maximets
2022-10-07 11:55     ` Ilya Maximets
2022-10-12 15:30       ` Thomas Monjalon
2022-10-13 11:01         ` Ilya Maximets
2022-10-13 12:18           ` Thomas Monjalon

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).