From 5c5c98cec21bf1e62b302c59658965e26854b9e6 Mon Sep 17 00:00:00 2001 From: Kumar Amber Date: Thu, 15 Jul 2021 21:36:10 +0530 Subject: docs/dpdk/bridge: Add miniflow extract section. This commit adds a section to the dpdk/bridge.rst netdev documentation, detailing the added miniflow functionality. The newly added commands are documented, and sample output is provided. The use of auto-validator and special study function is also described in detail as well as running fuzzy tests. Signed-off-by: Kumar Amber Co-authored-by: Cian Ferriter Signed-off-by: Cian Ferriter Co-authored-by: Harry van Haaren Signed-off-by: Harry van Haaren Acked-by: Flavio Leitner Acked-by: Eelco Chaudron Signed-off-by: Ian Stokes --- Documentation/topics/dpdk/bridge.rst | 51 ++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'Documentation') diff --git a/Documentation/topics/dpdk/bridge.rst b/Documentation/topics/dpdk/bridge.rst index 2d0850836..7c96f4d5e 100644 --- a/Documentation/topics/dpdk/bridge.rst +++ b/Documentation/topics/dpdk/bridge.rst @@ -256,3 +256,54 @@ The following line should be seen in the configure output when the above option is used :: checking whether DPIF AVX512 is default implementation... yes + +Miniflow Extract +---------------- + +Miniflow extract (MFEX) performs parsing of the raw packets and extracts the +important header information into a compressed miniflow. This miniflow is +composed of bits and blocks where the bits signify which blocks are set or +have values where as the blocks hold the metadata, ip, udp, vlan, etc. These +values are used by the datapath for switching decisions later. The Optimized +miniflow extract is traffic specific to speed up the lookup, whereas the +scalar works for ALL traffic patterns + +Most modern CPUs have SIMD capabilities. These SIMD instructions are able +to process a vector rather than act on one variable. OVS provides multiple +implementations of miniflow extract. This allows the user to take advantage +of SIMD instructions like AVX512 to gain additional performance. + +A list of implementations can be obtained by the following command. The +command also shows whether the CPU supports each implementation :: + + $ ovs-appctl dpif-netdev/miniflow-parser-get + Available Optimized Miniflow Extracts: + autovalidator (available: True, pmds: none) + scalar (available: True, pmds: 1,15) + study (available: True, pmds: none) + +An implementation can be selected manually by the following command :: + + $ ovs-appctl dpif-netdev/miniflow-parser-set study + +Also user can select the study implementation which studies the traffic for +a specific number of packets by applying all available implementations of +miniflow extract and then chooses the one with the most optimal result for +that traffic pattern. + +Miniflow Extract Validation +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +As multiple versions of miniflow extract can co-exist, each with different +CPU ISA optimizations, it is important to validate that they all give the +exact same results. To easily test all miniflow implementations, an +``autovalidator`` implementation of the miniflow exists. This implementation +runs all other available miniflow extract implementations, and verifies that +the results are identical. + +Running the OVS unit tests with the autovalidator enabled ensures all +implementations provide the same results. + +To set the Miniflow autovalidator, use this command :: + + $ ovs-appctl dpif-netdev/miniflow-parser-set autovalidator -- cgit v1.2.1