Message ID | 20210407223320.2952469-3-thomas@monjalon.net (mailing list archive) |
---|---|
State | New |
Delegated to: | Thomas Monjalon |
Headers | show |
Series | rte_flow doc matrix | expand |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
> -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Thursday, April 8, 2021 4:03 AM > To: dev@dpdk.org > Cc: ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; Asaf Penso > <asafp@nvidia.com>; 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>; > Jeff Guo <jia.guo@intel.com>; Haiyue Wang <haiyue.wang@intel.com>; John > Daley <johndale@cisco.com>; Hyong Youb Kim <hyonkim@cisco.com>; Gaetan > Rivet <grive@u256.net>; Ziyang Xuan <xuanziyang2@huawei.com>; Xiaoyun > Wang <cloud.wangxiaoyun@huawei.com>; Guoyang Zhou > <zhouguoyang@huawei.com>; Min Hu (Connor) <humin29@huawei.com>; > Yisen Zhuang <yisen.zhuang@huawei.com>; Lijun Ou <oulijun@huawei.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>; > Rosen Xu <rosen.xu@intel.com>; Matan Azrad <matan@nvidia.com>; Shahaf > Shuler <shahafs@nvidia.com>; Viacheslav Ovsiienko <viacheslavo@nvidia.com>; > Liron Himi <lironh@marvell.com>; Jerin Jacob Kollanukkaran > <jerinj@marvell.com>; Nithin Kumar Dabilpuram <ndabilpuram@marvell.com>; > Kiran Kumar Kokkilagadda <kirankumark@marvell.com>; Rasesh Mody > <rmody@marvell.com>; Devendra Singh Rawat <dsinghrawat@marvell.com>; > Igor Russkikh <irusskikh@marvell.com>; Keith Wiles <keith.wiles@intel.com>; > Jiawen Wu <jiawenwu@trustnetic.com>; Jian Wang > <jianwang@trustnetic.com> > Subject: [EXT] [PATCH v5 2/3] doc: add flow API features tables > > External Email > > ---------------------------------------------------------------------- > 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 <asafp@nvidia.com> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Kiran Kumar Kokkilagadda <kirankumark@marvell.com> > --- > .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. > -- > 2.31.1
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.