From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0B45EA00C2; Fri, 14 Oct 2022 11:41:34 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D0D8B42D32; Fri, 14 Oct 2022 11:41:33 +0200 (CEST) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id A190B42D29; Fri, 14 Oct 2022 11:41:31 +0200 (CEST) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4MphGs73hYzHvHn; Fri, 14 Oct 2022 17:41:25 +0800 (CST) Received: from [10.67.100.224] (10.67.100.224) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 14 Oct 2022 17:41:28 +0800 Subject: Re: [PATCH v2] doc: fix support table for ETH and VLAN flow items To: Ilya Maximets , , Thomas Monjalon CC: Ajit Khaparde , Somnath Kotur , Rahul Lakkireddy , Hemant Agrawal , Sachin Saxena , Simei Su , Wenjun Wu , John Daley , Hyong Youb Kim , Ziyang Xuan , Xiaoyun Wang , Guoyang Zhou , Dongdong Liu , Yisen Zhuang , Yuying Zhang , Beilei Xing , Jingjing Wu , Qiming Yang , Qi Zhang , Junfeng Guo , Rosen Xu , Matan Azrad , Viacheslav Ovsiienko , Liron Himi , Jiawen Wu , Jian Wang , Dekel Peled , Ori Kam , References: <20221013104849.2677995-1-i.maximets@ovn.org> From: fengchengwen Message-ID: Date: Fri, 14 Oct 2022 17:41:28 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <20221013104849.2677995-1-i.maximets@ovn.org> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.67.100.224] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To dggpeml500024.china.huawei.com (7.185.36.10) X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Hi Ilya, I have some questions about has_vlan/has_more_vlan fields: a\ DPDK framework support cvlan-tag(0x8100) and svlan-tag(0x88A8), and also deprecated qinq-tag(eg. 0x9100) b\ If has_vlan is used, does it mean that all the VLAN tags(0x8100/88A8/9100) must be matched ? I think this is different from using type, which can only match one of them. c\ And has_more_vlan has the same function as has_vlan ? d\ What the problems are solved by the new two fields? If the above understanding is correct, and the hardware support identify there TPID(cvlan-0x8100, svlan-0x88A8, dqing-0x9100) as VLAN, then: Rule: eth has_vlan is 1 / vlan vid is 100 / ipv4 / end actions xxx Result: all ipv4 packets with at least one VLAN(the TPID can be one of the above) and the vid is 100 can be matched. Rule: eth type is 0x8100 / vlan vid is 100 / ipv4 / end actions xxx Result: all ipv4 packets with at lease one VLAN(which TPID must be 0x8100) and the vid is 100 can be matched. Rule: eth has_vlan is 1 / vlan vid is 100 has_more_vlan is 1 / vlan vid is 200 / ipv4 / end action xxx Result: all ipv4 packets with at least two VLAN(the TPID can be one of the above) and outer vid is 100 and the next vid is 200 can be matched. Rule: eth type is 0x88A8 / vlan vid is 100 inner_type is 0x8100 / vlan vid is 200 / ipv4 / end action xxx Result: all ipv4 packets with at least two VLAN(the first TPID is 0x88A8 and second TPID is 0x8100) and outer vid is 100 and the next vid is 200 can be matched. Is the above result correct ? Thanks On 2022/10/13 18:48, 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. > > 'has_vlan' is part of 'rte_flow_item_eth', so changing 'eth' > field to 'partial support' in documentation for all such drivers. > 'has_more_vlan' is part of 'rte_flow_item_vlan', so changing > 'vlan' to 'partial support' as well. > > 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 > --- > > Version 2: > - Rebased on a current main branch. > - Added more clarifications to the commit message. > > 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 b2d54f06aa..50a0b5bfa6 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 > @@ -68,7 +68,7 @@ port_representor = Y > represented_port = Y > tcp = Y > udp = 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 a9dbcd0573..0d67ca8720 100644 > --- a/doc/guides/nics/features/cxgbe.ini > +++ b/doc/guides/nics/features/cxgbe.ini > @@ -36,12 +36,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] > count = Y > diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini > index cedc234f26..26dc8c2178 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 95e39aaba0..e241dad047 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 > @@ -68,7 +68,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/iavf.ini b/doc/guides/nics/features/iavf.ini > index eeda6b7210..9db2865b71 100644 > --- a/doc/guides/nics/features/iavf.ini > +++ b/doc/guides/nics/features/iavf.ini > @@ -43,7 +43,7 @@ ah = Y > arp_eth_ipv4 = Y > ecpri = Y > esp = Y > -eth = Y > +eth = P > gre = Y > gtpc = Y > gtpu = Y > @@ -61,7 +61,7 @@ raw = 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 032da8e2e2..13f8871dcc 100644 > --- a/doc/guides/nics/features/ice.ini > +++ b/doc/guides/nics/features/ice.ini > @@ -55,7 +55,7 @@ ah = Y > any = Y > arp_eth_ipv4 = Y > esp = Y > -eth = Y > +eth = P > gtpu = Y > gtp_psc = Y > icmp = Y > @@ -73,7 +73,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 97c0a6af9e..8590ac857f 100644 > --- a/doc/guides/nics/features/ixgbe.ini > +++ b/doc/guides/nics/features/ixgbe.ini > @@ -58,7 +58,7 @@ x86-32 = Y > x86-64 = Y > > [rte_flow items] > -eth = Y > +eth = P > e_tag = Y > fuzzy = Y > ipv4 = Y > @@ -68,7 +68,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] >