]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | .. BSD LICENSE |
2 | Copyright(c) 2010-2014 Intel Corporation. All rights reserved. | |
3 | All rights reserved. | |
4 | ||
5 | Redistribution and use in source and binary forms, with or without | |
6 | modification, are permitted provided that the following conditions | |
7 | are met: | |
8 | ||
9 | * Redistributions of source code must retain the above copyright | |
10 | notice, this list of conditions and the following disclaimer. | |
11 | * Redistributions in binary form must reproduce the above copyright | |
12 | notice, this list of conditions and the following disclaimer in | |
13 | the documentation and/or other materials provided with the | |
14 | distribution. | |
15 | * Neither the name of Intel Corporation nor the names of its | |
16 | contributors may be used to endorse or promote products derived | |
17 | from this software without specific prior written permission. | |
18 | ||
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
20 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
23 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
24 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
25 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
26 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
27 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
30 | ||
31 | Running the Application | |
32 | ======================= | |
33 | ||
34 | EAL Command-line Options | |
35 | ------------------------ | |
36 | ||
37 | The following are the EAL command-line options that can be used in conjunction with the testpmd, | |
38 | or any other DPDK application. | |
39 | See the DPDK Getting Started Guides for more information on these options. | |
40 | ||
41 | * ``-c COREMASK`` | |
42 | ||
43 | Set the hexadecimal bitmask of the cores to run on. | |
44 | ||
45 | * ``-l CORELIST`` | |
46 | ||
47 | List of cores to run on | |
48 | ||
49 | The argument format is ``<c1>[-c2][,c3[-c4],...]`` | |
50 | where ``c1``, ``c2``, etc are core indexes between 0 and 128. | |
51 | ||
52 | * ``--lcores COREMAP`` | |
53 | ||
54 | Map lcore set to physical cpu set | |
55 | ||
56 | The argument format is:: | |
57 | ||
58 | <lcores[@cpus]>[<,lcores[@cpus]>...] | |
59 | ||
60 | Lcore and CPU lists are grouped by ``(`` and ``)`` Within the group. | |
61 | The ``-`` character is used as a range separator and ``,`` is used as a single number separator. | |
62 | The grouping ``()`` can be omitted for single element group. | |
63 | The ``@`` can be omitted if cpus and lcores have the same value. | |
64 | ||
65 | * ``--master-lcore ID`` | |
66 | ||
67 | Core ID that is used as master. | |
68 | ||
69 | * ``-n NUM`` | |
70 | ||
71 | Set the number of memory channels to use. | |
72 | ||
73 | * ``-b, --pci-blacklist domain:bus:devid.func`` | |
74 | ||
75 | Blacklist a PCI devise to prevent EAL from using it. Multiple -b options are allowed. | |
76 | ||
77 | * ``-d LIB.so`` | |
78 | ||
79 | Load an external driver. Multiple -d options are allowed. | |
80 | ||
81 | * ``-w, --pci-whitelist domain:bus:devid:func`` | |
82 | ||
83 | Add a PCI device in white list. | |
84 | ||
85 | * ``-m MB`` | |
86 | ||
87 | Memory to allocate. See also ``--socket-mem``. | |
88 | ||
89 | * ``-r NUM`` | |
90 | ||
91 | Set the number of memory ranks (auto-detected by default). | |
92 | ||
93 | * ``-v`` | |
94 | ||
95 | Display the version information on startup. | |
96 | ||
97 | * ``--xen-dom0`` | |
98 | ||
99 | Support application running on Xen Domain0 without hugetlbfs. | |
100 | ||
101 | * ``--syslog`` | |
102 | ||
103 | Set the syslog facility. | |
104 | ||
105 | * ``--socket-mem`` | |
106 | ||
107 | Set the memory to allocate on specific sockets (use comma separated values). | |
108 | ||
109 | * ``--huge-dir`` | |
110 | ||
111 | Specify the directory where the hugetlbfs is mounted. | |
112 | ||
113 | * ``--proc-type`` | |
114 | ||
115 | Set the type of the current process. | |
116 | ||
117 | * ``--file-prefix`` | |
118 | ||
119 | Prefix for hugepage filenames. | |
120 | ||
121 | * ``-vmware-tsc-map`` | |
122 | ||
123 | Use VMware TSC map instead of native RDTSC. | |
124 | ||
125 | * ``--vdev`` | |
126 | ||
127 | Add a virtual device using the format:: | |
128 | ||
129 | <driver><id>[,key=val, ...] | |
130 | ||
131 | For example:: | |
132 | ||
133 | --vdev 'net_pcap0,rx_pcap=input.pcap,tx_pcap=output.pcap' | |
134 | ||
135 | * ``--base-virtaddr`` | |
136 | ||
137 | Specify base virtual address. | |
138 | ||
139 | * ``--create-uio-dev`` | |
140 | ||
141 | Create ``/dev/uioX`` (usually done by hotplug). | |
142 | ||
143 | * ``--no-shconf`` | |
144 | ||
145 | No shared config (mmap-ed files). | |
146 | ||
147 | * ``--no-pci`` | |
148 | ||
149 | Disable pci. | |
150 | ||
151 | * ``--no-hpet`` | |
152 | ||
153 | Disable hpet. | |
154 | ||
155 | * ``--no-huge`` | |
156 | ||
157 | Use malloc instead of hugetlbfs. | |
158 | ||
159 | ||
160 | Testpmd Command-line Options | |
161 | ---------------------------- | |
162 | ||
163 | The following are the command-line options for the testpmd applications. | |
164 | They must be separated from the EAL options, shown in the previous section, with a ``--`` separator: | |
165 | ||
166 | .. code-block:: console | |
167 | ||
168 | sudo ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=2 | |
169 | ||
170 | The commandline options are: | |
171 | ||
172 | * ``-i, --interactive`` | |
173 | ||
174 | Run testpmd in interactive mode. | |
175 | In this mode, the testpmd starts with a prompt that can be used to start and stop forwarding, | |
176 | configure the application and display stats on the current packet processing session. | |
177 | See :ref:`testpmd_runtime` for more details. | |
178 | ||
179 | In non-interactive mode, | |
180 | the application starts with the configuration specified on the command-line and | |
181 | immediately enters forwarding mode. | |
182 | ||
183 | * ``-h, --help`` | |
184 | ||
185 | Display a help message and quit. | |
186 | ||
187 | * ``-a, --auto-start`` | |
188 | ||
189 | Start forwarding on initialization. | |
190 | ||
191 | * ``--nb-cores=N`` | |
192 | ||
193 | Set the number of forwarding cores, | |
194 | where 1 <= N <= "number of cores" or ``CONFIG_RTE_MAX_LCORE`` from the configuration file. | |
195 | The default value is 1. | |
196 | ||
197 | * ``--nb-ports=N`` | |
198 | ||
199 | Set the number of forwarding ports, | |
200 | where 1 <= N <= "number of ports" on the board or ``CONFIG_RTE_MAX_ETHPORTS`` from the configuration file. | |
201 | The default value is the number of ports on the board. | |
202 | ||
203 | * ``--coremask=0xXX`` | |
204 | ||
205 | Set the hexadecimal bitmask of the cores running the packet forwarding test. | |
206 | The master lcore is reserved for command line parsing only and cannot be masked on for packet forwarding. | |
207 | ||
208 | * ``--portmask=0xXX`` | |
209 | ||
210 | Set the hexadecimal bitmask of the ports used by the packet forwarding test. | |
211 | ||
212 | * ``--numa`` | |
213 | ||
214 | Enable NUMA-aware allocation of RX/TX rings and of RX memory buffers (mbufs). | |
215 | ||
216 | * ``--port-numa-config=(port,socket)[,(port,socket)]`` | |
217 | ||
218 | Specify the socket on which the memory pool to be used by the port will be allocated. | |
219 | ||
220 | * ``--ring-numa-config=(port,flag,socket)[,(port,flag,socket)]`` | |
221 | ||
222 | Specify the socket on which the TX/RX rings for the port will be allocated. | |
223 | Where flag is 1 for RX, 2 for TX, and 3 for RX and TX. | |
224 | ||
225 | * ``--socket-num=N`` | |
226 | ||
227 | Set the socket from which all memory is allocated in NUMA mode, | |
228 | where 0 <= N < number of sockets on the board. | |
229 | ||
230 | * ``--mbuf-size=N`` | |
231 | ||
232 | Set the data size of the mbufs used to N bytes, where N < 65536. The default value is 2048. | |
233 | ||
234 | * ``--total-num-mbufs=N`` | |
235 | ||
236 | Set the number of mbufs to be allocated in the mbuf pools, where N > 1024. | |
237 | ||
238 | * ``--max-pkt-len=N`` | |
239 | ||
240 | Set the maximum packet size to N bytes, where N >= 64. The default value is 1518. | |
241 | ||
242 | * ``--eth-peers-configfile=name`` | |
243 | ||
244 | Use a configuration file containing the Ethernet addresses of the peer ports. | |
245 | The configuration file should contain the Ethernet addresses on separate lines:: | |
246 | ||
247 | XX:XX:XX:XX:XX:01 | |
248 | XX:XX:XX:XX:XX:02 | |
249 | ... | |
250 | ||
251 | ||
252 | * ``--eth-peer=N,XX:XX:XX:XX:XX:XX`` | |
253 | ||
254 | Set the MAC address ``XX:XX:XX:XX:XX:XX`` of the peer port N, | |
255 | where 0 <= N < ``CONFIG_RTE_MAX_ETHPORTS`` from the configuration file. | |
256 | ||
257 | * ``--pkt-filter-mode=mode`` | |
258 | ||
259 | Set Flow Director mode where mode is either ``none`` (the default), ``signature`` or ``perfect``. | |
260 | See :ref:`testpmd_flow_director` for more details. | |
261 | ||
262 | * ``--pkt-filter-report-hash=mode`` | |
263 | ||
264 | Set Flow Director hash match reporting mode where mode is ``none``, ``match`` (the default) or ``always``. | |
265 | ||
266 | * ``--pkt-filter-size=N`` | |
267 | ||
268 | Set Flow Director allocated memory size, where N is 64K, 128K or 256K. | |
269 | Sizes are in kilobytes. The default is 64. | |
270 | ||
271 | * ``--pkt-filter-flexbytes-offset=N`` | |
272 | ||
273 | Set the flexbytes offset. | |
274 | The offset is defined in words (not bytes) counted from the first byte of the destination Ethernet MAC address, | |
275 | where N is 0 <= N <= 32. | |
276 | The default value is 0x6. | |
277 | ||
278 | * ``--pkt-filter-drop-queue=N`` | |
279 | ||
280 | Set the drop-queue. | |
281 | In perfect filter mode, when a rule is added with queue = -1, the packet will be enqueued into the RX drop-queue. | |
282 | If the drop-queue does not exist, the packet is dropped. The default value is N=127. | |
283 | ||
284 | * ``--crc-strip`` | |
285 | ||
286 | Enable hardware CRC stripping. | |
287 | ||
288 | * ``--enable-lro`` | |
289 | ||
290 | Enable large receive offload. | |
291 | ||
292 | * ``--enable-rx-cksum`` | |
293 | ||
294 | Enable hardware RX checksum offload. | |
295 | ||
296 | * ``--enable-scatter`` | |
297 | ||
298 | Enable scatter (multi-segment) RX. | |
299 | ||
300 | * ``--disable-hw-vlan`` | |
301 | ||
302 | Disable hardware VLAN. | |
303 | ||
304 | * ``--disable-hw-vlan-filter`` | |
305 | ||
306 | Disable hardware VLAN filter. | |
307 | ||
308 | * ``--disable-hw-vlan-strip`` | |
309 | ||
310 | Disable hardware VLAN strip. | |
311 | ||
312 | * ``--disable-hw-vlan-extend`` | |
313 | ||
314 | Disable hardware VLAN extend. | |
315 | ||
316 | * ``--enable-drop-en`` | |
317 | ||
318 | Enable per-queue packet drop for packets with no descriptors. | |
319 | ||
320 | * ``--disable-rss`` | |
321 | ||
322 | Disable RSS (Receive Side Scaling). | |
323 | ||
324 | * ``--port-topology=mode`` | |
325 | ||
326 | Set port topology, where mode is ``paired`` (the default) or ``chained``. | |
327 | ||
328 | In ``paired`` mode, the forwarding is between pairs of ports, for example: (0,1), (2,3), (4,5). | |
329 | ||
330 | In ``chained`` mode, the forwarding is to the next available port in the port mask, for example: (0,1), (1,2), (2,0). | |
331 | ||
332 | The ordering of the ports can be changed using the portlist testpmd runtime function. | |
333 | ||
334 | * ``--forward-mode=mode`` | |
335 | ||
336 | Set the forwarding mode where ``mode`` is one of the following:: | |
337 | ||
338 | io (the default) | |
339 | mac | |
340 | mac_swap | |
341 | flowgen | |
342 | rxonly | |
343 | txonly | |
344 | csum | |
345 | icmpecho | |
346 | ieee1588 | |
347 | ||
348 | * ``--rss-ip`` | |
349 | ||
350 | Set RSS functions for IPv4/IPv6 only. | |
351 | ||
352 | * ``--rss-udp`` | |
353 | ||
354 | Set RSS functions for IPv4/IPv6 and UDP. | |
355 | ||
356 | * ``--rxq=N`` | |
357 | ||
358 | Set the number of RX queues per port to N, where 1 <= N <= 65535. | |
359 | The default value is 1. | |
360 | ||
361 | * ``--rxd=N`` | |
362 | ||
363 | Set the number of descriptors in the RX rings to N, where N > 0. | |
364 | The default value is 128. | |
365 | ||
366 | * ``--txq=N`` | |
367 | ||
368 | Set the number of TX queues per port to N, where 1 <= N <= 65535. | |
369 | The default value is 1. | |
370 | ||
371 | * ``--txd=N`` | |
372 | ||
373 | Set the number of descriptors in the TX rings to N, where N > 0. | |
374 | The default value is 512. | |
375 | ||
376 | * ``--burst=N`` | |
377 | ||
378 | Set the number of packets per burst to N, where 1 <= N <= 512. | |
379 | The default value is 16. | |
380 | ||
381 | * ``--mbcache=N`` | |
382 | ||
383 | Set the cache of mbuf memory pools to N, where 0 <= N <= 512. | |
384 | The default value is 16. | |
385 | ||
386 | * ``--rxpt=N`` | |
387 | ||
388 | Set the prefetch threshold register of RX rings to N, where N >= 0. | |
389 | The default value is 8. | |
390 | ||
391 | * ``--rxht=N`` | |
392 | ||
393 | Set the host threshold register of RX rings to N, where N >= 0. | |
394 | The default value is 8. | |
395 | ||
396 | * ``--rxfreet=N`` | |
397 | ||
398 | Set the free threshold of RX descriptors to N, where 0 <= N < value of --rxd. | |
399 | The default value is 0. | |
400 | ||
401 | * ``--rxwt=N`` | |
402 | ||
403 | Set the write-back threshold register of RX rings to N, where N >= 0. | |
404 | The default value is 4. | |
405 | ||
406 | * ``--txpt=N`` | |
407 | ||
408 | Set the prefetch threshold register of TX rings to N, where N >= 0. | |
409 | The default value is 36. | |
410 | ||
411 | * ``--txht=N`` | |
412 | ||
413 | Set the host threshold register of TX rings to N, where N >= 0. | |
414 | The default value is 0. | |
415 | ||
416 | * ``--txwt=N`` | |
417 | ||
418 | Set the write-back threshold register of TX rings to N, where N >= 0. | |
419 | The default value is 0. | |
420 | ||
421 | * ``--txfreet=N`` | |
422 | ||
423 | Set the transmit free threshold of TX rings to N, where 0 <= N <= value of ``--txd``. | |
424 | The default value is 0. | |
425 | ||
426 | * ``--txrst=N`` | |
427 | ||
428 | Set the transmit RS bit threshold of TX rings to N, where 0 <= N <= value of ``--txd``. | |
429 | The default value is 0. | |
430 | ||
431 | * ``--txqflags=0xXXXXXXXX`` | |
432 | ||
433 | Set the hexadecimal bitmask of TX queue flags, where 0 <= N <= 0x7FFFFFFF. | |
434 | The default value is 0. | |
435 | ||
436 | .. note:: | |
437 | ||
438 | When using hardware offload functions such as vlan or checksum | |
439 | add ``txqflags=0`` to force the full-featured TX code path. | |
440 | In some PMDs this may already be the default. | |
441 | ||
442 | ||
443 | * ``--rx-queue-stats-mapping=(port,queue,mapping)[,(port,queue,mapping)]`` | |
444 | ||
445 | Set the RX queues statistics counters mapping 0 <= mapping <= 15. | |
446 | ||
447 | * ``--tx-queue-stats-mapping=(port,queue,mapping)[,(port,queue,mapping)]`` | |
448 | ||
449 | Set the TX queues statistics counters mapping 0 <= mapping <= 15. | |
450 | ||
451 | * ``--no-flush-rx`` | |
452 | ||
453 | Don't flush the RX streams before starting forwarding. Used mainly with the PCAP PMD. | |
454 | ||
455 | * ``--txpkts=X[,Y]`` | |
456 | ||
457 | Set TX segment sizes or total packet length. Valid for ``tx-only`` | |
458 | and ``flowgen`` forwarding modes. | |
459 | ||
460 | * ``--disable-link-check`` | |
461 | ||
462 | Disable check on link status when starting/stopping ports. |