Test-Label: intel-Testing Test-Status: SUCCESS _Testing PASS DPDK git repo: dpdk-next-net commit a772d93336b23e356721c2ad9b015c991030dff2 Author: Rongwei Liu Date: Wed Nov 9 10:13:49 2022 +0200 ethdev: add special flags when creating async transfer table The transfer domain rule is able to match traffic wire/vport origin which are corresponding to two kinds of underlayer resources. Wire means traffic arrives from the uplink port while vport means traffic initiated from VF/SF. In customer deployments, they usually match only one kind of traffic in single flow table: either from wire or from vport. PMD can save significant resources if passing special hint from rte layer. There are two possible approaches, using IPv4 as an example: 1. Use pattern item. pattern_template: pattern ANY_VPORT / eth / ipv4 is 1.1.1.1 / end async flow create: pattern ANY_VPORT / eth / ipv4 is 1.1.1.2 / end "ANY_VPORT" needs to be present in each async rule even if it's just a hint. No value to match. 2. Add special flags into table_attr. It will be: template_table 0 create table_id 0 group 1 transfer vf_orig Approach 1 needs to specify the pattern in each flow rules which wastes memory and not end user friendly. This patch takes the 2nd approach and introduce one new member specialize into rte_flow_table_attr to indicate async flow table matching optimization: from wire, from vport. It helps to save underlayer memory and also on insertion rate. By default, there is no hint, so the behavior of the transfer domain doesn't change. 1. Match wire origin only flow template_table 0 create group 0 priority 0 transfer wire_orig... 2. Match vf origin only flow template_table 0 create group 0 priority 0 transfer vport_orig... Signed-off-by: Rongwei Liu Acked-by: Ori Kam v2: Move the new field to template table attribute. v4: Mark it as optional and clear the concept. v5: Change specialize type to uint32_t. Testing Summary : 18 Case Done, 18 Successful, 0 Failures Testbed #1: 9 Case Done, 9 Successful, 0 Failures * Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ * Environment: OS : Ubuntu 20.04.5 LTS Kernel : 5.8.0-63-generic GCC : 9.4.0-1ubuntu1~20.04.1 NIC : Ethernet Controller E810-C for SFP Target : x86_64-native-linuxapp-gcc Testbed #2: 9 Case Done, 9 Successful, 0 Failures * Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | n/a | | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ * Environment: OS : Ubuntu 20.04.5 LTS Kernel : 5.13.0-30-generic GCC : 9.4.0-1ubuntu1~20.04.1 NIC : Ethernet Controller XL710 for 40GbE QSFP+ Target : x86_64-native-linuxapp-gcc TestPlan: pf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/pf_smoke_test_plan.rst vf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/vf_smoke_test_plan.rst asan_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/asan_smoke_test_plan.rst TestSuite: pf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_pf_smoke.py vf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_vf_smoke.py virtio_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_virtio_smoke.py asan_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_asan_smoke.py DPDK STV team