but increasing the outer IP source address by 1 each time, thus it will
give different flow each time, and all other items will have open masks.
+The application also provide the ability to measure rte flow deletion rate,
+in addition to memory consumption before and after the flows creation.
+
+The app supports single and multi core performance measurements.
+
Known Limitations
-=================
+-----------------
The current version has limitations which can be removed in future:
-* Support outer items up to tunnel layer only.
* Single core insertion only.
-* Only one instance of same action can be added in one rule.
-
-The application also provide the ability to measure rte flow deletion rate,
-in addition to memory consumption before and after the flows creation.
Compiling the Application
-=========================
+-------------------------
The ``test-flow-perf`` application is compiled as part of the main compilation
of the DPDK libraries and tools.
Running the Application
-=======================
+-----------------------
EAL Command-line Options
-------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~
Please refer to :doc:`EAL parameters (Linux) <../linux_gsg/linux_eal_parameters>`
or :doc:`EAL parameters (FreeBSD) <../freebsd_gsg/freebsd_eal_parameters>` for
Flow Performance Options
-------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~
The following are the command-line options for the flow performance application.
They must be separated from the EAL options, shown in the previous section,
* ``--dump-socket-mem``
Dump the memory stats for each socket before the insertion and after.
+* ``--enable-fwd``
+ Enable packets forwarding after insertion/deletion operations.
+
+
Attributes:
* ``--ingress``
Add hairpin RSS action to all flows actions.
The queues in RSS action will be all hairpin queues configured
in the app.
+
+* ``--set-src-mac``
+ Add set source mac action to all flows actions.
+ The mac to be set is random each flow.
+
+* ``--set-dst-mac``
+ Add set destination mac action to all flows actions.
+ The mac to be set is random each flow.
+
+* ``-set-src-ipv4``
+ Add set source ipv4 action to all flows actions.
+ The ipv4 header to be set is random each flow.
+
+* ``--set-dst-ipv4``
+ Add set destination ipv4 action to all flows actions.
+ The ipv4 header to be set is random each flow.
+
+* ``--set-src-ipv6``
+ Add set source ipv6 action to all flows actions.
+ The ipv6 header to be set is random each flow.
+
+* ``--set-dst-ipv6``
+ Add set destination ipv6 action to all flows actions.
+ The ipv6 header to be set is random each flow.
+
+* ``--set-src-tp``
+ Add set source tp action to all flows actions.
+ The tp sport header to be set is random each flow.
+
+* ``--set-dst-tp``
+ Add set destination tp action to all flows actions.
+ The tp dport header to be set is random each flow.
+
+* ``--inc-tcp-ack``
+ Add increment TCP acknowledgment by one to all flows actions.
+
+* ``--dec-tcp-ack``
+ Add decrement TCP acknowledgment by one to all flows actions.
+
+* ``--inc-tcp-seq``
+ Add increment TCP sequence by one to all flows actions.
+
+* ``--dec-tcp-seq``
+ Add decrement TCP sequence by one to all flows actions.
+
+* ``--set-ttl``
+ Add set IP ttl action to all flows actions.
+ The ttl value to be set is random each flow.
+
+* ``--dec-ttl``
+ Add decrement IP ttl by one to all flows actions.
+
+* ``--set-ipv4-dscp``
+ Add set IPv4 dscp action to all flows actions.
+ The dscp value to be is random each flow.
+
+* ``--set-ipv6-dscp``
+ Add set IPv6 dscp action to all flows actions.
+ The dscp value to be is random each flow.
+
+* ``--flag``
+ Add flag action to all flows actions.