DPDK patches and discussions
 help / color / mirror / Atom feed
From: fengchengwen <fengchengwen@huawei.com>
To: Ilya Maximets <i.maximets@ovn.org>, <dev@dpdk.org>,
	Thomas Monjalon <thomas@monjalon.net>
Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>,
	Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>,
	Hemant Agrawal <hemant.agrawal@nxp.com>,
	Sachin Saxena <sachin.saxena@oss.nxp.com>,
	Simei Su <simei.su@intel.com>, Wenjun Wu <wenjun1.wu@intel.com>,
	John Daley <johndale@cisco.com>,
	Hyong Youb Kim <hyonkim@cisco.com>,
	Ziyang Xuan <xuanziyang2@huawei.com>,
	Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>,
	Guoyang Zhou <zhouguoyang@huawei.com>,
	Dongdong Liu <liudongdong3@huawei.com>,
	Yisen Zhuang <yisen.zhuang@huawei.com>,
	Yuying Zhang <Yuying.Zhang@intel.com>,
	Beilei Xing <beilei.xing@intel.com>,
	Jingjing Wu <jingjing.wu@intel.com>,
	Qiming Yang <qiming.yang@intel.com>,
	Qi Zhang <qi.z.zhang@intel.com>,
	Junfeng Guo <junfeng.guo@intel.com>,
	Rosen Xu <rosen.xu@intel.com>, Matan Azrad <matan@nvidia.com>,
	Viacheslav Ovsiienko <viacheslavo@nvidia.com>,
	Liron Himi <lironh@marvell.com>,
	Jiawen Wu <jiawenwu@trustnetic.com>,
	Jian Wang <jianwang@trustnetic.com>,
	Dekel Peled <dekelp@nvidia.com>, Ori Kam <orika@nvidia.com>,
	<stable@dpdk.org>
Subject: Re: [PATCH v2] doc: fix support table for ETH and VLAN flow items
Date: Fri, 14 Oct 2022 17:41:28 +0800	[thread overview]
Message-ID: <b7aeb1f4-be03-e526-7570-cd79e3ea12b0@huawei.com> (raw)
In-Reply-To: <20221013104849.2677995-1-i.maximets@ovn.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 <i.maximets@ovn.org>
> ---
> 
> 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]
> 

  reply	other threads:[~2022-10-14  9:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-13 10:48 Ilya Maximets
2022-10-14  9:41 ` fengchengwen [this message]
2022-10-14 12:37   ` Ilya Maximets
2022-10-16  5:26     ` Eli Britstein
2022-10-17 11:54       ` fengchengwen
2022-10-18  7:18         ` Ori Kam
2022-10-26 15:34 ` Thomas Monjalon
2022-11-02 11:41   ` Ilya Maximets

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b7aeb1f4-be03-e526-7570-cd79e3ea12b0@huawei.com \
    --to=fengchengwen@huawei.com \
    --cc=Yuying.Zhang@intel.com \
    --cc=ajit.khaparde@broadcom.com \
    --cc=beilei.xing@intel.com \
    --cc=cloud.wangxiaoyun@huawei.com \
    --cc=dekelp@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=hemant.agrawal@nxp.com \
    --cc=hyonkim@cisco.com \
    --cc=i.maximets@ovn.org \
    --cc=jianwang@trustnetic.com \
    --cc=jiawenwu@trustnetic.com \
    --cc=jingjing.wu@intel.com \
    --cc=johndale@cisco.com \
    --cc=junfeng.guo@intel.com \
    --cc=lironh@marvell.com \
    --cc=liudongdong3@huawei.com \
    --cc=matan@nvidia.com \
    --cc=orika@nvidia.com \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=rahul.lakkireddy@chelsio.com \
    --cc=rosen.xu@intel.com \
    --cc=sachin.saxena@oss.nxp.com \
    --cc=simei.su@intel.com \
    --cc=somnath.kotur@broadcom.com \
    --cc=stable@dpdk.org \
    --cc=thomas@monjalon.net \
    --cc=viacheslavo@nvidia.com \
    --cc=wenjun1.wu@intel.com \
    --cc=xuanziyang2@huawei.com \
    --cc=yisen.zhuang@huawei.com \
    --cc=zhouguoyang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).