Skip to content

Commit

Permalink
doc: add flow API features tables
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Thomas Monjalon <[email protected]>
Acked-by: Kiran Kumar K <[email protected]>
---
v6 changes:
	- rebase/update
	- remove deprecated shared action
  • Loading branch information
tmonjalo committed May 18, 2021
1 parent 37f8bd7 commit 0a91cdd
Show file tree
Hide file tree
Showing 32 changed files with 647 additions and 44 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
18 changes: 11 additions & 7 deletions doc/guides/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,14 +176,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.
Expand Down Expand Up @@ -339,6 +333,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',
Expand Down
11 changes: 0 additions & 11 deletions doc/guides/nics/features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
26 changes: 25 additions & 1 deletion doc/guides/nics/features/bnxt.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
31 changes: 30 additions & 1 deletion doc/guides/nics/features/cxgbe.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
114 changes: 113 additions & 1 deletion doc/guides/nics/features/default.ini
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ SR-IOV =
DCB =
VLAN filter =
Flow control =
Flow API =
Rate limitation =
Traffic mirroring =
Inline crypto =
Expand Down Expand Up @@ -77,3 +76,116 @@ x86-64 =
Usage doc =
Design doc =
Perf doc =

[rte_flow items]
ah =
any =
arp_eth_ipv4 =
conntrack =
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 =
integrity =
invert =
ipv4 =
ipv6 =
ipv6_ext =
ipv6_frag_ext =
l2tpv3oip =
mark =
meta =
mpls =
nsh =
nvgre =
pf =
pfcp =
phy_port =
port_id =
pppoed =
pppoes =
pppoe_proto_id =
raw =
sctp =
tag =
tcp =
udp =
vf =
vlan =
vxlan =
vxlan_gpe =

[rte_flow actions]
age =
conntrack =
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_dst =
set_mac_src =
set_meta =
set_tag =
set_tp_dst =
set_tp_src =
set_ttl =
vf =
vxlan_decap =
vxlan_encap =
19 changes: 18 additions & 1 deletion doc/guides/nics/features/dpaa2.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
14 changes: 14 additions & 0 deletions doc/guides/nics/features/e1000.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
29 changes: 28 additions & 1 deletion doc/guides/nics/features/enic.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
1 change: 0 additions & 1 deletion doc/guides/nics/features/failsafe.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 15 additions & 1 deletion doc/guides/nics/features/hinic.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading

0 comments on commit 0a91cdd

Please sign in to comment.