>-----Original Message----- >From: Ferruh Yigit <ferruh.yi...@xilinx.com> >Sent: Tuesday, April 26, 2022 1:48 PM >To: Asaf Penso <as...@nvidia.com>; Ilya Maximets <i.maxim...@ovn.org>; >dev@dpdk.org; Ori Kam <or...@nvidia.com> >Cc: Ajit Khaparde <ajit.khapa...@broadcom.com>; Rahul Lakkireddy ><rahul.lakkire...@chelsio.com>; Hemant Agrawal ><hemant.agra...@nxp.com>; Haiyue Wang <haiyue.w...@intel.com>; John >Daley <johnd...@cisco.com>; Guoyang Zhou <zhouguoy...@huawei.com>; >Min Hu (Connor) <humi...@huawei.com>; Beilei Xing ><beilei.x...@intel.com>; Jingjing Wu <jingjing...@intel.com>; Qi Zhang ><qi.z.zh...@intel.com>; Rosen Xu <rosen...@intel.com>; Matan Azrad ><ma...@nvidia.com>; Slava Ovsiienko <viachesl...@nvidia.com>; Liron Himi ><lir...@marvell.com>; Jiawen Wu <jiawe...@trustnetic.com>; Dekel Peled ><dek...@nvidia.com>; NBU-Contact-Thomas Monjalon (EXTERNAL) ><tho...@monjalon.net>; sta...@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.yi...@xilinx.com> >>> Sent: Wednesday, April 20, 2022 8:52 PM >>> To: Ilya Maximets <i.maxim...@ovn.org>; dev@dpdk.org; Asaf Penso >>> <as...@nvidia.com> >>> Cc: Ajit Khaparde <ajit.khapa...@broadcom.com>; Rahul Lakkireddy >>> <rahul.lakkire...@chelsio.com>; Hemant Agrawal >>> <hemant.agra...@nxp.com>; Haiyue Wang <haiyue.w...@intel.com>; >John >>> Daley <johnd...@cisco.com>; Guoyang Zhou ><zhouguoy...@huawei.com>; >>> Min Hu (Connor) <humi...@huawei.com>; Beilei Xing >>> <beilei.x...@intel.com>; Jingjing Wu <jingjing...@intel.com>; Qi >>> Zhang <qi.z.zh...@intel.com>; Rosen Xu <rosen...@intel.com>; Matan >>> Azrad <ma...@nvidia.com>; Slava Ovsiienko <viachesl...@nvidia.com>; >>> Liron Himi <lir...@marvell.com>; Jiawen Wu ><jiawe...@trustnetic.com>; >>> Ori Kam <or...@nvidia.com>; Dekel Peled <dek...@nvidia.com>; >>> NBU-Contact- Thomas Monjalon (EXTERNAL) <tho...@monjalon.net>; >>> sta...@dpdk.org; NBU-Contact-Thomas Monjalon (EXTERNAL) >>> <tho...@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: sta...@dpdk.org >>>> >>>> Signed-off-by: Ilya Maximets <i.maxim...@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] >>