xref: /dpdk/doc/guides/sample_app_ug/packet_ordering.rst (revision e2a94f9ad3ef949c0df3e63699bd4e381b5003d9)
15630257fSFerruh Yigit..  SPDX-License-Identifier: BSD-3-Clause
25630257fSFerruh Yigit    Copyright(c) 2015 Intel Corporation.
31b2038b0SSergio Gonzalez Monroy
41b2038b0SSergio Gonzalez MonroyPacket Ordering Application
51b2038b0SSergio Gonzalez Monroy============================
61b2038b0SSergio Gonzalez Monroy
71b2038b0SSergio Gonzalez MonroyThe Packet Ordering sample app simply shows the impact of reordering a stream.
81b2038b0SSergio Gonzalez MonroyIt's meant to stress the library with different configurations for performance.
91b2038b0SSergio Gonzalez Monroy
101b2038b0SSergio Gonzalez MonroyOverview
111b2038b0SSergio Gonzalez Monroy--------
121b2038b0SSergio Gonzalez Monroy
131b2038b0SSergio Gonzalez MonroyThe application uses at least three CPU cores:
141b2038b0SSergio Gonzalez Monroy
15cb056611SStephen Hemminger* RX core (main core) receives traffic from the NIC ports and feeds Worker
161b2038b0SSergio Gonzalez Monroy  cores with traffic through SW queues.
171b2038b0SSergio Gonzalez Monroy
18cb056611SStephen Hemminger* Worker (worker core) basically do some light work on the packet.
191b2038b0SSergio Gonzalez Monroy  Currently it modifies the output port of the packet for configurations with
201b2038b0SSergio Gonzalez Monroy  more than one port enabled.
211b2038b0SSergio Gonzalez Monroy
22cb056611SStephen Hemminger* TX Core (worker core) receives traffic from Worker cores through software queues,
231b2038b0SSergio Gonzalez Monroy  inserts out-of-order packets into reorder buffer, extracts ordered packets
241b2038b0SSergio Gonzalez Monroy  from the reorder buffer and sends them to the NIC ports for transmission.
251b2038b0SSergio Gonzalez Monroy
261b2038b0SSergio Gonzalez MonroyCompiling the Application
277cacb056SHerakliusz Lipiec-------------------------
281b2038b0SSergio Gonzalez Monroy
297cacb056SHerakliusz LipiecTo compile the sample application see :doc:`compiling`.
301b2038b0SSergio Gonzalez Monroy
317cacb056SHerakliusz LipiecThe application is located in the ``packet_ordering`` sub-directory.
321b2038b0SSergio Gonzalez Monroy
331b2038b0SSergio Gonzalez MonroyRunning the Application
341b2038b0SSergio Gonzalez Monroy-----------------------
351b2038b0SSergio Gonzalez Monroy
361b2038b0SSergio Gonzalez MonroyRefer to *DPDK Getting Started Guide* for general information on running applications
371b2038b0SSergio Gonzalez Monroyand the Environment Abstraction Layer (EAL) options.
381b2038b0SSergio Gonzalez Monroy
391b2038b0SSergio Gonzalez MonroyApplication Command Line
401b2038b0SSergio Gonzalez Monroy~~~~~~~~~~~~~~~~~~~~~~~~
411b2038b0SSergio Gonzalez Monroy
421b2038b0SSergio Gonzalez MonroyThe application execution command line is:
431b2038b0SSergio Gonzalez Monroy
441b2038b0SSergio Gonzalez Monroy.. code-block:: console
451b2038b0SSergio Gonzalez Monroy
46*e2a94f9aSCiara Power    ./<build_dir>/examples/dpdk-packet_ordering [EAL options] -- -p PORTMASK /
47*e2a94f9aSCiara Power    [--disable-reorder] [--insight-worker]
481b2038b0SSergio Gonzalez Monroy
491b2038b0SSergio Gonzalez MonroyThe -c EAL CPU_COREMASK option has to contain at least 3 CPU cores.
50cb056611SStephen HemmingerThe first CPU core in the core mask is the main core and would be assigned to
511b2038b0SSergio Gonzalez MonroyRX core, the last to TX core and the rest to Worker cores.
521b2038b0SSergio Gonzalez Monroy
531b2038b0SSergio Gonzalez MonroyThe PORTMASK parameter must contain either 1 or even enabled port numbers.
54fea1d908SJohn McNamaraWhen setting more than 1 port, traffic would be forwarded in pairs.
551b2038b0SSergio Gonzalez MonroyFor example, if we enable 4 ports, traffic from port 0 to 1 and from 1 to 0,
561b2038b0SSergio Gonzalez Monroythen the other pair from 2 to 3 and from 3 to 2, having [0,1] and [2,3] pairs.
571b2038b0SSergio Gonzalez Monroy
581b2038b0SSergio Gonzalez MonroyThe disable-reorder long option does, as its name implies, disable the reordering
591b2038b0SSergio Gonzalez Monroyof traffic, which should help evaluate reordering performance impact.
6001649330SPhil Yang
6101649330SPhil YangThe insight-worker long option enables output the packet statistics of each worker thread.
62