f-stack/dpdk/doc/guides/sample_app_ug/packet_ordering.rst

62 lines
2.2 KiB
ReStructuredText
Raw Normal View History

2019-06-25 11:12:58 +00:00
.. SPDX-License-Identifier: BSD-3-Clause
Copyright(c) 2015 Intel Corporation.
2017-04-21 10:43:26 +00:00
Packet Ordering Application
============================
The Packet Ordering sample app simply shows the impact of reordering a stream.
It's meant to stress the library with different configurations for performance.
Overview
--------
The application uses at least three CPU cores:
2021-02-05 08:48:47 +00:00
* RX core (main core) receives traffic from the NIC ports and feeds Worker
2017-04-21 10:43:26 +00:00
cores with traffic through SW queues.
2021-02-05 08:48:47 +00:00
* Worker (worker core) basically do some light work on the packet.
2017-04-21 10:43:26 +00:00
Currently it modifies the output port of the packet for configurations with
more than one port enabled.
2021-02-05 08:48:47 +00:00
* TX Core (worker core) receives traffic from Worker cores through software queues,
2017-04-21 10:43:26 +00:00
inserts out-of-order packets into reorder buffer, extracts ordered packets
from the reorder buffer and sends them to the NIC ports for transmission.
Compiling the Application
-------------------------
2017-04-21 10:43:26 +00:00
To compile the sample application see :doc:`compiling`.
2017-04-21 10:43:26 +00:00
The application is located in the ``packet_ordering`` sub-directory.
2017-04-21 10:43:26 +00:00
Running the Application
-----------------------
Refer to *DPDK Getting Started Guide* for general information on running applications
and the Environment Abstraction Layer (EAL) options.
Application Command Line
~~~~~~~~~~~~~~~~~~~~~~~~
The application execution command line is:
.. code-block:: console
2021-02-05 08:48:47 +00:00
./<build_dir>/examples/dpdk-packet_ordering [EAL options] -- -p PORTMASK /
[--disable-reorder] [--insight-worker]
2017-04-21 10:43:26 +00:00
The -c EAL CPU_COREMASK option has to contain at least 3 CPU cores.
2021-02-05 08:48:47 +00:00
The first CPU core in the core mask is the main core and would be assigned to
2017-04-21 10:43:26 +00:00
RX core, the last to TX core and the rest to Worker cores.
The PORTMASK parameter must contain either 1 or even enabled port numbers.
When setting more than 1 port, traffic would be forwarded in pairs.
For example, if we enable 4 ports, traffic from port 0 to 1 and from 1 to 0,
then the other pair from 2 to 3 and from 3 to 2, having [0,1] and [2,3] pairs.
The disable-reorder long option does, as its name implies, disable the reordering
of traffic, which should help evaluate reordering performance impact.
2020-06-18 16:55:50 +00:00
The insight-worker long option enables output the packet statistics of each worker thread.