From patchwork Wed Apr 7 22:33:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Monjalon X-Patchwork-Id: 90828 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 946D5A0A0F; Thu, 8 Apr 2021 00:33:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D3313141045; Thu, 8 Apr 2021 00:33:30 +0200 (CEST) Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by mails.dpdk.org (Postfix) with ESMTP id E8EC4141006 for ; Thu, 8 Apr 2021 00:33:28 +0200 (CEST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 66C615C00B1; Wed, 7 Apr 2021 18:33:28 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 07 Apr 2021 18:33:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=RCf49zcxCR2RB o1YgFU/04XolQpMyn+xF73HUvkSkww=; b=o8UuMV2rvARs7tQzhmLhHyQCsPBRf aKrMJ4lEZf5y50ux3bzBN8sweaVqfHTKl0css3HC6Y1y05zNg4O0tuafMevA3XdD dMsfYFCfFHwWXyBM1e/GFOvKv74Nqlw9xtnqsufV87nk8Rurt/OTaxjpnAXxZFV5 w0Mp72zGDLpmuTCVO5rMkBUuNA8M043SCpvyVgMnkr99KNhlJUrtnFGyTkjwlOAU rphbtlXHWO70LXW1bZnZFDTzucdBpqBj54u60YECxjIVGAwMqeXAsWecbUK08fvZ 4tKhyhzOQB2tzFrKJLQQF2iXsu9AmAEhoVTROQsQgL9npF5RnY8utogDg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=RCf49zcxCR2RBo1YgFU/04XolQpMyn+xF73HUvkSkww=; b=DvDS+/1y JdNi1tLtNakM+Lg4IgYdqOR2H+HSd30eM1dhn9sAWD91eYqiKrb+RFG+faUL3AsV GRqp7rAPM5NydcbhPc4j0s0butgnEcxio7S5915uX6Uk2KkvOdzS/ObvctquWKPT uLNgb9CXdhUgtE5eVZb8xbo4MyvSvEJSzuD4N+re1CcD3jRAcV3yw4LOjbKrJgRr 6oDbXsOTckvHLBFT99XdL/ECUvqR703oln8AdUB16yx/CmlBvsvNRwarMajMvu93 kQdXdwnPhO47uT4rYW8d8cvBNUEGux9/2woONVyeK2n26LWF5g1OyMQc8YeBNaTj ONZD0a241M2iLA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejkedguddvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomhepvfhhohhmrghsucfoohhnjhgrlhhonhcuoehthhhomhgrshes mhhonhhjrghlohhnrdhnvghtqeenucggtffrrghtthgvrhhnpedvhefgiedvjeegtdevhe efhfetleefgfeivefgffevfeejgedtgfeutdehtdegveenucfkphepjeejrddufeegrddv tdefrddukeegnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrh homhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth X-ME-Proxy: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id C70661080063; Wed, 7 Apr 2021 18:33:27 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Cc: ferruh.yigit@intel.com, andrew.rybchenko@oktetlabs.ru Date: Thu, 8 Apr 2021 00:33:18 +0200 Message-Id: <20210407223320.2952469-2-thomas@monjalon.net> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407223320.2952469-1-thomas@monjalon.net> References: <1612458325-13508-1-git-send-email-asafp@nvidia.com> <20210407223320.2952469-1-thomas@monjalon.net> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v5 1/3] doc: rename sfc features file 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 Sender: "dev" The driver directory is drivers/net/sfc but the features file was doc/guides/nics/features/sfc_efx.ini. sfc_efx.ini is renamed sfc.ini to match the driver directory name. It will help automatic checks of this file. Signed-off-by: Thomas Monjalon --- doc/guides/nics/features/{sfc_efx.ini => sfc.ini} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename doc/guides/nics/features/{sfc_efx.ini => sfc.ini} (100%) diff --git a/doc/guides/nics/features/sfc_efx.ini b/doc/guides/nics/features/sfc.ini similarity index 100% rename from doc/guides/nics/features/sfc_efx.ini rename to doc/guides/nics/features/sfc.ini From patchwork Wed Apr 7 22:33:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Monjalon X-Patchwork-Id: 90829 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AD6CEA0A0F; Thu, 8 Apr 2021 00:33:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5CF50141057; Thu, 8 Apr 2021 00:33:37 +0200 (CEST) Received: from new3-smtp.messagingengine.com (new3-smtp.messagingengine.com [66.111.4.229]) by mails.dpdk.org (Postfix) with ESMTP id 4C73F141051 for ; Thu, 8 Apr 2021 00:33:35 +0200 (CEST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailnew.nyi.internal (Postfix) with ESMTP id B132F58064A; Wed, 7 Apr 2021 18:33:34 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 07 Apr 2021 18:33:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=FzYVqvnIDXdVo shl/7TVTlmdyo/uFuS0aIWDkaT2eOo=; b=oWl2v1T5To1Gr3wzT1Dmezwii3598 Mi/9nsiTqfuQ8MqJWUAls2of3FMKGFBiibrEBmd8qiK1EBH09QY9wQ1rJzuJNCI7 sS28mAknBwkbwyVL4VTqEl9/3TYKBuv7sBET+FE1XgKQBn4DAXnRXaVVArWWIrxq W66h+opuWwZbk1qi49mmPHRW8GuAg8hzP8KHZPYUTH53XnMRMPLObdkK+87Sw0Xl yyTVAv4wtSNOHQbpUYxna4jnPiWU4WNAcYIfP3VbUCBKaxreJLZ9a0s0eme0aNg9 wmnhCSWUqg4zu98zyP1Y5lqqu3OOIB4Ec9Cf/XkgEroIJUeZ0IOjv4TnQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=FzYVqvnIDXdVoshl/7TVTlmdyo/uFuS0aIWDkaT2eOo=; b=h6pcM0MD IFU+vJpj3J1krRAYeDsuyhCA6/XtCOpz0lcv1r2YZrb/rzL2Z0ebqT1gxTO3CKly ZOz7yA0SOyLHb/EkwZjVZ1zZBz0GI+Q+S3cSwT6qPYfYcIBNYf9adpZztWOQqeQy AXaYCdv0JcZ419JAm9lE6hc4XrmxMXqY5xPcq/KeX6XxlXdNZcEZ293/2PcIQQF5 In3RZELdcL5a0nh5WfIrTgIxuS3fuxRtuxHqMRJIY19cUtULVN8h9IYLLOhYdDIf dp8DBWIGVYlTXDXPmoAAgbdoB+W4v4EN0wUzJ+lJmCe6KILAdAE56YcHsBo0Ykm7 ktjbGnASCYy+fA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejkedguddvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvhhhomhgr shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecugg ftrfgrthhtvghrnhepvdehgfeivdejgedtveehfefhteelfefgieevgfffveefjeegtdfg uedthedtgeevnecukfhppeejjedrudefgedrvddtfedrudekgeenucevlhhushhtvghruf hiiigvpedvnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghl ohhnrdhnvght X-ME-Proxy: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 82DAA108005F; Wed, 7 Apr 2021 18:33:29 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Cc: ferruh.yigit@intel.com, andrew.rybchenko@oktetlabs.ru, Asaf Penso , Ajit Khaparde , Somnath Kotur , Rahul Lakkireddy , Hemant Agrawal , Sachin Saxena , Jeff Guo , Haiyue Wang , John Daley , Hyong Youb Kim , Gaetan Rivet , Ziyang Xuan , Xiaoyun Wang , Guoyang Zhou , "Min Hu (Connor)" , Yisen Zhuang , Lijun Ou , Beilei Xing , Jingjing Wu , Qiming Yang , Qi Zhang , Rosen Xu , Matan Azrad , Shahaf Shuler , Viacheslav Ovsiienko , Liron Himi , Jerin Jacob , Nithin Dabilpuram , Kiran Kumar K , Rasesh Mody , Devendra Singh Rawat , Igor Russkikh , Keith Wiles , Jiawen Wu , Jian Wang Date: Thu, 8 Apr 2021 00:33:19 +0200 Message-Id: <20210407223320.2952469-3-thomas@monjalon.net> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407223320.2952469-1-thomas@monjalon.net> References: <1612458325-13508-1-git-send-email-asafp@nvidia.com> <20210407223320.2952469-1-thomas@monjalon.net> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v5 2/3] doc: add flow API features tables 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 Sender: "dev" The NICs overview table lists all supported features per driver. There was a single row for "Flow API", although rte_flow is composed of many items and actions. The row "Flow API" is replaced with two new tables for items and actions. Also, since rte_flow is not implemented in all drivers, it would be ugly to add empty sections in some files. That's why the error message for missing INI section is removed. The lists are sorted alphabetically. The extra files for some VF and vectorized data paths are not filled. Signed-off-by: Asaf Penso Signed-off-by: Thomas Monjalon Acked-by: Kiran Kumar Kokkilagadda --- .gitignore | 2 + doc/guides/conf.py | 18 ++-- doc/guides/nics/features.rst | 11 -- doc/guides/nics/features/bnxt.ini | 26 ++++- doc/guides/nics/features/cxgbe.ini | 31 +++++- doc/guides/nics/features/default.ini | 116 ++++++++++++++++++++- doc/guides/nics/features/dpaa2.ini | 19 +++- doc/guides/nics/features/e1000.ini | 14 +++ doc/guides/nics/features/enic.ini | 29 +++++- doc/guides/nics/features/failsafe.ini | 1 - doc/guides/nics/features/hinic.ini | 16 ++- doc/guides/nics/features/hns3.ini | 23 +++- doc/guides/nics/features/hns3_vf.ini | 1 - doc/guides/nics/features/i40e.ini | 31 +++++- doc/guides/nics/features/iavf.ini | 29 +++++- doc/guides/nics/features/ice.ini | 33 +++++- doc/guides/nics/features/ice_dcf.ini | 1 - doc/guides/nics/features/igb.ini | 1 - doc/guides/nics/features/igc.ini | 12 ++- doc/guides/nics/features/ipn3ke.ini | 15 ++- doc/guides/nics/features/ixgbe.ini | 24 ++++- doc/guides/nics/features/mlx4.ini | 13 ++- doc/guides/nics/features/mlx5.ini | 71 ++++++++++++- doc/guides/nics/features/mvpp2.ini | 14 +++ doc/guides/nics/features/octeontx2.ini | 42 +++++++- doc/guides/nics/features/octeontx2_vec.ini | 1 - doc/guides/nics/features/octeontx2_vf.ini | 1 - doc/guides/nics/features/qede.ini | 11 +- doc/guides/nics/features/sfc.ini | 35 ++++++- doc/guides/nics/features/tap.ini | 15 ++- doc/guides/nics/features/txgbe.ini | 24 ++++- doc/guides/nics/overview.rst | 8 ++ 32 files changed, 644 insertions(+), 44 deletions(-) diff --git a/.gitignore b/.gitignore index f73d93ca53..b19c0717e6 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,8 @@ # ignore generated documentation tables doc/guides/nics/overview_table.txt +doc/guides/nics/rte_flow_actions_table.txt +doc/guides/nics/rte_flow_items_table.txt doc/guides/cryptodevs/overview_feature_table.txt doc/guides/cryptodevs/overview_cipher_table.txt doc/guides/cryptodevs/overview_auth_table.txt diff --git a/doc/guides/conf.py b/doc/guides/conf.py index ec59aeae7e..70213843c1 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -216,14 +216,8 @@ def generate_overview_table(output_filename, table_id, section, table_name, titl # Initialize the dict with the default.ini value. ini_data[ini_filename] = valid_features.copy() - # Check for a valid ini section. + # Check for a section. if not config.has_section(section): - print("{}: File '{}' has no [{}] secton".format(warning, - ini_filename, - section), - file=stderr) - if stop_on_error: - raise Exception('Warning is treated as a failure') continue # Check for valid features names. @@ -379,6 +373,16 @@ def setup(app): 'Features', 'Features availability in networking drivers', 'Feature') + table_file = dirname(__file__) + '/nics/rte_flow_items_table.txt' + generate_overview_table(table_file, 2, + 'rte_flow items', + 'rte_flow items availability in networking drivers', + 'Item') + table_file = dirname(__file__) + '/nics/rte_flow_actions_table.txt' + generate_overview_table(table_file, 3, + 'rte_flow actions', + 'rte_flow actions availability in networking drivers', + 'Action') table_file = dirname(__file__) + '/cryptodevs/overview_feature_table.txt' generate_overview_table(table_file, 1, 'Features', diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index f6d30d0af3..403c2b03a3 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -397,17 +397,6 @@ Supports configuring link flow control. ``rte_eth_dev_priority_flow_ctrl_set()``. -.. _nic_features_flow_api: - -Flow API --------- - -Supports flow API family. - -* **[implements] eth_dev_ops**: ``flow_ops_get``. -* **[implements] rte_flow_ops**: ``All``. - - .. _nic_features_rate_limitation: Rate limitation diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini index 79335783ec..291faaad05 100644 --- a/doc/guides/nics/features/bnxt.ini +++ b/doc/guides/nics/features/bnxt.ini @@ -27,7 +27,6 @@ VMDq = Y SR-IOV = Y VLAN filter = Y Flow control = Y -Flow API = Y CRC offload = Y L3 checksum offload = Y L4 checksum offload = Y @@ -52,3 +51,28 @@ x86-32 = Y x86-64 = Y Usage doc = Y Perf doc = Y + +[rte_flow items] +eth = Y +ipv4 = Y +ipv6 = Y +pf = Y +phy_port = Y +port_id = Y +tcp = Y +udp = Y +vf = Y +vlan = Y +vxlan = Y + +[rte_flow actions] +count = Y +drop = Y +mark = Y +pf = Y +phy_port = Y +port_id = Y +rss = Y +vf = Y +vxlan_decap = Y +vxlan_encap = Y diff --git a/doc/guides/nics/features/cxgbe.ini b/doc/guides/nics/features/cxgbe.ini index 276879ec1a..a3ecf12aad 100644 --- a/doc/guides/nics/features/cxgbe.ini +++ b/doc/guides/nics/features/cxgbe.ini @@ -17,7 +17,6 @@ RSS hash = Y RSS key update = Y RSS reta update = Y Flow control = Y -Flow API = Y CRC offload = Y VLAN offload = Y FEC = Y @@ -34,3 +33,33 @@ Linux = Y x86-32 = Y x86-64 = Y Usage doc = Y + +[rte_flow items] +eth = Y +ipv4 = Y +ipv6 = Y +pf = Y +phy_port = Y +tcp = Y +udp = Y +vf = Y +vlan = Y + +[rte_flow actions] +count = Y +drop = Y +mac_swap = Y +of_pop_vlan = Y +of_push_vlan = Y +of_set_vlan_pcp = Y +of_set_vlan_vid = Y +phy_port = Y +queue = Y +set_ipv4_dst = Y +set_ipv4_src = Y +set_ipv6_dst = Y +set_ipv6_src = Y +set_mac_dst = Y +set_mac_src = Y +set_tp_dst = Y +set_tp_src = Y diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini index 8046bd121e..f16cbb66e3 100644 --- a/doc/guides/nics/features/default.ini +++ b/doc/guides/nics/features/default.ini @@ -38,7 +38,6 @@ SR-IOV = DCB = VLAN filter = Flow control = -Flow API = Rate limitation = Traffic mirroring = Inline crypto = @@ -77,3 +76,118 @@ x86-64 = Usage doc = Design doc = Perf doc = + +[rte_flow items] +ah = +any = +arp_eth_ipv4 = +ecpri = +esp = +eth = +e_tag = +fuzzy = +geneve = +geneve_opt = +gre = +gre_key = +gtp = +gtpc = +gtpu = +gtp_psc = +higig2 = +icmp = +icmp6 = +icmp6_nd_na = +icmp6_nd_ns = +icmp6_nd_opt = +icmp6_nd_opt_sla_eth = +icmp6_nd_opt_tla_eth = +igmp = +invert = +ipv4 = +ipv6 = +ipv6_ext = +ipv6_frag_ext = +l2tpv3oip = +mark = +meta = +mpls = +nsh = +nvgre = +pf = +pfcp = +phy_port = +port_id = +pppoe = +pppoed = +pppoes = +pppoe_proto_id = +raw = +sctp = +tag = +tcp = +udp = +vf = +vlan = +void = +vxlan = +vxlan_gpe = + +[rte_flow actions] +age = +count = +dec_tcp_ack = +dec_tcp_seq = +dec_ttl = +drop = +flag = +inc_tcp_ack = +inc_tcp_seq = +jump = +mac_swap = +mark = +meter = +modify_field = +nvgre_decap = +nvgre_encap = +of_copy_ttl_in = +of_copy_ttl_out = +of_dec_mpls_ttl = +of_dec_nw_ttl = +of_pop_mpls = +of_pop_vlan = +of_push_mpls = +of_push_vlan = +of_set_mpls_ttl = +of_set_nw_ttl = +of_set_vlan_pcp = +of_set_vlan_vid = +passthru = +pf = +phy_port = +port_id = +queue = +raw_decap = +raw_encap = +rss = +sample = +security = +set_ipv4_dscp = +set_ipv4_dst = +set_ipv4_src = +set_ipv6_dscp = +set_ipv6_dst = +set_ipv6_src = +set_mac = +set_mac_dst = +set_mac_src = +set_meta = +set_tag = +set_tp_dst = +set_tp_src = +set_ttl = +shared = +vf = +void = +vxlan_decap = +vxlan_encap = diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini index 59bd1a2ced..8e3d74cbb5 100644 --- a/doc/guides/nics/features/dpaa2.ini +++ b/doc/guides/nics/features/dpaa2.ini @@ -18,7 +18,6 @@ Unicast MAC filter = Y RSS hash = Y VLAN filter = Y Flow control = Y -Flow API = Y VLAN offload = Y L3 checksum offload = Y L4 checksum offload = Y @@ -31,3 +30,21 @@ FW version = Y Linux = Y ARMv8 = Y Usage doc = Y + +[rte_flow items] +eth = Y +gre = Y +icmp = Y +ipv4 = Y +ipv6 = Y +meta = Y +raw = Y +sctp = Y +tcp = Y +udp = Y +vlan = Y + +[rte_flow actions] +drop = Y +queue = Y +rss = Y diff --git a/doc/guides/nics/features/e1000.ini b/doc/guides/nics/features/e1000.ini index 7a224cc535..5af6040e37 100644 --- a/doc/guides/nics/features/e1000.ini +++ b/doc/guides/nics/features/e1000.ini @@ -29,3 +29,17 @@ FreeBSD = Y Linux = Y x86-32 = Y x86-64 = Y + +[rte_flow items] +eth = Y +ipv4 = Y +ipv6 = Y +raw = Y +sctp = Y +tcp = Y +udp = Y + +[rte_flow actions] +drop = Y +queue = Y +rss = Y diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini index 16d6aabe47..a582616c07 100644 --- a/doc/guides/nics/features/enic.ini +++ b/doc/guides/nics/features/enic.ini @@ -25,7 +25,6 @@ Inner RSS = Y SR-IOV = Y CRC offload = Y VLAN offload = Y -Flow API = Y L3 checksum offload = Y L4 checksum offload = Y Inner L3 checksum = Y @@ -39,3 +38,31 @@ Linux = Y x86-32 = Y x86-64 = Y Usage doc = Y + +[rte_flow items] +eth = Y +ipv4 = Y +ipv6 = Y +raw = Y +sctp = Y +tcp = Y +udp = Y +vlan = Y +vxlan = Y + +[rte_flow actions] +count = Y +drop = Y +flag = Y +jump = Y +mark = Y +of_pop_vlan = Y +of_push_vlan = Y +of_set_vlan_pcp = Y +of_set_vlan_vid = Y +passthru = Y +port_id = Y +queue = Y +rss = Y +vxlan_decap = Y +vxlan_encap = Y diff --git a/doc/guides/nics/features/failsafe.ini b/doc/guides/nics/features/failsafe.ini index b6f3dcee61..8a2b92fc9c 100644 --- a/doc/guides/nics/features/failsafe.ini +++ b/doc/guides/nics/features/failsafe.ini @@ -19,7 +19,6 @@ Unicast MAC filter = Y Multicast MAC filter = Y VLAN filter = Y Flow control = Y -Flow API = Y Packet type parsing = Y Basic stats = Y Stats per queue = Y diff --git a/doc/guides/nics/features/hinic.ini b/doc/guides/nics/features/hinic.ini index 988a0ad574..4ea7368704 100644 --- a/doc/guides/nics/features/hinic.ini +++ b/doc/guides/nics/features/hinic.ini @@ -32,10 +32,24 @@ Inner L4 checksum = Y Basic stats = Y Extended stats = Y Stats per queue = Y -Flow API = Y Flow control = Y FW version = Y Multiprocess aware = Y Linux = Y x86-64 = Y ARMv8 = Y + +[rte_flow items] +any = Y +eth = Y +icmp = Y +icmp6 = Y +ipv4 = Y +ipv6 = Y +tcp = Y +udp = Y +vxlan = Y + +[rte_flow actions] +drop = Y +queue = Y diff --git a/doc/guides/nics/features/hns3.ini b/doc/guides/nics/features/hns3.ini index 3988be4fba..ecb3eed5aa 100644 --- a/doc/guides/nics/features/hns3.ini +++ b/doc/guides/nics/features/hns3.ini @@ -26,7 +26,6 @@ RSS reta update = Y DCB = Y VLAN filter = Y Flow control = Y -Flow API = Y CRC offload = Y VLAN offload = Y FEC = Y @@ -46,3 +45,25 @@ Module EEPROM dump = Y Multiprocess aware = Y Linux = Y ARMv8 = Y + +[rte_flow items] +eth = Y +geneve = Y +icmp = Y +ipv4 = Y +ipv6 = Y +nvgre = Y +sctp = Y +tcp = Y +udp = Y +vlan = Y +vxlan = Y +vxlan_gpe = Y + +[rte_flow actions] +count = Y +drop = Y +flag = Y +mark = Y +queue = Y +rss = Y diff --git a/doc/guides/nics/features/hns3_vf.ini b/doc/guides/nics/features/hns3_vf.ini index 1640669a98..489963fafd 100644 --- a/doc/guides/nics/features/hns3_vf.ini +++ b/doc/guides/nics/features/hns3_vf.ini @@ -24,7 +24,6 @@ RSS hash = Y RSS key update = Y RSS reta update = Y VLAN filter = Y -Flow API = Y CRC offload = Y VLAN offload = Y L3 checksum offload = Y diff --git a/doc/guides/nics/features/i40e.ini b/doc/guides/nics/features/i40e.ini index 542432c41d..1f3f5eb3ff 100644 --- a/doc/guides/nics/features/i40e.ini +++ b/doc/guides/nics/features/i40e.ini @@ -27,7 +27,6 @@ SR-IOV = Y DCB = Y VLAN filter = Y Flow control = Y -Flow API = Y Traffic mirroring = Y CRC offload = Y VLAN offload = Y @@ -52,3 +51,33 @@ x86-32 = Y x86-64 = Y ARMv8 = Y Power8 = Y + +[rte_flow items] +ah = Y +esp = Y +eth = Y +gre = Y +gtpc = Y +gtpu = Y +ipv4 = Y +ipv6 = Y +l2tpv3oip = Y +mpls = Y +nvgre = Y +raw = Y +sctp = Y +tcp = Y +udp = Y +vf = Y +vlan = Y +vxlan = Y + +[rte_flow actions] +drop = Y +flag = Y +mark = Y +passthru = Y +pf = Y +queue = Y +rss = Y +vf = Y diff --git a/doc/guides/nics/features/iavf.ini b/doc/guides/nics/features/iavf.ini index 980680e568..4864c19b57 100644 --- a/doc/guides/nics/features/iavf.ini +++ b/doc/guides/nics/features/iavf.ini @@ -19,7 +19,6 @@ Multicast MAC filter = Y RSS hash = Y RSS key update = Y RSS reta update = Y -Flow API = Y VLAN filter = Y CRC offload = Y VLAN offload = Y @@ -34,3 +33,31 @@ FreeBSD = Y Linux = Y x86-32 = Y x86-64 = Y + +[rte_flow items] +ah = Y +arp_eth_ipv4 = Y +ecpri = Y +esp = Y +eth = Y +gtpc = Y +gtpu = Y +gtp_psc = Y +icmp = Y +icmp6 = Y +ipv4 = Y +ipv6 = Y +l2tpv3oip = Y +pfcp = Y +sctp = Y +tcp = Y +udp = Y +vlan = Y + +[rte_flow actions] +count = Y +drop = Y +mark = Y +passthru = Y +queue = Y +rss = Y diff --git a/doc/guides/nics/features/ice.ini b/doc/guides/nics/features/ice.ini index e30a7d2e57..c3a8a1b676 100644 --- a/doc/guides/nics/features/ice.ini +++ b/doc/guides/nics/features/ice.ini @@ -21,7 +21,6 @@ Unicast MAC filter = Y RSS hash = Y RSS key update = Y RSS reta update = Y -Flow API = Y VLAN filter = Y CRC offload = Y VLAN offload = Y @@ -42,3 +41,35 @@ FreeBSD = Y Linux = Y x86-32 = Y x86-64 = Y + +[rte_flow items] +ah = Y +arp_eth_ipv4 = Y +esp = Y +eth = Y +gtpu = Y +gtp_psc = Y +icmp = Y +icmp6 = Y +ipv4 = Y +ipv6 = Y +l2tpv3oip = Y +nvgre = Y +pfcp = Y +pppoed = Y +pppoes = Y +pppoe_proto_id = Y +sctp = Y +tcp = Y +udp = Y +vlan = Y +vxlan = Y + +[rte_flow actions] +count = Y +drop = Y +mark = Y +passthru = Y +queue = Y +rss = Y +vf = Y diff --git a/doc/guides/nics/features/ice_dcf.ini b/doc/guides/nics/features/ice_dcf.ini index f4998152df..ae79b6a515 100644 --- a/doc/guides/nics/features/ice_dcf.ini +++ b/doc/guides/nics/features/ice_dcf.ini @@ -8,7 +8,6 @@ Queue start/stop = Y Jumbo frame = Y Scattered Rx = Y RSS hash = P -Flow API = Y CRC offload = Y L3 checksum offload = P L4 checksum offload = P diff --git a/doc/guides/nics/features/igb.ini b/doc/guides/nics/features/igb.ini index 2925a8031d..f4f6e9a4cb 100644 --- a/doc/guides/nics/features/igb.ini +++ b/doc/guides/nics/features/igb.ini @@ -24,7 +24,6 @@ SR-IOV = Y DCB = Y VLAN filter = Y Flow control = Y -Flow API = Y CRC offload = Y VLAN offload = Y QinQ offload = Y diff --git a/doc/guides/nics/features/igc.ini b/doc/guides/nics/features/igc.ini index 300d37e81a..f810c2df4e 100644 --- a/doc/guides/nics/features/igc.ini +++ b/doc/guides/nics/features/igc.ini @@ -32,6 +32,16 @@ RSS key update = Y RSS reta update = Y VLAN filter = Y VLAN offload = Y -Flow API = P Linux = Y x86-64 = Y + +[rte_flow items] +eth = Y +ipv4 = Y +ipv6 = Y +tcp = Y +udp = Y + +[rte_flow actions] +queue = Y +rss = Y diff --git a/doc/guides/nics/features/ipn3ke.ini b/doc/guides/nics/features/ipn3ke.ini index 82de553eb2..5586f7cb33 100644 --- a/doc/guides/nics/features/ipn3ke.ini +++ b/doc/guides/nics/features/ipn3ke.ini @@ -26,7 +26,6 @@ SR-IOV = Y DCB = Y VLAN filter = Y Flow control = Y -Flow API = Y Traffic mirroring = Y CRC offload = Y VLAN offload = Y @@ -48,3 +47,17 @@ FreeBSD = Y Linux = Y x86-32 = Y x86-64 = Y + +[rte_flow items] +eth = Y +ipv4 = Y +mpls = Y +nvgre = Y +tcp = Y +udp = Y +vlan = Y +vxlan = Y + +[rte_flow actions] +drop = Y +mark = Y diff --git a/doc/guides/nics/features/ixgbe.ini b/doc/guides/nics/features/ixgbe.ini index c5e6e14aac..93a9cc18ab 100644 --- a/doc/guides/nics/features/ixgbe.ini +++ b/doc/guides/nics/features/ixgbe.ini @@ -26,7 +26,6 @@ SR-IOV = Y DCB = Y VLAN filter = Y Flow control = Y -Flow API = Y Rate limitation = Y Traffic mirroring = Y Inline crypto = Y @@ -55,3 +54,26 @@ Linux = Y ARMv8 = Y x86-32 = Y x86-64 = Y + +[rte_flow items] +eth = Y +e_tag = Y +fuzzy = Y +ipv4 = Y +ipv6 = Y +nvgre = Y +raw = Y +sctp = Y +tcp = Y +udp = Y +vlan = Y +vxlan = Y + +[rte_flow actions] +drop = Y +mark = Y +pf = Y +queue = Y +rss = Y +security = Y +vf = Y diff --git a/doc/guides/nics/features/mlx4.ini b/doc/guides/nics/features/mlx4.ini index ebb9ccf767..c394dfcefe 100644 --- a/doc/guides/nics/features/mlx4.ini +++ b/doc/guides/nics/features/mlx4.ini @@ -22,7 +22,6 @@ RSS hash = Y SR-IOV = Y VLAN filter = Y Flow control = Y -Flow API = Y CRC offload = Y L3 checksum offload = Y L4 checksum offload = Y @@ -38,3 +37,15 @@ Power8 = Y x86-32 = Y x86-64 = Y Usage doc = Y + +[rte_flow items] +eth = Y +ipv4 = Y +tcp = Y +udp = Y +vlan = Y + +[rte_flow actions] +drop = Y +queue = Y +rss = Y diff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini index ddd131da16..15b1897c21 100644 --- a/doc/guides/nics/features/mlx5.ini +++ b/doc/guides/nics/features/mlx5.ini @@ -28,7 +28,6 @@ Inner RSS = Y SR-IOV = Y VLAN filter = Y Flow control = Y -Flow API = Y CRC offload = Y VLAN offload = Y L3 checksum offload = Y @@ -52,3 +51,73 @@ Power8 = Y x86-32 = Y x86-64 = Y Usage doc = Y + +[rte_flow items] +ecpri = Y +eth = Y +geneve = Y +geneve_opt = Y +gre = Y +gre_key = Y +gtp = Y +gtp_psc = Y +icmp = Y +icmp6 = Y +ipv4 = Y +ipv6 = Y +ipv6_frag_ext = Y +mark = Y +meta = Y +mpls = Y +nvgre = Y +phy_port = Y +port_id = Y +tag = Y +tcp = Y +udp = Y +vlan = Y +vxlan = Y +vxlan_gpe = Y + +[rte_flow actions] +age = I +count = Y +dec_tcp_ack = Y +dec_tcp_seq = Y +dec_ttl = Y +drop = Y +flag = Y +inc_tcp_ack = Y +inc_tcp_seq = Y +jump = Y +mark = Y +meter = Y +modify_field = Y +nvgre_decap = Y +nvgre_encap = Y +of_pop_vlan = Y +of_push_vlan = Y +of_set_vlan_pcp = Y +of_set_vlan_vid = Y +port_id = Y +queue = Y +raw_decap = Y +raw_encap = Y +rss = I +sample = Y +set_ipv4_dscp = Y +set_ipv4_dst = Y +set_ipv4_src = Y +set_ipv6_dscp = Y +set_ipv6_dst = Y +set_ipv6_src = Y +set_mac_dst = Y +set_mac_src = Y +set_meta = Y +set_tag = Y +set_tp_dst = Y +set_tp_src = Y +set_ttl = Y +shared = Y +vxlan_decap = Y +vxlan_encap = Y diff --git a/doc/guides/nics/features/mvpp2.ini b/doc/guides/nics/features/mvpp2.ini index ef47546d1c..2ce0ca817a 100644 --- a/doc/guides/nics/features/mvpp2.ini +++ b/doc/guides/nics/features/mvpp2.ini @@ -23,3 +23,17 @@ Basic stats = Y Extended stats = Y ARMv8 = Y Usage doc = Y + +[rte_flow items] +eth = Y +ipv4 = Y +ipv6 = Y +raw = Y +tcp = Y +udp = Y +vlan = Y + +[rte_flow actions] +drop = Y +meter = Y +queue = Y diff --git a/doc/guides/nics/features/octeontx2.ini b/doc/guides/nics/features/octeontx2.ini index c0bcb8278e..fa49868cb3 100644 --- a/doc/guides/nics/features/octeontx2.ini +++ b/doc/guides/nics/features/octeontx2.ini @@ -30,7 +30,6 @@ Inner RSS = Y Inline protocol = Y VLAN filter = Y Flow control = Y -Flow API = Y Rate limitation = Y Jumbo frame = Y Scattered Rx = Y @@ -54,3 +53,44 @@ Registers dump = Y Linux = Y ARMv8 = Y Usage doc = Y + +[rte_flow items] +any = Y +arp_eth_ipv4 = Y +esp = Y +eth = Y +e_tag = Y +geneve = Y +gre = Y +gre_key = Y +gtpc = Y +gtpu = Y +higig2 = Y +icmp = Y +ipv4 = Y +ipv6 = Y +ipv6_ext = Y +mpls = Y +nvgre = Y +raw = Y +sctp = Y +tcp = Y +udp = Y +vlan = Y +vxlan = Y +vxlan_gpe = Y + +[rte_flow actions] +count = Y +drop = Y +flag = Y +mark = Y +of_pop_vlan = Y +of_push_vlan = Y +of_set_vlan_pcp = Y +of_set_vlan_vid = Y +pf = Y +queue = Y +rss = Y +security = Y +vf = Y diff --git a/doc/guides/nics/features/octeontx2_vec.ini b/doc/guides/nics/features/octeontx2_vec.ini index 7025e140ad..376a1d6cc1 100644 --- a/doc/guides/nics/features/octeontx2_vec.ini +++ b/doc/guides/nics/features/octeontx2_vec.ini @@ -27,7 +27,6 @@ RSS reta update = Y Inner RSS = Y VLAN filter = Y Flow control = Y -Flow API = Y Rate limitation = Y Jumbo frame = Y VLAN offload = Y diff --git a/doc/guides/nics/features/octeontx2_vf.ini b/doc/guides/nics/features/octeontx2_vf.ini index 7f5e5b8bba..8141aadf85 100644 --- a/doc/guides/nics/features/octeontx2_vf.ini +++ b/doc/guides/nics/features/octeontx2_vf.ini @@ -23,7 +23,6 @@ RSS reta update = Y Inner RSS = Y Inline protocol = Y VLAN filter = Y -Flow API = Y Rate limitation = Y Jumbo frame = Y Scattered Rx = Y diff --git a/doc/guides/nics/features/qede.ini b/doc/guides/nics/features/qede.ini index 852cecb3d3..e65d5d076e 100644 --- a/doc/guides/nics/features/qede.ini +++ b/doc/guides/nics/features/qede.ini @@ -20,7 +20,6 @@ RSS key update = Y RSS reta update = Y VLAN filter = Y Flow control = Y -Flow API = Y CRC offload = Y VLAN offload = Y L3 checksum offload = Y @@ -39,3 +38,13 @@ ARMv8 = Y x86-32 = Y x86-64 = Y Usage doc = Y + +[rte_flow items] +ipv4 = Y +ipv6 = Y +tcp = Y +udp = Y + +[rte_flow actions] +drop = Y +queue = Y diff --git a/doc/guides/nics/features/sfc.ini b/doc/guides/nics/features/sfc.ini index 7e29568e5f..9e66ec4293 100644 --- a/doc/guides/nics/features/sfc.ini +++ b/doc/guides/nics/features/sfc.ini @@ -24,7 +24,6 @@ RSS key update = Y RSS reta update = Y SR-IOV = Y Flow control = Y -Flow API = Y VLAN offload = P L3 checksum offload = Y L4 checksum offload = Y @@ -41,3 +40,37 @@ FreeBSD = Y Linux = Y ARMv8 = Y x86-64 = Y + +[rte_flow items] +eth = Y +geneve = Y +ipv4 = Y +ipv6 = Y +nvgre = Y +pf = Y +phy_port = Y +port_id = Y +pppoed = Y +pppoes = Y +tcp = Y +udp = Y +vf = Y +vlan = Y +vxlan = Y + +[rte_flow actions] +drop = Y +flag = Y +mark = Y +of_pop_vlan = Y +of_push_vlan = Y +of_set_vlan_pcp = Y +of_set_vlan_vid = Y +pf = Y +phy_port = Y +port_id = Y +queue = Y +rss = Y +vf = Y +vxlan_decap = Y +vxlan_encap = Y diff --git a/doc/guides/nics/features/tap.ini b/doc/guides/nics/features/tap.ini index be5e53dbe9..b4a356e5d5 100644 --- a/doc/guides/nics/features/tap.ini +++ b/doc/guides/nics/features/tap.ini @@ -11,7 +11,6 @@ Rx interrupt = Y Promiscuous mode = Y Allmulticast mode = Y Basic stats = Y -Flow API = Y L3 checksum offload = Y L4 checksum offload = Y MTU update = Y @@ -26,3 +25,17 @@ Power8 = Y x86-32 = Y x86-64 = Y Usage doc = Y + +[rte_flow items] +eth = Y +ipv4 = Y +ipv6 = Y +tcp = Y +udp = Y +vlan = Y + +[rte_flow actions] +drop = Y +passthru = Y +queue = Y +rss = Y diff --git a/doc/guides/nics/features/txgbe.ini b/doc/guides/nics/features/txgbe.ini index a3fdee9f8a..61cb3f6d9f 100644 --- a/doc/guides/nics/features/txgbe.ini +++ b/doc/guides/nics/features/txgbe.ini @@ -26,7 +26,6 @@ SR-IOV = Y DCB = Y VLAN filter = Y Flow control = Y -Flow API = Y Rate limitation = Y Inline crypto = Y CRC offload = P @@ -52,3 +51,26 @@ Linux = Y ARMv8 = Y x86-32 = Y x86-64 = Y + +[rte_flow items] +eth = Y +e_tag = Y +fuzzy = Y +ipv4 = Y +ipv6 = Y +nvgre = Y +raw = Y +sctp = Y +tcp = Y +udp = Y +vlan = Y +vxlan = Y + +[rte_flow actions] +drop = Y +mark = Y +pf = Y +queue = Y +rss = Y +security = Y +vf = Y diff --git a/doc/guides/nics/overview.rst b/doc/guides/nics/overview.rst index 20cd52b097..67575c699c 100644 --- a/doc/guides/nics/overview.rst +++ b/doc/guides/nics/overview.rst @@ -32,3 +32,11 @@ More details about features can be found in :doc:`features`. Features marked with "P" are partially supported. Refer to the appropriate NIC guide in the following sections for details. + +.. include:: rte_flow_items_table.txt + +.. include:: rte_flow_actions_table.txt + +.. Note:: + + rte_flow actions marked with "I" can be indirect as well. From patchwork Wed Apr 7 22:33:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Monjalon X-Patchwork-Id: 90830 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2D789A0A0F; Thu, 8 Apr 2021 00:33:50 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 86BD7141068; Thu, 8 Apr 2021 00:33:38 +0200 (CEST) Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by mails.dpdk.org (Postfix) with ESMTP id 9E800141057 for ; Thu, 8 Apr 2021 00:33:35 +0200 (CEST) Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 45D795C00E0; Wed, 7 Apr 2021 18:33:35 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Wed, 07 Apr 2021 18:33:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=bulYtPN0wUsJk a0jMjlQQ8Aj58Io5p0cStbiSplA/To=; b=j+CfzjaUT+9ARvEUqof+/H7UwVXLo f+W/g/JMesqy3ebkkG9/rPmfJx0FWCBtQThs+DI5W6ietw5MxIYaUNV73lp2IHjq wRN3R25M5EwGZUiY4760CmGZJiCouo5Zg6KuCo8mc/OdcLya290ZK6esUl24olXd XRUuVrIsA9PPzm/gq15k7M3D8nHOeKZwXL3iKv8Btyfe7xMSbfvrPTrvIq908gTG 6kNj1jtZuyob9lmZySS0zkh0aThPQmB67v9a9/ddLfPhSgGkQusMW0ZNh7wZfa2T IZekCt/grePFVfYJoH5WnOLNPvyGEIWmpfYJWZyrpbIeOPf97MB8cMpGQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=bulYtPN0wUsJka0jMjlQQ8Aj58Io5p0cStbiSplA/To=; b=F/VyUETs a242DNNtk884yscYHgqxrS12WTpWf1kmlWOPnp2Cgw4XCgWc+ayl4HyhMgfNeUGC Mri8Z6U3jP7RFfnBhrFywyeD8kSyiDQmquDV0E+YqD4Aj3BKBJi0cVEqO0Ax/tWl IEtvkIkC4bIk70SarzCXxx1gPJAZIUz8DahcG3d2e/rrtXphdtMgKI1gwoi5NAUA dXoAZ/PfPKt802Wzqk3iVNcSbVvDuyo9JqBcIovDIkKkG9llnYA94jjhOn/X7ckS FJKs7WmgLdK5WFhPZ1pVUqgZ99ZGYBWfy48H3ClzpN14xRUapGOIhY7uSSnYGI+P KF+doVk/lYUASg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejkedguddvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomhepvfhhohhmrghsucfoohhnjhgrlhhonhcuoehthhhomhgrshes mhhonhhjrghlohhnrdhnvghtqeenucggtffrrghtthgvrhhnpedvhefgiedvjeegtdevhe efhfetleefgfeivefgffevfeejgedtgfeutdehtdegveenucfkphepjeejrddufeegrddv tdefrddukeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth X-ME-Proxy: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 439451080067; Wed, 7 Apr 2021 18:33:34 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Cc: ferruh.yigit@intel.com, andrew.rybchenko@oktetlabs.ru Date: Thu, 8 Apr 2021 00:33:20 +0200 Message-Id: <20210407223320.2952469-4-thomas@monjalon.net> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407223320.2952469-1-thomas@monjalon.net> References: <1612458325-13508-1-git-send-email-asafp@nvidia.com> <20210407223320.2952469-1-thomas@monjalon.net> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v5 3/3] devtools: check flow API doc tables 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 Sender: "dev" The script check-doc-vs-code.sh may be used to add some automatic checks of the doc. If run without any argument, a complete check is done. The optional argument is a git history reference point to check faster only what has changed since this commit. In this commit, the only check is for rte_flow tables, achieved through the script parse-flow-support.sh. If run without a .ini reference, it prints rte_flow tables. Note: detected features are marked with the value Y, while the real .ini file could have special values like I. The script allow parsing exceptions (exclude or include), like for bnxt code which lists unsupported items and actions. Signed-off-by: Thomas Monjalon --- devtools/check-doc-vs-code.sh | 79 ++++++++++++++++++++++++++++++++++ devtools/parse-flow-support.sh | 76 ++++++++++++++++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100755 devtools/check-doc-vs-code.sh create mode 100755 devtools/parse-flow-support.sh diff --git a/devtools/check-doc-vs-code.sh b/devtools/check-doc-vs-code.sh new file mode 100755 index 0000000000..6e53d66899 --- /dev/null +++ b/devtools/check-doc-vs-code.sh @@ -0,0 +1,79 @@ +#! /bin/sh -e +# SPDX-License-Identifier: BSD-3-Clause +# Copyright 2021 Mellanox Technologies, Ltd + +# Check whether doc & code are in sync. +# Optional argument: check only what changed since a commit. +trusted_commit=$1 # example: origin/main + +selfdir=$(dirname $(readlink -f $0)) +rootdir=$(readlink -f $selfdir/..) + +result=0 + +# speed up by ignoring Unicode details +export LC_COLLATE=C + +changed_files() +{ + [ -n "$files" ] || + files=$(git diff-tree --name-only -r $trusted_commit..) + echo "$files" +} + +has_code_change() # +{ + test -n "$(git log --format='%h' -S"$1" $trusted_commit..)" +} + +has_file_change() # +{ + changed_files | grep -q "$1" +} + +changed_net_drivers() +{ + net_paths='drivers/net/|doc/guides/nics/features/' + [ -n "$drivers" ] || + drivers=$(changed_files | + sed -rn "s,^($net_paths)([^./]*).*,\2,p") + echo "$drivers" +} + +all_net_drivers() +{ + find $rootdir/drivers/net -mindepth 1 -maxdepth 1 -type d | + sed 's,.*/,,' | + sort +} + +check_rte_flow() # +{ + code=$rootdir/drivers/net/$1 + doc=$rootdir/doc/guides/nics/features/$1.ini + [ -d $code ] || return 0 + [ -f $doc ] || return 0 + report=$($selfdir/parse-flow-support.sh $code $doc) + if [ -n "$report" ]; then + echo "rte_flow doc out of sync for $1" + echo "$report" | sed 's,^,\t,' + result=$(($result + 1)) + fi +} + +if [ -z "$trusted_commit" ]; then + # check all + for driver in $(all_net_drivers); do + check_rte_flow $driver + done + exit $result +fi + +# find what changed and check +if has_code_change 'RTE_FLOW_.*_TYPE_' || + has_file_change 'doc/guides/nics/features'; then + for driver in $(changed_net_drivers); do + check_rte_flow $driver + done +fi +exit $result diff --git a/devtools/parse-flow-support.sh b/devtools/parse-flow-support.sh new file mode 100755 index 0000000000..b397e81b62 --- /dev/null +++ b/devtools/parse-flow-support.sh @@ -0,0 +1,76 @@ +#! /bin/sh -e +# SPDX-License-Identifier: BSD-3-Clause +# Copyright 2021 Mellanox Technologies, Ltd + +# Parse rte_flow support of a driver directory, +# and optionally show difference with a doc file in .ini format. + +dir=$1 # drivers/net/foo +ref=$2 # doc/guides/nics/features/foo.ini + +if [ -z "$dir" ]; then + echo "directory argument is required" >&2 + exit 1 +fi + +# sorting order +export LC_COLLATE=C + +# exclude exceptions +exclude() # +{ + case $(basename $dir) in + bnxt) + filter=$(sed -n "/$1/{N;/TYPE_NOT_SUPPORTED/P;}" \ + $dir/tf_ulp/ulp_template_db{,_tbl}.c | + grep -wo "$1[[:alnum:]_]*" | sort -u | + tr '\n' '|' | sed 's,.$,\n,') + grep -vE "$filter";; + *) cat + esac +} + +# include exceptions +include() # +{ + case $(basename $dir) in + esac +} + +# generate INI section +list() # <pattern> +{ + echo "[$1]" + git grep -who "$2[[:alnum:]_]*" $dir | + (exclude $2; include $2) | sort -u | + awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}' +} + +rte_flow_support() # <category> +{ + title="rte_flow $1s" + pattern=$(echo "RTE_FLOW_$1_TYPE_" | awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|end' +} + +if [ -z "$ref" ]; then + rte_flow_support item + echo + rte_flow_support action + exit 0 +fi + +rte_flow_compare() # <category> +{ + section="rte_flow $1s]" + { + rte_flow_support $1 + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u # show differences +} + +rte_flow_compare item +rte_flow_compare action