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