15630257fSFerruh Yigit.. SPDX-License-Identifier: BSD-3-Clause 25630257fSFerruh Yigit Copyright(c) 2010-2014 Intel Corporation. 3ac718398SBernard Iremonger 4ac718398SBernard IremongerRunning the Application 5ac718398SBernard Iremonger======================= 6ac718398SBernard Iremonger 7ac718398SBernard IremongerEAL Command-line Options 8ac718398SBernard Iremonger------------------------ 9ac718398SBernard Iremonger 10c41c100bSDekel PeledPlease refer to :doc:`EAL parameters (Linux) <../linux_gsg/linux_eal_parameters>` 11c41c100bSDekel Peledor :doc:`EAL parameters (FreeBSD) <../freebsd_gsg/freebsd_eal_parameters>` for 12c41c100bSDekel Peleda list of available EAL command-line options. 13075b182bSEric Zhang 14ac718398SBernard Iremonger 15ac718398SBernard IremongerTestpmd Command-line Options 16ac718398SBernard Iremonger---------------------------- 17ac718398SBernard Iremonger 18ac718398SBernard IremongerThe following are the command-line options for the testpmd applications. 19e76d7a76SJohn McNamaraThey must be separated from the EAL options, shown in the previous section, with a ``--`` separator: 20ac718398SBernard Iremonger 21ac718398SBernard Iremonger.. code-block:: console 22ac718398SBernard Iremonger 23e2a94f9aSCiara Power sudo ./dpdk-testpmd -l 0-3 -n 4 -- -i --portmask=0x1 --nb-cores=2 24ac718398SBernard Iremonger 25e76d7a76SJohn McNamaraThe command line options are: 26e76d7a76SJohn McNamara 27e76d7a76SJohn McNamara* ``-i, --interactive`` 28ac718398SBernard Iremonger 29ac718398SBernard Iremonger Run testpmd in interactive mode. 30ac718398SBernard Iremonger In this mode, the testpmd starts with a prompt that can be used to start and stop forwarding, 31ac718398SBernard Iremonger configure the application and display stats on the current packet processing session. 32e76d7a76SJohn McNamara See :ref:`testpmd_runtime` for more details. 33ac718398SBernard Iremonger 34ac718398SBernard Iremonger In non-interactive mode, 35ac718398SBernard Iremonger the application starts with the configuration specified on the command-line and 36ac718398SBernard Iremonger immediately enters forwarding mode. 37ac718398SBernard Iremonger 38e76d7a76SJohn McNamara* ``-h, --help`` 39ac718398SBernard Iremonger 40ac718398SBernard Iremonger Display a help message and quit. 41ac718398SBernard Iremonger 42e76d7a76SJohn McNamara* ``-a, --auto-start`` 43ac718398SBernard Iremonger 44e76d7a76SJohn McNamara Start forwarding on initialization. 45ac718398SBernard Iremonger 4699cabef0SPablo de Lara* ``--tx-first`` 4799cabef0SPablo de Lara 4899cabef0SPablo de Lara Start forwarding, after sending a burst of packets first. 4999cabef0SPablo de Lara 5099cabef0SPablo de Lara.. Note:: 5199cabef0SPablo de Lara 5299cabef0SPablo de Lara This flag should be only used in non-interactive mode. 5399cabef0SPablo de Lara 54cfea1f30SPablo de Lara* ``--stats-period PERIOD`` 55cfea1f30SPablo de Lara 56cfea1f30SPablo de Lara Display statistics every PERIOD seconds, if interactive mode is disabled. 57cfea1f30SPablo de Lara The default value is 0, which means that the statistics will not be displayed. 58cfea1f30SPablo de Lara 5963b72657SIvan Ilchenko* ``--display-xstats xstat_name1[,...]`` 6063b72657SIvan Ilchenko 6163b72657SIvan Ilchenko Display comma-separated list of extended statistics every PERIOD seconds 6263b72657SIvan Ilchenko as specified in ``--stats-period`` or when used with interactive commands 6363b72657SIvan Ilchenko that show Rx/Tx statistics (i.e. 'show port stats'). 6463b72657SIvan Ilchenko 65e76d7a76SJohn McNamara* ``--nb-cores=N`` 66ac718398SBernard Iremonger 67ac718398SBernard Iremonger Set the number of forwarding cores, 68e2a94f9aSCiara Power where 1 <= N <= "number of cores" or ``RTE_MAX_LCORE`` from the configuration file. 69ac718398SBernard Iremonger The default value is 1. 70ac718398SBernard Iremonger 71e76d7a76SJohn McNamara* ``--nb-ports=N`` 72ac718398SBernard Iremonger 73ac718398SBernard Iremonger Set the number of forwarding ports, 74e2a94f9aSCiara Power where 1 <= N <= "number of ports" on the board or ``RTE_MAX_ETHPORTS`` from the configuration file. 75ac718398SBernard Iremonger The default value is the number of ports on the board. 76ac718398SBernard Iremonger 77e76d7a76SJohn McNamara* ``--coremask=0xXX`` 78ac718398SBernard Iremonger 79ac718398SBernard Iremonger Set the hexadecimal bitmask of the cores running the packet forwarding test. 80cb056611SStephen Hemminger The main lcore is reserved for command line parsing only and cannot be masked on for packet forwarding. 81ac718398SBernard Iremonger 82e76d7a76SJohn McNamara* ``--portmask=0xXX`` 83ac718398SBernard Iremonger 84ac718398SBernard Iremonger Set the hexadecimal bitmask of the ports used by the packet forwarding test. 85ac718398SBernard Iremonger 862df00d56SHariprasad Govindharajan* ``--portlist=X`` 872df00d56SHariprasad Govindharajan 882df00d56SHariprasad Govindharajan Set the forwarding ports based on the user input used by the packet forwarding test. 892df00d56SHariprasad Govindharajan '-' denotes a range of ports to set including the two specified port IDs 902df00d56SHariprasad Govindharajan ',' separates multiple port values. 912df00d56SHariprasad Govindharajan Possible examples like --portlist=0,1 or --portlist=0-2 or --portlist=0,1-2 etc 922df00d56SHariprasad Govindharajan 93e76d7a76SJohn McNamara* ``--numa`` 94ac718398SBernard Iremonger 95999b2ee0SBruce Richardson Enable NUMA-aware allocation of RX/TX rings and of RX memory buffers 96999b2ee0SBruce Richardson (mbufs). [Default setting] 97999b2ee0SBruce Richardson 98999b2ee0SBruce Richardson* ``--no-numa`` 99999b2ee0SBruce Richardson 100999b2ee0SBruce Richardson Disable NUMA-aware allocation of RX/TX rings and of RX memory buffers (mbufs). 101ac718398SBernard Iremonger 102e76d7a76SJohn McNamara* ``--port-numa-config=(port,socket)[,(port,socket)]`` 103ac718398SBernard Iremonger 104ac718398SBernard Iremonger Specify the socket on which the memory pool to be used by the port will be allocated. 105ac718398SBernard Iremonger 106e76d7a76SJohn McNamara* ``--ring-numa-config=(port,flag,socket)[,(port,flag,socket)]`` 107ac718398SBernard Iremonger 108ac718398SBernard Iremonger Specify the socket on which the TX/RX rings for the port will be allocated. 109ac718398SBernard Iremonger Where flag is 1 for RX, 2 for TX, and 3 for RX and TX. 110ac718398SBernard Iremonger 111e76d7a76SJohn McNamara* ``--socket-num=N`` 112ac718398SBernard Iremonger 113ac718398SBernard Iremonger Set the socket from which all memory is allocated in NUMA mode, 114ac718398SBernard Iremonger where 0 <= N < number of sockets on the board. 115ac718398SBernard Iremonger 11626cbb419SViacheslav Ovsiienko* ``--mbuf-size=N[,N1[,...Nn]`` 117ac718398SBernard Iremonger 11826cbb419SViacheslav Ovsiienko Set the data size of the mbufs used to N bytes, where N < 65536. 11926cbb419SViacheslav Ovsiienko The default value is 2048. If multiple mbuf-size values are specified the 12026cbb419SViacheslav Ovsiienko extra memory pools will be created for allocating mbufs to receive packets 1219c30a6f3SHenry Nadeau with buffer splitting features. 122ac718398SBernard Iremonger 123e76d7a76SJohn McNamara* ``--total-num-mbufs=N`` 124ac718398SBernard Iremonger 125ac718398SBernard Iremonger Set the number of mbufs to be allocated in the mbuf pools, where N > 1024. 126ac718398SBernard Iremonger 127e76d7a76SJohn McNamara* ``--max-pkt-len=N`` 128ac718398SBernard Iremonger 129ac718398SBernard Iremonger Set the maximum packet size to N bytes, where N >= 64. The default value is 1518. 130ac718398SBernard Iremonger 1314a729092SDekel Peled* ``--max-lro-pkt-size=N`` 1324a729092SDekel Peled 1334a729092SDekel Peled Set the maximum LRO aggregated packet size to N bytes, where N >= 64. 1344a729092SDekel Peled 135e76d7a76SJohn McNamara* ``--eth-peers-configfile=name`` 136ac718398SBernard Iremonger 137ac718398SBernard Iremonger Use a configuration file containing the Ethernet addresses of the peer ports. 138e76d7a76SJohn McNamara The configuration file should contain the Ethernet addresses on separate lines:: 139ac718398SBernard Iremonger 140ac718398SBernard Iremonger XX:XX:XX:XX:XX:01 141ac718398SBernard Iremonger XX:XX:XX:XX:XX:02 142ac718398SBernard Iremonger ... 143ac718398SBernard Iremonger 144e76d7a76SJohn McNamara* ``--eth-peer=N,XX:XX:XX:XX:XX:XX`` 145ac718398SBernard Iremonger 146e76d7a76SJohn McNamara Set the MAC address ``XX:XX:XX:XX:XX:XX`` of the peer port N, 147e2a94f9aSCiara Power where 0 <= N < ``RTE_MAX_ETHPORTS``. 148ac718398SBernard Iremonger 149bf5b2126SStephen Hemminger* ``--tx-ip=SRC,DST`` 150bf5b2126SStephen Hemminger 151bf5b2126SStephen Hemminger Set the source and destination IP address used when doing transmit only test. 1527cc1bd46SStephen Hemminger The defaults address values are source 198.18.0.1 and 1537cc1bd46SStephen Hemminger destination 198.18.0.2. These are special purpose addresses 1547cc1bd46SStephen Hemminger reserved for benchmarking (RFC 5735). 155bf5b2126SStephen Hemminger 156bf5b2126SStephen Hemminger* ``--tx-udp=SRC[,DST]`` 157bf5b2126SStephen Hemminger 158bf5b2126SStephen Hemminger Set the source and destination UDP port number for transmit test only test. 159bf5b2126SStephen Hemminger The default port is the port 9 which is defined for the discard protocol 160bf5b2126SStephen Hemminger (RFC 863). 161bf5b2126SStephen Hemminger 16279dd163fSJeff Guo* ``--disable-crc-strip`` 163ac718398SBernard Iremonger 16479dd163fSJeff Guo Disable hardware CRC stripping. 165ac718398SBernard Iremonger 1664c3ea508SOlivier Matz* ``--enable-lro`` 1674c3ea508SOlivier Matz 1684c3ea508SOlivier Matz Enable large receive offload. 1694c3ea508SOlivier Matz 170e76d7a76SJohn McNamara* ``--enable-rx-cksum`` 171ac718398SBernard Iremonger 172ac718398SBernard Iremonger Enable hardware RX checksum offload. 173ac718398SBernard Iremonger 17404997938SMaciej Czekaj* ``--enable-scatter`` 17504997938SMaciej Czekaj 17604997938SMaciej Czekaj Enable scatter (multi-segment) RX. 17704997938SMaciej Czekaj 1788b9bd0efSMoti Haimovsky* ``--enable-hw-vlan`` 179ac718398SBernard Iremonger 1808b9bd0efSMoti Haimovsky Enable hardware VLAN. 181ac718398SBernard Iremonger 1828b9bd0efSMoti Haimovsky* ``--enable-hw-vlan-filter`` 183f2552cd5SOuyang Changchun 1848b9bd0efSMoti Haimovsky Enable hardware VLAN filter. 185f2552cd5SOuyang Changchun 1868b9bd0efSMoti Haimovsky* ``--enable-hw-vlan-strip`` 187f2552cd5SOuyang Changchun 1888b9bd0efSMoti Haimovsky Enable hardware VLAN strip. 189f2552cd5SOuyang Changchun 1908b9bd0efSMoti Haimovsky* ``--enable-hw-vlan-extend`` 191f2552cd5SOuyang Changchun 1928b9bd0efSMoti Haimovsky Enable hardware VLAN extend. 193f2552cd5SOuyang Changchun 194b8577876SVivek Sharma* ``--enable-hw-qinq-strip`` 195b8577876SVivek Sharma 196b8577876SVivek Sharma Enable hardware QINQ strip. 197b8577876SVivek Sharma 198e76d7a76SJohn McNamara* ``--enable-drop-en`` 199ac718398SBernard Iremonger 200ac718398SBernard Iremonger Enable per-queue packet drop for packets with no descriptors. 201ac718398SBernard Iremonger 202e76d7a76SJohn McNamara* ``--disable-rss`` 203ac718398SBernard Iremonger 204ac718398SBernard Iremonger Disable RSS (Receive Side Scaling). 205ac718398SBernard Iremonger 206e76d7a76SJohn McNamara* ``--port-topology=mode`` 207ac718398SBernard Iremonger 20848670ed6SRami Rosen Set port topology, where mode is ``paired`` (the default), ``chained`` or ``loop``. 209e76d7a76SJohn McNamara 210e76d7a76SJohn McNamara In ``paired`` mode, the forwarding is between pairs of ports, for example: (0,1), (2,3), (4,5). 211e76d7a76SJohn McNamara 212e76d7a76SJohn McNamara In ``chained`` mode, the forwarding is to the next available port in the port mask, for example: (0,1), (1,2), (2,0). 213e76d7a76SJohn McNamara 214ac718398SBernard Iremonger The ordering of the ports can be changed using the portlist testpmd runtime function. 215ac718398SBernard Iremonger 21648670ed6SRami Rosen In ``loop`` mode, ingress traffic is simply transmitted back on the same interface. 21748670ed6SRami Rosen 218e76d7a76SJohn McNamara* ``--forward-mode=mode`` 219ac718398SBernard Iremonger 220e76d7a76SJohn McNamara Set the forwarding mode where ``mode`` is one of the following:: 221ac718398SBernard Iremonger 222e76d7a76SJohn McNamara io (the default) 223e76d7a76SJohn McNamara mac 224153ccd05SYong Wang macswap 225e76d7a76SJohn McNamara flowgen 226e76d7a76SJohn McNamara rxonly 227e76d7a76SJohn McNamara txonly 228e76d7a76SJohn McNamara csum 229e76d7a76SJohn McNamara icmpecho 230e76d7a76SJohn McNamara ieee1588 2315b590fbeSJasvinder Singh tm 2323c156061SJens Freimann noisy 2332564abdaSShiri Kuzin 5tswap 23459840375SXueming Li shared-rxq 2355fe42bc6SFeifei Wang recycle_mbufs 236e76d7a76SJohn McNamara 237e76d7a76SJohn McNamara* ``--rss-ip`` 238ac718398SBernard Iremonger 239ac718398SBernard Iremonger Set RSS functions for IPv4/IPv6 only. 240ac718398SBernard Iremonger 241e76d7a76SJohn McNamara* ``--rss-udp`` 242ac718398SBernard Iremonger 243ac718398SBernard Iremonger Set RSS functions for IPv4/IPv6 and UDP. 244ac718398SBernard Iremonger 245e76d7a76SJohn McNamara* ``--rxq=N`` 246ac718398SBernard Iremonger 247ac718398SBernard Iremonger Set the number of RX queues per port to N, where 1 <= N <= 65535. 248ac718398SBernard Iremonger The default value is 1. 249ac718398SBernard Iremonger 250e76d7a76SJohn McNamara* ``--rxd=N`` 251ac718398SBernard Iremonger 252ac718398SBernard Iremonger Set the number of descriptors in the RX rings to N, where N > 0. 253ac718398SBernard Iremonger The default value is 128. 254ac718398SBernard Iremonger 255e76d7a76SJohn McNamara* ``--txq=N`` 256ac718398SBernard Iremonger 257ac718398SBernard Iremonger Set the number of TX queues per port to N, where 1 <= N <= 65535. 258ac718398SBernard Iremonger The default value is 1. 259ac718398SBernard Iremonger 260e76d7a76SJohn McNamara* ``--txd=N`` 261ac718398SBernard Iremonger 262ac718398SBernard Iremonger Set the number of descriptors in the TX rings to N, where N > 0. 263ac718398SBernard Iremonger The default value is 512. 264ac718398SBernard Iremonger 2651c69df45SOri Kam* ``--hairpinq=N`` 2661c69df45SOri Kam 2671c69df45SOri Kam Set the number of hairpin queues per port to N, where 1 <= N <= 65535. 2681c69df45SOri Kam The default value is 0. The number of hairpin queues are added to the 2691c69df45SOri Kam number of TX queues and to the number of RX queues. then the first 2701c69df45SOri Kam RX hairpin is binded to the first TX hairpin, the second RX hairpin is 2711c69df45SOri Kam binded to the second TX hairpin and so on. The index of the first 2721c69df45SOri Kam RX hairpin queue is the number of RX queues as configured using --rxq. 2731c69df45SOri Kam The index of the first TX hairpin queue is the number of TX queues 2741c69df45SOri Kam as configured using --txq. 2751c69df45SOri Kam 276e76d7a76SJohn McNamara* ``--burst=N`` 277ac718398SBernard Iremonger 278ac718398SBernard Iremonger Set the number of packets per burst to N, where 1 <= N <= 512. 2798599ed31SRemy Horton The default value is 32. 2808599ed31SRemy Horton If set to 0, driver default is used if defined. Else, if driver 2818599ed31SRemy Horton default is not defined, default of 32 is used. 282ac718398SBernard Iremonger 2836c02043eSIgor Russkikh* ``--flowgen-clones=N`` 2846c02043eSIgor Russkikh 2856c02043eSIgor Russkikh Set the number of each packet clones to be sent in `flowgen` mode. 2866c02043eSIgor Russkikh Sending clones reduces host CPU load on creating packets and may help 2876c02043eSIgor Russkikh in testing extreme speeds or maxing out Tx packet performance. 2886c02043eSIgor Russkikh N should be not zero, but less than 'burst' parameter. 2896c02043eSIgor Russkikh 290861e7684SZhihong Wang* ``--flowgen-flows=N`` 291861e7684SZhihong Wang 292861e7684SZhihong Wang Set the number of flows to be generated in `flowgen` mode, where 293861e7684SZhihong Wang 1 <= N <= INT32_MAX. 294861e7684SZhihong Wang 295e76d7a76SJohn McNamara* ``--mbcache=N`` 296ac718398SBernard Iremonger 297ac718398SBernard Iremonger Set the cache of mbuf memory pools to N, where 0 <= N <= 512. 298ac718398SBernard Iremonger The default value is 16. 299ac718398SBernard Iremonger 300e76d7a76SJohn McNamara* ``--rxpt=N`` 301ac718398SBernard Iremonger 302ac718398SBernard Iremonger Set the prefetch threshold register of RX rings to N, where N >= 0. 303ac718398SBernard Iremonger The default value is 8. 304ac718398SBernard Iremonger 305e76d7a76SJohn McNamara* ``--rxht=N`` 306ac718398SBernard Iremonger 307ac718398SBernard Iremonger Set the host threshold register of RX rings to N, where N >= 0. 308ac718398SBernard Iremonger The default value is 8. 309ac718398SBernard Iremonger 310e76d7a76SJohn McNamara* ``--rxfreet=N`` 311ac718398SBernard Iremonger 312ac718398SBernard Iremonger Set the free threshold of RX descriptors to N, where 0 <= N < value of --rxd. 313ac718398SBernard Iremonger The default value is 0. 314ac718398SBernard Iremonger 315e76d7a76SJohn McNamara* ``--rxwt=N`` 316ac718398SBernard Iremonger 317ac718398SBernard Iremonger Set the write-back threshold register of RX rings to N, where N >= 0. 318ac718398SBernard Iremonger The default value is 4. 319ac718398SBernard Iremonger 320e76d7a76SJohn McNamara* ``--txpt=N`` 321ac718398SBernard Iremonger 322ac718398SBernard Iremonger Set the prefetch threshold register of TX rings to N, where N >= 0. 323ac718398SBernard Iremonger The default value is 36. 324ac718398SBernard Iremonger 325e76d7a76SJohn McNamara* ``--txht=N`` 326ac718398SBernard Iremonger 327ac718398SBernard Iremonger Set the host threshold register of TX rings to N, where N >= 0. 328ac718398SBernard Iremonger The default value is 0. 329ac718398SBernard Iremonger 330e76d7a76SJohn McNamara* ``--txwt=N`` 331ac718398SBernard Iremonger 332ac718398SBernard Iremonger Set the write-back threshold register of TX rings to N, where N >= 0. 333ac718398SBernard Iremonger The default value is 0. 334ac718398SBernard Iremonger 335e76d7a76SJohn McNamara* ``--txfreet=N`` 336ac718398SBernard Iremonger 337e76d7a76SJohn McNamara Set the transmit free threshold of TX rings to N, where 0 <= N <= value of ``--txd``. 338ac718398SBernard Iremonger The default value is 0. 339ac718398SBernard Iremonger 340e76d7a76SJohn McNamara* ``--txrst=N`` 341ac718398SBernard Iremonger 342e76d7a76SJohn McNamara Set the transmit RS bit threshold of TX rings to N, where 0 <= N <= value of ``--txd``. 343ac718398SBernard Iremonger The default value is 0. 344ac718398SBernard Iremonger 345e76d7a76SJohn McNamara* ``--no-flush-rx`` 346ac718398SBernard Iremonger 347e76d7a76SJohn McNamara Don't flush the RX streams before starting forwarding. Used mainly with the PCAP PMD. 348ac718398SBernard Iremonger 34991c78e09SViacheslav Ovsiienko* ``--rxoffs=X[,Y]`` 35091c78e09SViacheslav Ovsiienko 35191c78e09SViacheslav Ovsiienko Set the offsets of packet segments on receiving if split 35291c78e09SViacheslav Ovsiienko feature is engaged. Affects only the queues configured 35391c78e09SViacheslav Ovsiienko with split offloads (currently BUFFER_SPLIT is supported only). 35491c78e09SViacheslav Ovsiienko 3550f2096d7SViacheslav Ovsiienko* ``--rxpkts=X[,Y]`` 3560f2096d7SViacheslav Ovsiienko 3570f2096d7SViacheslav Ovsiienko Set the length of segments to scatter packets on receiving if split 3580f2096d7SViacheslav Ovsiienko feature is engaged. Affects only the queues configured 3590f2096d7SViacheslav Ovsiienko with split offloads (currently BUFFER_SPLIT is supported only). 3600f2096d7SViacheslav Ovsiienko Optionally the multiple memory pools can be specified with --mbuf-size 3610f2096d7SViacheslav Ovsiienko command line parameter and the mbufs to receive will be allocated 3620f2096d7SViacheslav Ovsiienko sequentially from these extra memory pools. 3630f2096d7SViacheslav Ovsiienko 364e76d7a76SJohn McNamara* ``--txpkts=X[,Y]`` 365ac718398SBernard Iremonger 3662ebacaa7SMaciej Czekaj Set TX segment sizes or total packet length. Valid for ``tx-only`` 3672ebacaa7SMaciej Czekaj and ``flowgen`` forwarding modes. 368ac718398SBernard Iremonger 369a4bf5421SHanumanth Pothula* ``--multi-rx-mempool`` 370a4bf5421SHanumanth Pothula 371a4bf5421SHanumanth Pothula Enable multiple mbuf pools per Rx queue. 372a4bf5421SHanumanth Pothula 37382010ef5SYongseok Koh* ``--txonly-multi-flow`` 37482010ef5SYongseok Koh 37582010ef5SYongseok Koh Generate multiple flows in txonly mode. 37682010ef5SYongseok Koh 377f4d178c1SXueming Li* ``--rxq-share=[X]`` 378f4d178c1SXueming Li 379f4d178c1SXueming Li Create queues in shared Rx queue mode if device supports. 380f4d178c1SXueming Li Shared Rx queues are grouped per X ports. X defaults to UINT32_MAX, 38159840375SXueming Li implies all ports join share group 1. Forwarding engine "shared-rxq" 38259840375SXueming Li should be used for shared Rx queues. This engine does Rx only and 38359840375SXueming Li update stream statistics accordingly. 384f4d178c1SXueming Li 385b7b78a08SAjit Khaparde* ``--eth-link-speed`` 386b7b78a08SAjit Khaparde 387b7b78a08SAjit Khaparde Set a forced link speed to the ethernet port:: 388b7b78a08SAjit Khaparde 389b7b78a08SAjit Khaparde 10 - 10Mbps (not supported) 390b7b78a08SAjit Khaparde 100 - 100Mbps (not supported) 391b7b78a08SAjit Khaparde 1000 - 1Gbps 392d54c7f15SJulien Aube 2500 - 2.5Gbps 393d54c7f15SJulien Aube 5000 - 5Gbps 394b7b78a08SAjit Khaparde 10000 - 10Gbps 395b7b78a08SAjit Khaparde 25000 - 25Gbps 396b7b78a08SAjit Khaparde 40000 - 40Gbps 397b7b78a08SAjit Khaparde 50000 - 50Gbps 398b7b78a08SAjit Khaparde 100000 - 100Gbps 399b7b78a08SAjit Khaparde 200000 - 200Gbps 400a131d9ecSThomas Monjalon 400000 - 400Gbps 401b7b78a08SAjit Khaparde ... 402b7b78a08SAjit Khaparde 403e76d7a76SJohn McNamara* ``--disable-link-check`` 404ac718398SBernard Iremonger 405ac718398SBernard Iremonger Disable check on link status when starting/stopping ports. 406b8628a0eSGaetan Rivet 4076937d210SStephen Hemminger* ``--disable-device-start`` 4086937d210SStephen Hemminger 4096937d210SStephen Hemminger Do not automatically start all ports. This allows testing 4106937d210SStephen Hemminger configuration of rx and tx queues before device is started 4116937d210SStephen Hemminger for the first time. 4126937d210SStephen Hemminger 413b8628a0eSGaetan Rivet* ``--no-lsc-interrupt`` 414b8628a0eSGaetan Rivet 415b8628a0eSGaetan Rivet Disable LSC interrupts for all ports, even those supporting it. 416b8628a0eSGaetan Rivet 417b8628a0eSGaetan Rivet* ``--no-rmv-interrupt`` 418b8628a0eSGaetan Rivet 419b8628a0eSGaetan Rivet Disable RMV interrupts for all ports, even those supporting it. 420e25e6c70SRemy Horton 421e25e6c70SRemy Horton* ``--bitrate-stats=N`` 422e25e6c70SRemy Horton 423e25e6c70SRemy Horton Set the logical core N to perform bitrate calculation. 4243af72783SGaetan Rivet 4258cd8f0a9SStephen Hemminger* ``--latencystats=N`` 4268cd8f0a9SStephen Hemminger 4278cd8f0a9SStephen Hemminger Set the logical core N to perform latency and jitter calculations. 4288cd8f0a9SStephen Hemminger 429eb0d471aSKalesh AP* ``--print-event <unknown|intr_lsc|queue_state|intr_reset|vf_mbox|macsec|intr_rmv|dev_probed|dev_released|flow_aged|err_recovering|recovery_success|recovery_failed|all>`` 4303af72783SGaetan Rivet 431b6b63dfdSGaetan Rivet Enable printing the occurrence of the designated event. Using all will 432b6b63dfdSGaetan Rivet enable all of them. 4333af72783SGaetan Rivet 434eb0d471aSKalesh AP* ``--mask-event <unknown|intr_lsc|queue_state|intr_reset|vf_mbox|macsec|intr_rmv|dev_probed|dev_released|flow_aged|err_recovering|recovery_success|recovery_failed|all>`` 4353af72783SGaetan Rivet 436b6b63dfdSGaetan Rivet Disable printing the occurrence of the designated event. Using all will 437b6b63dfdSGaetan Rivet disable all of them. 4387ee3e944SVasily Philipov 4397ee3e944SVasily Philipov* ``--flow-isolate-all`` 4407ee3e944SVasily Philipov 4417ee3e944SVasily Philipov Providing this parameter requests flow API isolated mode on all ports at 4427ee3e944SVasily Philipov initialization time. It ensures all traffic is received through the 4437ee3e944SVasily Philipov configured flow rules only (see flow command). 4447ee3e944SVasily Philipov 4457ee3e944SVasily Philipov Ports that do not support this mode are automatically discarded. 446fd8c20aaSShahaf Shuler 447543df472SChengwen Feng* ``--disable-flow-flush`` 448543df472SChengwen Feng 449543df472SChengwen Feng Disable port flow flush when stopping port. 450543df472SChengwen Feng This allows testing keep flow rules or shared flow objects across restart. 451543df472SChengwen Feng 452fd8c20aaSShahaf Shuler* ``--tx-offloads=0xXXXXXXXX`` 453fd8c20aaSShahaf Shuler 454fd8c20aaSShahaf Shuler Set the hexadecimal bitmask of TX queue offloads. 455fd8c20aaSShahaf Shuler The default value is 0. 456fb73e096SJeff Guo 457fb1a5a0fSVivek Sharma* ``--rx-offloads=0xXXXXXXXX`` 458fb1a5a0fSVivek Sharma 459fb1a5a0fSVivek Sharma Set the hexadecimal bitmask of RX queue offloads. 460fb1a5a0fSVivek Sharma The default value is 0. 461fb1a5a0fSVivek Sharma 462fb73e096SJeff Guo* ``--hot-plug`` 463fb73e096SJeff Guo 46447ae571eSStephen Hemminger Enable device event monitor mechanism for hotplug. 46539e5e20fSXueming Li 46639e5e20fSXueming Li* ``--vxlan-gpe-port=N`` 46739e5e20fSXueming Li 46839e5e20fSXueming Li Set the UDP port number of tunnel VXLAN-GPE to N. 46939e5e20fSXueming Li The default value is 4790. 470e505d84cSAnatoly Burakov 4712f60c649SOphir Munk* ``--geneve-parsed-port=N`` 4722f60c649SOphir Munk 4732f60c649SOphir Munk Set the UDP port number that is used for parsing the GENEVE protocol to N. 4742f60c649SOphir Munk HW may be configured with another tunnel Geneve port. 4752f60c649SOphir Munk The default value is 6081. 4762f60c649SOphir Munk 477e505d84cSAnatoly Burakov* ``--mlockall`` 478e505d84cSAnatoly Burakov 479e505d84cSAnatoly Burakov Enable locking all memory. 480e505d84cSAnatoly Burakov 481e505d84cSAnatoly Burakov* ``--no-mlockall`` 482e505d84cSAnatoly Burakov 483e505d84cSAnatoly Burakov Disable locking all memory. 484c7f5dba7SAnatoly Burakov 485c7f5dba7SAnatoly Burakov* ``--mp-alloc <native|anon|xmem|xmemhuge>`` 486c7f5dba7SAnatoly Burakov 487c7f5dba7SAnatoly Burakov Select mempool allocation mode: 488c7f5dba7SAnatoly Burakov 489c7f5dba7SAnatoly Burakov * native: create and populate mempool using native DPDK memory 490c7f5dba7SAnatoly Burakov * anon: create mempool using native DPDK memory, but populate using 491c7f5dba7SAnatoly Burakov anonymous memory 492c7f5dba7SAnatoly Burakov * xmem: create and populate mempool using externally and anonymously 493c7f5dba7SAnatoly Burakov allocated area 494c7f5dba7SAnatoly Burakov * xmemhuge: create and populate mempool using externally and anonymously 495c7f5dba7SAnatoly Burakov allocated hugepage area 4963c156061SJens Freimann 4971d343c19SMike Pattrick* ``--noisy-forward-mode=mode`` 4981d343c19SMike Pattrick 4991d343c19SMike Pattrick Set the noisy vnf forwarding mode where ``mode`` is one of the following:: 5001d343c19SMike Pattrick 5011d343c19SMike Pattrick io (the default) 5021d343c19SMike Pattrick mac 5031d343c19SMike Pattrick macswap 5041d343c19SMike Pattrick 5tswap 5051d343c19SMike Pattrick 5063c156061SJens Freimann* ``--noisy-tx-sw-buffer-size`` 5073c156061SJens Freimann 5083c156061SJens Freimann Set the number of maximum elements of the FIFO queue to be created 5093c156061SJens Freimann for buffering packets. Only available with the noisy forwarding mode. 5103c156061SJens Freimann The default value is 0. 5113c156061SJens Freimann 5123c156061SJens Freimann* ``--noisy-tx-sw-buffer-flushtime=N`` 5133c156061SJens Freimann 5143c156061SJens Freimann Set the time before packets in the FIFO queue is flushed. 5153c156061SJens Freimann Only available with the noisy forwarding mode. The default value is 0. 5163c156061SJens Freimann 5173c156061SJens Freimann* ``--noisy-lkup-memory=N`` 5183c156061SJens Freimann 519d629b7b5SJohn McNamara Set the size of the noisy neighbor simulation memory buffer in MB to N. 5203c156061SJens Freimann Only available with the noisy forwarding mode. The default value is 0. 5213c156061SJens Freimann 5223c156061SJens Freimann 5233c156061SJens Freimann* ``--noisy-lkup-num-reads=N`` 5243c156061SJens Freimann 525d629b7b5SJohn McNamara Set the number of reads to be done in noisy neighbor simulation memory buffer to N. 5263c156061SJens Freimann Only available with the noisy forwarding mode. The default value is 0. 5273c156061SJens Freimann 5283c156061SJens Freimann* ``--noisy-lkup-num-writes=N`` 5293c156061SJens Freimann 530d629b7b5SJohn McNamara Set the number of writes to be done in noisy neighbor simulation memory buffer to N. 5313c156061SJens Freimann Only available with the noisy forwarding mode. The default value is 0. 5323c156061SJens Freimann 5333c156061SJens Freimann* ``--noisy-lkup-num-reads-writes=N`` 5343c156061SJens Freimann 535d629b7b5SJohn McNamara Set the number of r/w accesses to be done in noisy neighbor simulation memory buffer to N. 5363c156061SJens Freimann Only available with the noisy forwarding mode. The default value is 0. 53759fcf854SShahaf Shuler 53859fcf854SShahaf Shuler* ``--no-iova-contig`` 53959fcf854SShahaf Shuler 54059fcf854SShahaf Shuler Enable to create mempool which is not IOVA contiguous. Valid only with --mp-alloc=anon. 54159fcf854SShahaf Shuler The default value is 0. 542f9295aa2SXiaoyu Min 543f9295aa2SXiaoyu Min* ``--rx-mq-mode`` 544f9295aa2SXiaoyu Min 545f9295aa2SXiaoyu Min Set the hexadecimal bitmask of RX multi queue mode which can be enabled. 546f9295aa2SXiaoyu Min The default value is 0x7:: 547f9295aa2SXiaoyu Min 548295968d1SFerruh Yigit RTE_ETH_MQ_RX_RSS_FLAG | RTE_ETH_MQ_RX_DCB_FLAG | RTE_ETH_MQ_RX_VMDQ_FLAG 549bc700b67SDharmik Thakkar 550bc700b67SDharmik Thakkar* ``--record-core-cycles`` 551bc700b67SDharmik Thakkar 552bc700b67SDharmik Thakkar Enable measurement of CPU cycles per packet. 5530e4b1963SDharmik Thakkar 5540e4b1963SDharmik Thakkar* ``--record-burst-stats`` 5550e4b1963SDharmik Thakkar 5560e4b1963SDharmik Thakkar Enable display of RX and TX burst stats. 55701817b10SBing Zhao 55823095155SDariusz Sosnowski* ``--hairpin-mode=0xXXXX`` 55901817b10SBing Zhao 56023095155SDariusz Sosnowski Set the hairpin port configuration with bitmask, only valid when hairpin queues number is set:: 561ea2066b1SAjit Khaparde 56223095155SDariusz Sosnowski bit 18 - hairpin TX queues will use RTE memory 56323095155SDariusz Sosnowski bit 16 - hairpin TX queues will use locked device memory 56423095155SDariusz Sosnowski bit 13 - hairpin RX queues will use RTE memory 56523095155SDariusz Sosnowski bit 12 - hairpin RX queues will use locked device memory 56623095155SDariusz Sosnowski bit 9 - force memory settings of hairpin TX queue 56723095155SDariusz Sosnowski bit 8 - force memory settings of hairpin RX queue 56801817b10SBing Zhao bit 4 - explicit Tx flow rule 56901817b10SBing Zhao bit 1 - two hairpin ports paired 57001817b10SBing Zhao bit 0 - two hairpin ports loop 571ea2066b1SAjit Khaparde 57201817b10SBing Zhao The default value is 0. Hairpin will use single port mode and implicit Tx flow mode. 573a550baf2SMin Hu (Connor) 574*5334c3feSGregory Etelson* ``--hairpin-map=Rx port id:Rx queue:Tx port id:Tx queue:queues number`` 575*5334c3feSGregory Etelson 576*5334c3feSGregory Etelson Set explicit hairpin configuration. 577a550baf2SMin Hu (Connor) 578a550baf2SMin Hu (Connor)Testpmd Multi-Process Command-line Options 579a550baf2SMin Hu (Connor)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580a550baf2SMin Hu (Connor) 581a550baf2SMin Hu (Connor)The following are the command-line options for testpmd multi-process support: 582a550baf2SMin Hu (Connor) 583a550baf2SMin Hu (Connor)* primary process: 584a550baf2SMin Hu (Connor) 585a550baf2SMin Hu (Connor).. code-block:: console 586a550baf2SMin Hu (Connor) 587a550baf2SMin Hu (Connor) sudo ./dpdk-testpmd -a xxx --proc-type=auto -l 0-1 -- -i --rxq=4 --txq=4 \ 588a550baf2SMin Hu (Connor) --num-procs=2 --proc-id=0 589a550baf2SMin Hu (Connor) 590a550baf2SMin Hu (Connor)* secondary process: 591a550baf2SMin Hu (Connor) 592a550baf2SMin Hu (Connor).. code-block:: console 593a550baf2SMin Hu (Connor) 594a550baf2SMin Hu (Connor) sudo ./dpdk-testpmd -a xxx --proc-type=auto -l 2-3 -- -i --rxq=4 --txq=4 \ 595a550baf2SMin Hu (Connor) --num-procs=2 --proc-id=1 596a550baf2SMin Hu (Connor) 597a550baf2SMin Hu (Connor)The command line options are: 598a550baf2SMin Hu (Connor) 599a550baf2SMin Hu (Connor)* ``--num-procs=N`` 600a550baf2SMin Hu (Connor) 601a550baf2SMin Hu (Connor) The number of processes which will be used. 602a550baf2SMin Hu (Connor) 603a550baf2SMin Hu (Connor)* ``--proc-id=ID`` 604a550baf2SMin Hu (Connor) 605a550baf2SMin Hu (Connor) The ID of the current process (ID < num-procs). ID should be different in 606a550baf2SMin Hu (Connor) primary process and secondary process, which starts from '0'. 607a550baf2SMin Hu (Connor) 608a550baf2SMin Hu (Connor)Calculation rule for queue: 609a550baf2SMin Hu (Connor)All queues are allocated to different processes based on ``proc_num`` and 610a550baf2SMin Hu (Connor)``proc_id``. 611a550baf2SMin Hu (Connor)Calculation rule for the testpmd to allocate queues to each process: 612a550baf2SMin Hu (Connor)* start(queue start id) = proc_id * nb_q / num_procs; 613a550baf2SMin Hu (Connor) 614a550baf2SMin Hu (Connor)* end(queue end id) = start + nb_q / num_procs; 615a550baf2SMin Hu (Connor) 616a550baf2SMin Hu (Connor)For example, if testpmd is configured to have 4 Tx and Rx queues, 617a550baf2SMin Hu (Connor)queues 0 and 1 will be used by the primary process and 618a550baf2SMin Hu (Connor)queues 2 and 3 will be used by the secondary process. 619a550baf2SMin Hu (Connor) 620a550baf2SMin Hu (Connor)The number of queues should be a multiple of the number of processes. If not, 621a550baf2SMin Hu (Connor)redundant queues will exist after queues are allocated to processes. If RSS 622a550baf2SMin Hu (Connor)is enabled, packet loss occurs when traffic is sent to all processes at the same 623a550baf2SMin Hu (Connor)time. Some traffic goes to redundant queues and cannot be forwarded. 624a550baf2SMin Hu (Connor) 625a550baf2SMin Hu (Connor)All the dev ops is supported in primary process. While secondary process is 626a550baf2SMin Hu (Connor)not permitted to allocate or release shared memory, so some ops are not supported 627a550baf2SMin Hu (Connor)as follows: 628a550baf2SMin Hu (Connor) 629a550baf2SMin Hu (Connor)- ``dev_configure`` 630a550baf2SMin Hu (Connor)- ``dev_start`` 631a550baf2SMin Hu (Connor)- ``dev_stop`` 632e9351eaaSQiming Yang- ``dev_reset`` 633a550baf2SMin Hu (Connor)- ``rx_queue_setup`` 634a550baf2SMin Hu (Connor)- ``tx_queue_setup`` 635a550baf2SMin Hu (Connor)- ``rx_queue_release`` 636a550baf2SMin Hu (Connor)- ``tx_queue_release`` 637a550baf2SMin Hu (Connor) 638a550baf2SMin Hu (Connor)So, any command from testpmd which calls those APIs will not be supported in 639a550baf2SMin Hu (Connor)secondary process, like: 640a550baf2SMin Hu (Connor) 641a550baf2SMin Hu (Connor).. code-block:: console 642a550baf2SMin Hu (Connor) 643a550baf2SMin Hu (Connor) port config all rxq|txq|rxd|txd <value> 644a550baf2SMin Hu (Connor) port config <port_id> rx_offload xxx on/off 645a550baf2SMin Hu (Connor) port config <port_id> tx_offload xxx on/off 646a550baf2SMin Hu (Connor) 647a550baf2SMin Hu (Connor)etc. 648a550baf2SMin Hu (Connor) 649a550baf2SMin Hu (Connor)When secondary is running, port in primary is not permitted to be stopped. 650a550baf2SMin Hu (Connor)Reconfigure operation is only valid in primary. 651a550baf2SMin Hu (Connor) 652a550baf2SMin Hu (Connor)Stats is supported, stats will not change when one quits and starts, as they 653a550baf2SMin Hu (Connor)share the same buffer to store the stats. Flow rules are maintained in process 654a550baf2SMin Hu (Connor)level: primary and secondary has its own flow list (but one flow list in HW). 655a550baf2SMin Hu (Connor)The two can see all the queues, so setting the flow rules for the other is OK. 656a550baf2SMin Hu (Connor)But in the testpmd primary process receiving or transmitting packets from the 657a550baf2SMin Hu (Connor)queue allocated for secondary process is not permitted, and same for secondary 658a550baf2SMin Hu (Connor)process. 659a550baf2SMin Hu (Connor) 660a550baf2SMin Hu (Connor)Flow API and RSS are supported. 661