From patchwork Sun Feb 7 09:27:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Asaf Penso X-Patchwork-Id: 87808 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 BD8E7A0547; Sun, 7 Feb 2021 10:28:02 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3F25540147; Sun, 7 Feb 2021 10:28:02 +0100 (CET) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id AE84C40146 for ; Sun, 7 Feb 2021 10:28:00 +0100 (CET) Received: from Internal Mail-Server by MTLPINE1 (envelope-from michaelba@nvidia.com) with SMTP; 7 Feb 2021 11:27:59 +0200 Received: from nvidia.com (pegasus07.mtr.labs.mlnx [10.210.16.112]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 1179RxDS013086; Sun, 7 Feb 2021 11:27:59 +0200 From: Asaf Penso To: dev@dpdk.org Cc: thomas@monjalon.net Date: Sun, 7 Feb 2021 09:27:56 +0000 Message-Id: <1612690076-25155-1-git-send-email-asafp@nvidia.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1612458325-13508-1-git-send-email-asafp@nvidia.com> References: <1612458325-13508-1-git-send-email-asafp@nvidia.com> Subject: [dpdk-dev] [PATCH v2] doc: add new tables for rte flow items and actions support 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" In http://doc.dpdk.org/guides/nics/overview.html, table 1.1 lists all supported features. It has a single line for "Flow API" that refers to rte_flow support. rte_flow is composed of many items and actions that are not expressed in this single line. The following new tables are suggested: 1. rte_flow items 2. rte_flow actions 3. rte_flow shared actions Also, since each table needs a new section in the pmd ini file that might not be relevant for all pmds, the print error message for missing section in conf.py is removed. Signed-off-by: Asaf Penso --- v2: update commit message add .txt to .gitignore --- .gitignore | 3 + doc/guides/conf.py | 23 +++++--- doc/guides/nics/features/default.ini | 109 +++++++++++++++++++++++++++++++++++ doc/guides/nics/features/mlx4.ini | 15 +++++ doc/guides/nics/features/mlx5.ini | 70 ++++++++++++++++++++++ doc/guides/nics/overview.rst | 11 ++++ 6 files changed, 224 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index f73d93c..c43fa7b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,9 @@ # 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/nics/rte_flow_shared_actions_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 aceeb62..149507a 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -217,14 +217,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. @@ -380,6 +374,21 @@ 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 features availability in networking drivers', + 'Items') + table_file = dirname(__file__) + '/nics/rte_flow_actions_table.txt' + generate_overview_table(table_file, 3, + 'rte_flow actions', + 'rte_flow actions features availability in networking drivers', + 'Actions') + table_file = dirname(__file__) + '/nics/rte_flow_shared_actions_table.txt' + generate_overview_table(table_file, 4, + 'rte_flow shared actions', + 'rte_flow shared actions features availability in networking drivers', + 'Actions') table_file = dirname(__file__) + '/cryptodevs/overview_feature_table.txt' generate_overview_table(table_file, 1, 'Features', diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini index 8046bd1..0a948a4 100644 --- a/doc/guides/nics/features/default.ini +++ b/doc/guides/nics/features/default.ini @@ -77,3 +77,112 @@ x86-64 = Usage doc = Design doc = Perf doc = + +[rte_flow items] +any = +raw = +eth = +vlan = +ipv4 = +ipv6 = +icmp = +udp = +tcp = +sctp = +vxlan = +e_tag = +nvgre = +mpls = +gre = +gre_key = +fuzzy = +gtp = +gtpc = +gtpu = +esp = +geneve = +vxlan-gpe = +arp_eth_ipv4 = +ipv6_ext = +ipv6_frag_ext = +icmp6 = +icmp6_nd_ns = +icmp6_nd_na = +icmp6_nd_opt = +icmp6_nd_opt_sla_eth = +icmp6_nd_opt_tla_eth = +meta = +gtp_psc = +pppoes = +pppoed = +pppoe_proto_id = +nsh = +igmp = +ah = +higig2 = +l2tpv3oip = +pfcp = +ecpri = + +[rte_flow actions] +end = +void = +passthru = +jump = +mark = +flag = +queue = +drop = +count = +rss = +pf = +vf = +phy_port = +port_id = +meter = +security = +of_set_mpls_ttl = +of_dec_mpls_ttl = +of_set_nw_ttl = +of_dec_nw_ttl = +of_copy_ttl_out = +of_copy_ttl_in = +of_pop_vlan = +of_push_vlan = +of_set_vlan_vid = +of_set_vlan_pcp = +of_pop_mpls = +of_push_mpls = +vxlan_encap = +vxlan_decap = +nvgre_encap = +nvgre_decap = +raw_encap = +raw_decap = +set_ipv4_src = +set_ipv4_dst = +set_ipv6_src = +set_ipv6_dst = +set_tp_src = +set_tp_dst = +mac_swap = +dec_ttl = +set_ttl = +set_mac_src = +set_mac_dst = +inc_tcp_seq = +dec_tcp_seq = +inc_tcp_ack = +dec_tcp_ack = +set_tag = +set_meta = +set_ipv4_dscp = +set_ipv6_dscp = +age = +sample = +shared = +modify_field = + +[rte_flow shared actions] +age = +rss = diff --git a/doc/guides/nics/features/mlx4.ini b/doc/guides/nics/features/mlx4.ini index ebb9ccf..5e352f5 100644 --- a/doc/guides/nics/features/mlx4.ini +++ b/doc/guides/nics/features/mlx4.ini @@ -38,3 +38,18 @@ Power8 = Y x86-32 = Y x86-64 = Y Usage doc = Y + +[rte_flow items] +eth = Y +vlan = Y +ipv4 = Y +ipv6 = Y +udp = Y +tcp = Y + +[rte_flow actions] +end = Y +void = Y +queue = Y +drop = Y +rss = Y diff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini index ddd131d..962650f 100644 --- a/doc/guides/nics/features/mlx5.ini +++ b/doc/guides/nics/features/mlx5.ini @@ -52,3 +52,73 @@ Power8 = Y x86-32 = Y x86-64 = Y Usage doc = Y + +[rte_flow items] +eth = Y +vlan = Y +ipv4 = Y +ipv6 = Y +icmp = Y +udp = Y +tcp = Y +vxlan = Y +nvgre = Y +mpls = Y +gre = Y +gre_key = Y +gtp = Y +geneve = Y +vxlan-gpe = Y +ipv6_ext = Y +ipv6_frag_ext = Y +icmp6 = Y +meta = Y +gtp_psc = Y +ecpri = Y + +[rte_flow actions] +end = Y +void = Y +jump = Y +mark = Y +flag = Y +queue = Y +drop = Y +count = Y +rss = Y +port_id = Y +meter = Y +of_pop_vlan = Y +of_push_vlan = Y +of_set_vlan_vid = Y +of_set_vlan_pcp = Y +vxlan_encap = Y +vxlan_decap = Y +raw_encap = Y +raw_decap = Y +set_ipv4_src = Y +set_ipv4_dst = Y +set_ipv6_src = Y +set_ipv6_dst = Y +set_tp_src = Y +set_tp_dst = Y +dec_ttl = Y +set_ttl = Y +set_mac_src = Y +set_mac_dst = Y +inc_tcp_seq = Y +dec_tcp_seq = Y +inc_tcp_ack = Y +dec_tcp_ack = Y +set_tag = Y +set_meta = Y +set_ipv4_dscp = Y +set_ipv6_dscp = Y +age = Y +sample = Y +shared = S +modify_field = Y + +[rte_flow shared actions] +age = Y +rss = Y diff --git a/doc/guides/nics/overview.rst b/doc/guides/nics/overview.rst index 20cd52b..cded041 100644 --- a/doc/guides/nics/overview.rst +++ b/doc/guides/nics/overview.rst @@ -28,7 +28,18 @@ More details about features can be found in :doc:`features`. .. include:: overview_table.txt +.. include:: rte_flow_items_table.txt + +.. include:: rte_flow_actions_table.txt + +.. include:: rte_flow_shared_actions_table.txt + .. Note:: Features marked with "P" are partially supported. Refer to the appropriate NIC guide in the following sections for details. + +.. Note:: + + rte_flow action shared that is marked with "S" means that some or all + shared action are supported and more details can be found in table 1.4.