testpmd1
Tests for dpdk pmds
Options
The following are the EAL command-line options that can be used in conjunction with the testpmd, or any other DPDK application. See the DPDK Getting Started Guides for more information on these options.
- •
-
-c COREMASK
Set the hexadecimal bitmask of the cores to run on.
- •
-
-l CORELIST
List of cores to run on
The argument format is
<c1>[-c2][,c3[-c4],...]wherec1,c2, etc are core indexes between 0 and 128.
- •
-
--lcores COREMAP
Map lcore set to physical cpu set
The argument format is:
<lcores[@cpus]>[<,lcores[@cpus]>...]Lcore and CPU lists are grouped by ( and ) Within the group. The
-character is used as a range separator and , is used as a single number separator. The grouping () can be omitted for single element group. The @ can be omitted if cpus and lcores have the same value.
- •
-
--master-lcore ID
Core ID that is used as master.
- •
-
-n NUM
Set the number of memory channels to use.
- •
-
-b, --pci-blacklist domain:bus:devid.func
Blacklist a PCI devise to prevent EAL from using it. Multiple -b options are allowed.
- •
-
-d LIB.so
Load an external driver. Multiple -d options are allowed.
- •
-
-w, --pci-whitelist domain:bus:devid:func
Add a PCI device in white list.
- •
-
-m MB
Memory to allocate. See also
--socket-mem.
- •
-
-r NUM
Set the number of memory ranks (auto-detected by default).
- •
-
-vDisplay the version information on startup.
- •
-
--xen-dom0Support application running on Xen Domain0 without hugetlbfs.
- •
-
--syslogSet the syslog facility.
- •
-
--socket-memSet the memory to allocate on specific sockets (use comma separated values).
- •
-
--huge-dirSpecify the directory where the hugetlbfs is mounted.
- •
-
--proc-typeSet the type of the current process.
- •
-
--file-prefixPrefix for hugepage filenames.
- •
-
-vmware-tsc-mapUse VMware TSC map instead of native RDTSC.
- •
-
--vdevAdd a virtual device using the format:
<driver><id>[,key=val, ...]For example:
--vdev 'net_pcap0,rx_pcap=input.pcap,tx_pcap=output.pcap'
- •
-
--base-virtaddrSpecify base virtual address.
- •
-
--create-uio-devCreate
/dev/uioX(usually done by hotplug).
- •
-
--no-shconfNo shared config (mmap-ed files).
- •
-
--no-pciDisable pci.
- •
-
--no-hpetDisable hpet.
- •
-
--no-hugeUse malloc instead of hugetlbfs.
- •
-
-
--vhost-owner -
When creating vhost_user sockets change owner and group to the specified value. This can be given as
user:group, but also onlyuseror:groupare supported.
Examples:
--vhost-owner 'libvirt-qemu:kvm'--vhost-owner 'libvirt-qemu'--vhost-owner ':kvm' -
- •
-
--vhost-permWhen creating vhost_user sockets set them up with these permissions.
For example:
--vhost-perm '0664'
Options
The following are the command-line options for the testpmd applications. They must be separated from the EAL options, shown in the previous section, with a -- separator:
sudo ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=2
The commandline options are:
- •
-
-i, --interactive
Run testpmd in interactive mode. In this mode, the testpmd starts with a prompt that can be used to start and stop forwarding, configure the application and display stats on the current packet processing session. See testpmd_runtime for more details.
In non-interactive mode, the application starts with the configuration specified on the command-line and immediately enters forwarding mode.
- •
-
-h, --help
Display a help message and quit.
- •
-
-a, --auto-start
Start forwarding on initialization.
- •
-
--nb-cores=NSet the number of forwarding cores, where 1 <= N <= "number of cores" or
CONFIG_RTE_MAX_LCOREfrom the configuration file. The default value is 1.
- •
-
--nb-ports=NSet the number of forwarding ports, where 1 <= N <= "number of ports" on the board or
CONFIG_RTE_MAX_ETHPORTSfrom the configuration file. The default value is the number of ports on the board.
- •
-
--coremask=0xXXSet the hexadecimal bitmask of the cores running the packet forwarding test. The master lcore is reserved for command line parsing only and cannot be masked on for packet forwarding.
- •
-
--portmask=0xXXSet the hexadecimal bitmask of the ports used by the packet forwarding test.
- •
-
--numaEnable NUMA-aware allocation of RX/TX rings and of RX memory buffers (mbufs).
- •
-
--port-numa-config=(port,socket)[,(port,socket)]Specify the socket on which the memory pool to be used by the port will be allocated.
- •
-
--ring-numa-config=(port,flag,socket)[,(port,flag,socket)]Specify the socket on which the TX/RX rings for the port will be allocated. Where flag is 1 for RX, 2 for TX, and 3 for RX and TX.
- •
-
--socket-num=NSet the socket from which all memory is allocated in NUMA mode, where 0 <= N < number of sockets on the board.
- •
-
--mbuf-size=NSet the data size of the mbufs used to N bytes, where N < 65536. The default value is 2048.
- •
-
--total-num-mbufs=NSet the number of mbufs to be allocated in the mbuf pools, where N > 1024.
- •
-
--max-pkt-len=NSet the maximum packet size to N bytes, where N >= 64. The default value is 1518.
- •
-
--eth-peers-configfile=nameUse a configuration file containing the Ethernet addresses of the peer ports. The configuration file should contain the Ethernet addresses on separate lines:
XX:XX:XX:XX:XX:01XX:XX:XX:XX:XX:02...
- •
-
--eth-peer=N,XX:XX:XX:XX:XX:XXSet the MAC address XX:XX:XX:XX:XX:XX of the peer port N, where 0 <= N <
CONFIG_RTE_MAX_ETHPORTSfrom the configuration file.
- •
-
--pkt-filter-mode=modeSet Flow Director mode where mode is either
none(the default),signatureorperfect. See testpmd_flow_director for more details.
- •
-
--pkt-filter-report-hash=modeSet Flow Director hash match reporting mode where mode is
none,match(the default) oralways.
- •
-
--pkt-filter-size=NSet Flow Director allocated memory size, where N is 64K, 128K or 256K. Sizes are in kilobytes. The default is 64.
- •
-
--pkt-filter-flexbytes-offset=NSet the flexbytes offset. The offset is defined in words (not bytes) counted from the first byte of the destination Ethernet MAC address, where N is 0 <= N <= 32. The default value is 0x6.
- •
-
--pkt-filter-drop-queue=NSet the drop-queue. In perfect filter mode, when a rule is added with queue = -1, the packet will be enqueued into the RX drop-queue. If the drop-queue does not exist, the packet is dropped. The default value is N=127.
- •
-
--disable-crc-stripDisable hardware CRC stripping.
- •
-
--enable-lroEnable large receive offload.
- •
-
--enable-rx-cksumEnable hardware RX checksum offload.
- •
-
--enable-scatterEnable scatter (multi-segment) RX.
- •
-
--disable-hw-vlanDisable hardware VLAN.
- •
-
--disable-hw-vlan-filterDisable hardware VLAN filter.
- •
-
--disable-hw-vlan-stripDisable hardware VLAN strip.
- •
-
--disable-hw-vlan-extendDisable hardware VLAN extend.
- •
-
--enable-drop-enEnable per-queue packet drop for packets with no descriptors.
- •
-
--disable-rssDisable RSS (Receive Side Scaling).
- •
-
--port-topology=modeSet port topology, where mode is
paired(the default) orchained.In
pairedmode, the forwarding is between pairs of ports, for example: (0,1), (2,3), (4,5).In
chainedmode, the forwarding is to the next available port in the port mask, for example: (0,1), (1,2), (2,0).The ordering of the ports can be changed using the portlist testpmd runtime function.
- •
-
--forward-mode=modeSet the forwarding mode where
modeis one of the following:io (the default)macmacswapflowgenrxonlytxonlycsumicmpechoieee1588
- •
-
--rss-ipSet RSS functions for IPv4/IPv6 only.
- •
-
--rss-udpSet RSS functions for IPv4/IPv6 and UDP.
- •
-
--rxq=NSet the number of RX queues per port to N, where 1 <= N <= 65535. The default value is 1.
- •
-
--rxd=NSet the number of descriptors in the RX rings to N, where N > 0. The default value is 128.
- •
-
--txq=NSet the number of TX queues per port to N, where 1 <= N <= 65535. The default value is 1.
- •
-
--txd=NSet the number of descriptors in the TX rings to N, where N > 0. The default value is 512.
- •
-
--burst=NSet the number of packets per burst to N, where 1 <= N <= 512. The default value is 16.
- •
-
--mbcache=NSet the cache of mbuf memory pools to N, where 0 <= N <= 512. The default value is 16.
- •
-
--rxpt=NSet the prefetch threshold register of RX rings to N, where N >= 0. The default value is 8.
- •
-
--rxht=NSet the host threshold register of RX rings to N, where N >= 0. The default value is 8.
- •
-
--rxfreet=NSet the free threshold of RX descriptors to N, where 0 <= N < value of --rxd. The default value is 0.
- •
-
--rxwt=NSet the write-back threshold register of RX rings to N, where N >= 0. The default value is 4.
- •
-
--txpt=NSet the prefetch threshold register of TX rings to N, where N >= 0. The default value is 36.
- •
-
--txht=NSet the host threshold register of TX rings to N, where N >= 0. The default value is 0.
- •
-
--txwt=NSet the write-back threshold register of TX rings to N, where N >= 0. The default value is 0.
- •
-
--txfreet=NSet the transmit free threshold of TX rings to N, where 0 <= N <= value of
--txd. The default value is 0.
- •
-
--txrst=NSet the transmit RS bit threshold of TX rings to N, where 0 <= N <= value of
--txd. The default value is 0.
- •
-
--txqflags=0xXXXXXXXXSet the hexadecimal bitmask of TX queue flags, where 0 <= N <= 0x7FFFFFFF. The default value is 0.
NOTE:
When using hardware offload functions such as vlan or checksum add
txqflags=0to force the full-featured TX code path. In some PMDs this may already be the default.
- •
-
--rx-queue-stats-mapping=(port,queue,mapping)[,(port,queue,mapping)]Set the RX queues statistics counters mapping 0 <= mapping <= 15.
- •
-
--tx-queue-stats-mapping=(port,queue,mapping)[,(port,queue,mapping)]Set the TX queues statistics counters mapping 0 <= mapping <= 15.
- •
-
--no-flush-rxDon't flush the RX streams before starting forwarding. Used mainly with the PCAP PMD.
- •
-
--txpkts=X[,Y]Set TX segment sizes or total packet length. Valid for
tx-onlyandflowgenforwarding modes.
- •
-
--disable-link-checkDisable check on link status when starting/stopping ports.