blob: e594b6a08a45e5bdb0281fe6b23d45221020c633 [file] [log] [blame]
John DeNisco06dcd452018-07-26 12:45:10 -04001.. _startup:
2
John DeNisco4f859682019-12-10 14:25:50 -05003==========================================
4VPP Configuration - CLI and 'startup.conf'
5==========================================
John DeNisco06dcd452018-07-26 12:45:10 -04006
7After a successful installation, VPP installs a startup config file named
John DeNiscoc64ba6d2018-08-02 15:03:15 -04008*startup.conf* in the */etc/vpp/* directory. This file can be tailored to
John DeNisco06dcd452018-07-26 12:45:10 -04009make VPP run as desired, but contains default values for typical installations.
John DeNiscoc64ba6d2018-08-02 15:03:15 -040010
John DeNisco4f859682019-12-10 14:25:50 -050011Below are more details about this file and some of the the parameters and values
12it contains.
John DeNisco06dcd452018-07-26 12:45:10 -040013
14Command-line Arguments
15----------------------
16
John DeNisco4f859682019-12-10 14:25:50 -050017Before we describe details of the startup configuration file (startup.conf) it
18should be mentioned that VPP can be started without a startup configuration
19file.
20
John DeNisco06dcd452018-07-26 12:45:10 -040021Parameters are grouped by a section name. When providing more than one
22parameter to a section, all parameters for that section must be wrapped in
23curly braces. For example, to start VPP with configuration data via the
24command line with the section name *'unix'*:
25
26.. code-block:: console
27
28 $ sudo /usr/bin/vpp unix { interactive cli-listen 127.0.0.1:5002 }
29
30The command line can be presented as a single string or as several; anything
31given on the command line is concatenated with spaces into a single string
32before parsing. VPP applications must be able to locate their own executable
33images. The simplest way to ensure this will work is to invoke a VPP
34application by giving its absolute path. For example:
35*'/usr/bin/vpp <options>'* At startup, VPP applications parse through their
36own ELF-sections [primarily] to make lists of init, configuration, and exit
37handlers.
38
39When developing with VPP, in gdb it's often sufficient to start an application
40like this:
41
42.. code-block:: console
43
44 (gdb) run unix interactive
45
John DeNisco06dcd452018-07-26 12:45:10 -040046
John DeNisco4f859682019-12-10 14:25:50 -050047Startup Configuration File (startup.conf)
48-----------------------------------------
49
50The more typical way to specify the startup configuration to VPP is with the
51startup configuration file (startup.conf).
52
53The path of the file is provided to the VPP application on the command line.
54This is typically at /etc/vpp/startup.conf. If VPP is installed as a package
55a default startup.conf file is provided at this location.
56
57The format of the configuration file is a simple text file with the same content
58as the command line.
59
60**A very simple startup.conf file:**
John DeNisco06dcd452018-07-26 12:45:10 -040061
62.. code-block:: console
63
64 $ cat /etc/vpp/startup.conf
65 unix {
66 nodaemon
67 log /var/log/vpp/vpp.log
68 full-coredump
69 cli-listen localhost:5002
70 }
John DeNisco4f859682019-12-10 14:25:50 -050071
John DeNisco06dcd452018-07-26 12:45:10 -040072 api-trace {
73 on
74 }
John DeNisco4f859682019-12-10 14:25:50 -050075
John DeNisco06dcd452018-07-26 12:45:10 -040076 dpdk {
77 dev 0000:03:00.0
78 }
79
John DeNisco4f859682019-12-10 14:25:50 -050080VPP is instructed to load this file with the -c option. For example:
John DeNisco06dcd452018-07-26 12:45:10 -040081
82.. code-block:: console
83
84 $ sudo /usr/bin/vpp -c /etc/vpp/startup.conf
85
John DeNisco06dcd452018-07-26 12:45:10 -040086Configuration Parameters
87------------------------
88
John DeNisco4f859682019-12-10 14:25:50 -050089Below is the list of some section names and their associated parameters.
90This is not an exhaustive list, but should give you an idea of how VPP can be configured.
91
92For all of the configuration parameters search the source code for instances of
93**VLIB_CONFIG_FUNCTION** and **VLIB_EARLY_CONFIG_FUNCTION**.
John DeNisco06dcd452018-07-26 12:45:10 -040094
95For example, the invocation *'VLIB_CONFIG_FUNCTION (foo_config, "foo")'* will
96cause the function *'foo_config'* to receive all parameters given in a
John DeNisco4f859682019-12-10 14:25:50 -050097parameter block named "foo": "foo { arg1 arg2 arg3 ... }".
John DeNisco06dcd452018-07-26 12:45:10 -040098
John DeNisco4f859682019-12-10 14:25:50 -050099The unix section
100----------------
John DeNisco06dcd452018-07-26 12:45:10 -0400101
John DeNisco4f859682019-12-10 14:25:50 -0500102Configures VPP startup and behavior type attributes, as well and any OS based
John DeNisco06dcd452018-07-26 12:45:10 -0400103attributes.
104
John DeNisco4f859682019-12-10 14:25:50 -0500105.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -0400106
John DeNisco4f859682019-12-10 14:25:50 -0500107 unix {
108 nodaemon
109 log /var/log/vpp/vpp.log
110 full-coredump
111 cli-listen /run/vpp/cli.sock
112 gid vpp
113 }
114
115nodaemon
116^^^^^^^^
117
118Do not fork / background the vpp process. Typical when invoking VPP
119applications from a process monitor. Set by default in the default
120*'startup.conf'* file.
121
122.. code-block:: console
123
124 nodaemon
125
Ruslan Babayeve31820a2020-02-14 17:45:02 -0800126nosyslog
127^^^^^^^^
128
129Disable syslog and log errors to stderr instead. Typical when invoking
130VPP applications from a process monitor like runit or daemontools that
131pipe service's output to a dedicated log service, which will typically
132attach a timestamp and rotate the logs as necessary.
133
134.. code-block:: console
135
136 nosyslog
137
John DeNisco4f859682019-12-10 14:25:50 -0500138interactive
139^^^^^^^^^^^
140
141Attach CLI to stdin/out and provide a debugging command line interface.
142
143.. code-block:: console
144
145 interactive
146
147log <filename>
148^^^^^^^^^^^^^^
149
150Logs the startup configuration and all subsequent CLI commands in filename.
151Very useful in situations where folks don't remember or can't be bothered
152to include CLI commands in bug reports. The default *'startup.conf'* file
153is to write to *'/var/log/vpp/vpp.log'*.
154
155In VPP 18.04, the default log file location was moved from '/tmp/vpp.log'
156to '/var/log/vpp/vpp.log' . The VPP code is indifferent to the file location.
157However, if SELinux is enabled, then the new location is required for the file
158to be properly labeled. Check your local *'startup.conf'* file for the log file
159location on your system.
160
161.. code-block:: console
162
163 log /var/log/vpp/vpp-debug.log
164
165exec | startup-config <filename>
166^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
167
168Read startup operational configuration from filename. The contents of the file
169will be performed as though entered at the CLI. The two keywords are aliases
170for the same function; if both are specified, only the last will have an effect.
171
172A file of CLI commands might look like:
173
174.. code-block:: console
175
176 $ cat /usr/share/vpp/scripts/interface-up.txt
177 set interface state TenGigabitEthernet1/0/0 up
178 set interface state TenGigabitEthernet1/0/1 up
179
180Parameter Example:
181
182.. code-block:: console
183
184 startup-config /usr/share/vpp/scripts/interface-up.txt
185
186gid <number | name>
187^^^^^^^^^^^^^^^^^^^
188
189Sets the effective group ID to the input group ID or group name of the calling
190process.
191
192.. code-block:: console
193
194 gid vpp
195
196full-coredump
197^^^^^^^^^^^^^
198
199Ask the Linux kernel to dump all memory-mapped address regions, instead of
200just text+data+bss.
201
202.. code-block:: console
203
204 full-coredump
205
206coredump-size unlimited | <n>G | <n>M | <n>K | <n>
207^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
208
John DeNisco06dcd452018-07-26 12:45:10 -0400209 Set the maximum size of the coredump file. The input value can be set in
210 GB, MB, KB or bytes, or set to *'unlimited'*.
John DeNisco4f859682019-12-10 14:25:50 -0500211
212.. code-block:: console
213
214 coredump-size unlimited
215
216cli-listen <ipaddress:port> | <socket-path>
217^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
218
John DeNisco06dcd452018-07-26 12:45:10 -0400219 Bind the CLI to listen at address localhost on TCP port 5002. This will
220 accept an ipaddress:port pair or a filesystem path; in the latter case a
221 local Unix socket is opened instead. The default *'startup.conf'* file
222 is to open the socket *'/run/vpp/cli.sock'*.
John DeNisco4f859682019-12-10 14:25:50 -0500223
224.. code-block:: console
225
226 cli-listen localhost:5002
227 cli-listen /run/vpp/cli.sock
228
229cli-line-mode
230^^^^^^^^^^^^^
231
John DeNisco06dcd452018-07-26 12:45:10 -0400232 Disable character-by-character I/O on stdin. Useful when combined with,
233 for example, emacs M-x gud-gdb.
John DeNisco4f859682019-12-10 14:25:50 -0500234
235.. code-block:: console
236
237 cli-line-mode
238
239cli-prompt <string>
240^^^^^^^^^^^^^^^^^^^
241
John DeNisco06dcd452018-07-26 12:45:10 -0400242 Configure the CLI prompt to be string.
John DeNisco4f859682019-12-10 14:25:50 -0500243
244.. code-block:: console
245
246 cli-prompt vpp-2
247
248cli-history-limit <n>
249^^^^^^^^^^^^^^^^^^^^^
250
Paul Vinciguerra7fa3dd22019-10-27 17:28:10 -0400251 Limit command history to <n> lines. A value of 0 disables command history.
John DeNisco06dcd452018-07-26 12:45:10 -0400252 Default value: 50
John DeNisco4f859682019-12-10 14:25:50 -0500253
254.. code-block:: console
255
256 cli-history-limit 100
257
258cli-no-banner
259^^^^^^^^^^^^^
260
John DeNisco06dcd452018-07-26 12:45:10 -0400261 Disable the login banner on stdin and Telnet connections.
John DeNisco4f859682019-12-10 14:25:50 -0500262
263.. code-block:: console
264
265 cli-no-banner
266
267cli-no-pager
268^^^^^^^^^^^^
269
John DeNisco06dcd452018-07-26 12:45:10 -0400270 Disable the output pager.
John DeNisco4f859682019-12-10 14:25:50 -0500271
272.. code-block:: console
273
274 cli-no-pager
275
276cli-pager-buffer-limit <n>
277^^^^^^^^^^^^^^^^^^^^^^^^^^
278
John DeNisco06dcd452018-07-26 12:45:10 -0400279 Limit pager buffer to <n> lines of output. A value of 0 disables the
280 pager. Default value: 100000
John DeNisco4f859682019-12-10 14:25:50 -0500281
282.. code-block:: console
283
284 cli-pager-buffer-limit 5000
285
286runtime-dir <dir>
287^^^^^^^^^^^^^^^^^
288
John DeNisco06dcd452018-07-26 12:45:10 -0400289 Set the runtime directory, which is the default location for certain
290 files, like socket files. Default is based on User ID used to start VPP.
291 Typically it is *'root'*, which defaults to *'/run/vpp/'*. Otherwise,
292 defaults to *'/run/user/<uid>/vpp/'*.
John DeNisco06dcd452018-07-26 12:45:10 -0400293
294.. code-block:: console
295
John DeNisco4f859682019-12-10 14:25:50 -0500296 runtime-dir /tmp/vpp
297
298poll-sleep-usec <n>
299^^^^^^^^^^^^^^^^^^^
300
301 Add a fixed-sleep between main loop poll. Default is 0, which is not to
302 sleep.
303
304.. code-block:: console
305
306 poll-sleep-usec 100
307
308pidfile <filename>
309^^^^^^^^^^^^^^^^^^
310
311 Writes the pid of the main thread in the given filename.
312
313.. code-block:: console
314
315 pidfile /run/vpp/vpp1.pid
John DeNisco06dcd452018-07-26 12:45:10 -0400316
317
John DeNisco4f859682019-12-10 14:25:50 -0500318The api-trace Section
319---------------------
John DeNisco06dcd452018-07-26 12:45:10 -0400320
John DeNisco4f859682019-12-10 14:25:50 -0500321The ability to trace, dump, and replay control-plane API traces makes all the
322difference in the world when trying to understand what the control-plane has
323tried to ask the forwarding-plane to do.
324
325Typically, one simply enables the API message trace scheme:
326
327.. code-block:: console
328
329 api-trace {
330 api-trace on
331 }
332
333on | enable
334^^^^^^^^^^^
335
336 Enable API trace capture from the beginning of time, and arrange for a
337 post-mortem dump of the API trace if the application terminates abnormally.
338 By default, the (circular) trace buffer will be configured to capture
339 256K traces. The default *'startup.conf'* file has trace enabled by default,
340 and unless there is a very strong reason, it should remain enabled.
341
342.. code-block:: console
343
344 on
345
346nitems <n>
347^^^^^^^^^^
348
349 Configure the circular trace buffer to contain the last <n> entries. By
350 default, the trace buffer captures the last 256K API messages received.
351
352.. code-block:: console
353
354 nitems 524288
355
356save-api-table <filename>
357^^^^^^^^^^^^^^^^^^^^^^^^^
358
359 Dumps the API message table to /tmp/<filename>.
360
361.. code-block:: console
362
363 save-api-table apiTrace-07-04.txt
364
365
366The api-segment Section
367-----------------------
368
369These values control various aspects of the binary API interface to VPP.
370
371The default looks like the following:
372
373.. code-block:: console
374
375 api-segment {
376 gid vpp
377 }
378
379
380prefix <path>
381^^^^^^^^^^^^^
382
383 Sets the prefix prepended to the name used for shared memory (SHM)
384 segments. The default is empty, meaning shared memory segments are created
385 directly in the SHM directory *'/dev/shm'*. It is worth noting that on
386 many systems *'/dev/shm'* is a symbolic link to somewhere else in the file
387 system; Ubuntu links it to *'/run/shm'*.
388
389.. code-block:: console
390
391 prefix /run/shm
392
393uid <number | name>
394^^^^^^^^^^^^^^^^^^^
395
396 Sets the user ID or name that should be used to set the ownership of the
397 shared memory segments. Defaults to the same user that VPP is started
398 with, probably root.
399
400.. code-block:: console
401
402 uid root
403
404gid <number | name>
405^^^^^^^^^^^^^^^^^^^
406
407 Sets the group ID or name that should be used to set the ownership of the
408 shared memory segments. Defaults to the same group that VPP is started
409 with, probably root.
410
411.. code-block:: console
412
413 gid vpp
414
415**The following parameters should only be set by those that are familiar with the
416interworkings of VPP.**
417
418baseva <x>
419^^^^^^^^^^
420
421 Set the base address for SVM global region. If not set, on AArch64, the
422 code will try to determine the base address. All other default to
423 0x30000000.
424
425.. code-block:: console
426
427 baseva 0x20000000
428
429global-size <n>G | <n>M | <n>
430^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
431
432 Set the global memory size, memory shared across all router instances,
433 packet buffers, etc. If not set, defaults to 64M. The input value can be
434 set in GB, MB or bytes.
435
436.. code-block:: console
437
438 global-size 2G
439
440global-pvt-heap-size <n>M | size <n>
441^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
442
443 Set the size of the global VM private mheap. If not set, defaults to 128k.
444 The input value can be set in MB or bytes.
445
446.. code-block:: console
447
448 global-pvt-heap-size size 262144
449
450api-pvt-heap-size <n>M | size <n>
451^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
452
453 Set the size of the api private mheap. If not set, defaults to 128k.
454 The input value can be set in MB or bytes.
455
456.. code-block:: console
457
458 api-pvt-heap-size 1M
459
460api-size <n>M | <n>G | <n>
461^^^^^^^^^^^^^^^^^^^^^^^^^^
462
463 Set the size of the API region. If not set, defaults to 16M. The input
464 value can be set in GB, MB or bytes.
465
466.. code-block:: console
467
468 api-size 64M
469
470The socksvr Section
471-------------------
472
473Enables a Unix domain socket which processes binary API messages. See
474.../vlibmemory/socket_api.c. If this parameter is not set, vpp
475won't process binary API messages over sockets.
476
477.. code-block:: console
478
479 socksvr {
480 # Explicitly name a socket file
481 socket-name /run/vpp/api.sock
482 or
483 # Use defaults as described below
484 default
485 }
486
487The "default" keyword instructs vpp to use /run/vpp/api.sock when
488running as root, otherwise to use /run/user/<uid>/api.sock.
489
490The cpu Section
491---------------
492
493In the VPP there is one main thread and optionally the user can create worker(s)
494The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically
495
496.. code-block:: console
497
498 cpu {
499 main-core 1
500 corelist-workers 2-3,18-19
501 }
502
503
504Manual pinning of thread(s) to CPU core(s)
505^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
506
507main-core
508^^^^^^^^^
509
510Set logical CPU core where main thread runs, if main core is not set VPP will use
511core 1 if available
512
513.. code-block:: console
514
515 main-core 1
516
517corelist-workers
518^^^^^^^^^^^^^^^^
519
520Set logical CPU core(s) where worker threads are running
521
522.. code-block:: console
523
524 corelist-workers 2-3,18-19
525
526Automatic pinning of thread(s) to CPU core(s)
527^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
528
529skip-cores number
530^^^^^^^^^^^^^^^^^
531
532Sets number of CPU core(s) to be skipped (1 ... N-1), Skipped CPU core(s) are
533not used for pinning main thread and working thread(s).
534
535The main thread is automatically pinned to the first available CPU core and worker(s)
536are pinned to next free CPU core(s) after core assigned to main thread
537
538.. code-block:: console
539
540 skip-cores 4
541
542workers number
543^^^^^^^^^^^^^^
544
545Specify a number of workers to be created Workers are pinned to N consecutive
546CPU cores while skipping "skip-cores" CPU core(s) and main thread's CPU core
547
548.. code-block:: console
549
550 workers 2
551
552scheduler-policy other | batch | idle | fifo | rr
553^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
554
555Set scheduling policy and priority of main and worker threads
556
557Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)
558idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)
559
560.. code-block:: console
561
562 scheduler-policy fifo
563
564scheduler-priority number
565^^^^^^^^^^^^^^^^^^^^^^^^^
566
567Scheduling priority is used only for "real-time policies (fifo and rr),
568and has to be in the range of priorities supported for a particular policy
569
570.. code-block:: console
571
572 scheduler-priority 50
573
574The buffers Section
575-------------------
576
577.. code-block:: console
578
579 buffers {
580 buffers-per-numa 128000
581 default data-size 2048
Nathan Skrzypczak61559022020-11-23 16:25:21 +0100582 page-size default-hugepage
John DeNisco4f859682019-12-10 14:25:50 -0500583 }
584
585buffers-per-numa number
586^^^^^^^^^^^^^^^^^^^^^^^
587
588Increase number of buffers allocated, needed only in scenarios with
589large number of interfaces and worker threads. Value is per numa node.
590Default is 16384 (8192 if running unpriviledged)
591
592.. code-block:: console
593
594 buffers-per-numa 128000
595
596default data-size number
597^^^^^^^^^^^^^^^^^^^^^^^^
598
599Size of buffer data area, default is 2048
600
601.. code-block:: console
602
603 default data-size 2048
604
Nathan Skrzypczak61559022020-11-23 16:25:21 +0100605page-size number
606^^^^^^^^^^^^^^^^
607
608Set the page size for buffer allocation
609
610.. code-block:: console
611
612 page-size 4K
613 page-size 2M
614 page-size 1G
615 page-size default
616 page-size default-hugepage
617
John DeNisco4f859682019-12-10 14:25:50 -0500618
619The dpdk Section
620----------------
621
622.. code-block:: console
623
624 dpdk {
625 dev default {
626 num-rx-desc 512
627 num-tx-desc 512
628 }
629
630 dev 0000:02:00.1 {
631 num-rx-queues 2
632 name eth0
633 }
634 }
635
636dev <pci-dev> | default { .. }
637^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
638
639White-list [as in, attempt to drive] a specific PCI device. PCI-dev is a
640string of the form "DDDD:BB:SS.F" where:
641
642* DDDD = Domain
643* BB = Bus Number
644* SS = Slot number
645* F = Function
646
Paul Vinciguerra5ac392d2020-03-01 01:37:37 -0500647If the keyword **default** is used the values will apply to all the devices.
John DeNisco4f859682019-12-10 14:25:50 -0500648
649This is the same format used in the linux sysfs tree (i.e./sys/bus/pci/devices)
650for PCI device directory names.
651
652.. code-block:: console
653
654 dpdk {
655 dev default {
656 num-rx-desc 512
657 num-tx-desc 512
658 }
659
660dev <pci-dev> { .. }
661^^^^^^^^^^^^^^^^^^^^
662
663Whitelist specific interface by specifying PCI address. When whitelisting specific
664interfaces by specifying PCI address, additional custom parameters can also be
665specified. Valid options include:
666
667.. code-block:: console
668
669 dev 0000:02:00.0
670 dev 0000:03:00.0
671
672blacklist <pci-dev>
673^^^^^^^^^^^^^^^^^^^
674
675Blacklist specific device type by specifying PCI vendor:device Whitelist entries
676take precedence
677
678.. code-block:: console
679
680 blacklist 8086:10fb
681
682name interface-name
683^^^^^^^^^^^^^^^^^^^
684
685Set interface name
686
687.. code-block:: console
688
689 dev 0000:02:00.1 {
690 name eth0
691 }
692
693num-rx-queues <n>
694^^^^^^^^^^^^^^^^^
695
696Number of receive queues. Also enables RSS. Default value is 1.
697
698.. code-block:: console
699
700 dev 0000:02:00.1 {
Paul Vinciguerra5ac392d2020-03-01 01:37:37 -0500701 num-rx-queues <n>
John DeNisco4f859682019-12-10 14:25:50 -0500702 }
703
704num-tx-queues <n>
705^^^^^^^^^^^^^^^^^
706
707Number of transmit queues. Default is equal to number of worker threads
708or 1 if no workers treads.
709
710.. code-block:: console
711
712 dev 000:02:00.1 {
713 num-tx-queues <n>
714 }
715
716num-rx-desc <n>
717^^^^^^^^^^^^^^^
718
719Number of descriptors in receive ring. Increasing or reducing number
720can impact performance. Default is 1024.
721
722.. code-block:: console
723
724 dev 000:02:00.1 {
725 num-rx-desc <n>
726 }
727
728vlan-strip-offload on | off
729^^^^^^^^^^^^^^^^^^^^^^^^^^^
730
731VLAN strip offload mode for interface. VLAN stripping is off by default
732for all NICs except VICs, using ENIC driver, which has VLAN stripping on
733by default.
734
735.. code-block:: console
736
737 dev 000:02:00.1 {
738 vlan-strip-offload on|off
739 }
740
741uio-driver driver-name
742^^^^^^^^^^^^^^^^^^^^^^
743
744Change UIO driver used by VPP, Options are: igb_uio, vfio-pci, uio_pci_generic
745or auto (default)
746
747
748.. code-block:: console
749
750 uio-driver vfio-pci
751
752no-multi-seg
753^^^^^^^^^^^^
754
755Disable multi-segment buffers, improves performance but disables Jumbo MTU support
756
757.. code-block:: console
758
759 no-multi-seg
760
761socket-mem <n>
762^^^^^^^^^^^^^^
763
764Change hugepages allocation per-socket, needed only if there is need for
765larger number of mbufs. Default is 256M on each detected CPU socket
766
767.. code-block:: console
768
769 socket-mem 2048,2048
770
771no-tx-checksum-offload
772^^^^^^^^^^^^^^^^^^^^^^
773
774Disables UDP / TCP TX checksum offload. Typically needed for use faster
775vector PMDs (together with no-multi-seg)
776
777.. code-block:: console
778
779 no-tx-checksum-offload
780
781enable-tcp-udp-checksum
782^^^^^^^^^^^^^^^^^^^^^^^
783
784Enable UDP / TCP TX checksum offload This is the reversed option of
785'no-tx-checksum-offload'
786
787.. code-block:: console
788
789 enable-tcp-udp-checksum
790
791The plugins Section
792-------------------
793
794Configure VPP plugins.
795
796.. code-block:: console
797
798 plugins {
799 path /ws/vpp/build-root/install-vpp-native/vpp/lib/vpp_plugins
800 plugin dpdk_plugin.so enable
801 }
802
803path pathname
804^^^^^^^^^^^^^
805
806Adjust the plugin path depending on where the VPP plugins are.
807
808.. code-block:: console
809
810 path /ws/vpp/build-root/install-vpp-native/vpp/lib/vpp_plugins
811
812plugin plugin-name | default enable | disable
813^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
814
815Disable all plugins by default and then selectively enable specific plugins
816
817.. code-block:: console
818
819 plugin default disable
820 plugin dpdk_plugin.so enable
821 plugin acl_plugin.so enable
822
823Enable all plugins by default and then selectively disable specific plugins
824
825.. code-block:: console
826
827 plugin dpdk_plugin.so disable
828 plugin acl_plugin.so disable
829
830Th statseg Section
831^^^^^^^^^^^^^^^^^^
832
833.. code-block:: console
834
835 statseg {
836 per-node-counters on
837 }
838
839socket-name <filename>
840^^^^^^^^^^^^^^^^^^^^^^
841
842Name of the stats segment socket defaults to /run/vpp/stats.sock.
843
844.. code-block:: console
845
846 socket-name /run/vpp/stats.sock
847
848size <nnn>[KMG]
849^^^^^^^^^^^^^^^
850
851The size of the stats segment, defaults to 32mb
852
853.. code-block:: console
854
855 size 1024M
856
857per-node-counters on | off
858^^^^^^^^^^^^^^^^^^^^^^^^^^
859
860Defaults to none
861
862.. code-block:: console
863
864 per-node-counters on
865
866update-interval <f64-seconds>
867^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
868
869Sets the segment scrape / update interval
870
871.. code-block:: console
872
873 update-interval 300
874
875
876Some Advanced Parameters:
877-------------------------
878
879
880acl-plugin Section
881------------------
John DeNisco06dcd452018-07-26 12:45:10 -0400882
andrew9f0c0202018-08-14 09:35:42 -0400883These parameters change the configuration of the ACL (access control list) plugin,
884such as how the ACL bi-hash tables are initialized.
John DeNisco06dcd452018-07-26 12:45:10 -0400885
andrew9f0c0202018-08-14 09:35:42 -0400886They should only be set by those that are familiar with the interworkings of VPP
887and the ACL Plugin.
888
889The first three parameters, *connection hash buckets*, *connection hash memory*,
890and *connection count max*, set the **connection table per-interface parameters**
891for modifying how the two bounded-index extensible hash tables for
892IPv6 (40\*8 bit key and 8\*8 bit value pairs) and IPv4
893(16\*8 bit key and 8\*8 bit value pairs) **ACL plugin FA interface sessions**
894are initialized.
John DeNisco06dcd452018-07-26 12:45:10 -0400895
John DeNisco4f859682019-12-10 14:25:50 -0500896connection hash buckets <n>
897^^^^^^^^^^^^^^^^^^^^^^^^^^^
898
899Sets the number of hash buckets (rounded up to a power of 2) in each
900of the two bi-hash tables. Defaults to 64\*1024 (65536) hash buckets.
901
902.. code-block:: console
903
904 connection hash buckets 65536
905
906connection hash memory <n>
907^^^^^^^^^^^^^^^^^^^^^^^^^^
908
909Sets the allocated memory size (in bytes) for each of the two bi-hash tables.
910Defaults to 1073741824 bytes.
911
912.. code-block:: console
913
914 connection hash memory 1073741824
915
916connection count max <n>
917^^^^^^^^^^^^^^^^^^^^^^^^
918
919Sets the maximum number of pool elements when allocating each per-worker
920pool of sessions for both bi-hash tables. Defaults to 500000 elements in each pool.
921
922.. code-block:: console
923
924 connection count max 500000
925
926main heap size <n>G | <n>M | <n>K | <n>
927^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
928
929Sets the size of the main memory heap that holds all the ACL module related
930allocations (other than hash.) Default size is 0, but during
931ACL heap initialization is equal to
932*per_worker_size_with_slack * tm->n_vlib_mains + bihash_size + main_slack*.
933Note that these variables are partially based on the
934**connection table per-interface parameters** mentioned above.
935
936.. code-block:: console
937
938 main heap size 3G
John DeNisco06dcd452018-07-26 12:45:10 -0400939
andrew9f0c0202018-08-14 09:35:42 -0400940The next three parameters, *hash lookup heap size*, *hash lookup hash buckets*,
941and *hash lookup hash memory*, modify the initialization of the bi-hash lookup
942table used by the ACL plugin. This table is initialized when attempting to apply
943an ACL to the existing vector of ACLs looked up during packet processing
944(but it is found that the table does not exist / has not been initialized yet.)
John DeNisco4f859682019-12-10 14:25:50 -0500945
946hash lookup heap size <n>G | <n>M | <n> K | <n>
947^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
948
949Sets the size of the memory heap that holds all the miscellaneous allocations
950related to hash-based lookups. Default size is 67108864 bytes.
951
952.. code-block:: console
953
954 hash lookup heap size 70M
955
956hash lookup hash buckets <n>
957^^^^^^^^^^^^^^^^^^^^^^^^^^^^
958
959Sets the number of hash buckets (rounded up to a power of 2) in the bi-hash
960lookup table. Defaults to 65536 hash buckets.
961
962.. code-block:: console
963
964 hash lookup hash buckets 65536
965
966hash lookup hash memory <n>
967^^^^^^^^^^^^^^^^^^^^^^^^^^^
968
969Sets the allocated memory size (in bytes) for the bi-hash lookup table.
970Defaults to 67108864 bytes.
971
972.. code-block:: console
973
974 hash lookup hash memory 67108864
975
976use tuple merge <n>
977^^^^^^^^^^^^^^^^^^^
978
979Sets a boolean value indicating whether or not to use TupleMerge
980for hash ACL's. Defaults to 1 (true), meaning the default implementation
981of hashing ACL's does use TupleMerge.
982
983.. code-block:: console
984
985 use tuple merge 1
986
987tuple merge split threshold <n>
988^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
989
990Sets the maximum amount of rules (ACE's) that can collide in a bi-hash
991lookup table before the table is split into two new tables. Splitting ensures
992less rule collisions by hashing colliding rules based on their common tuple
993(usually their maximum common tuple.) Splitting occurs when the
994*length of the colliding rules vector* is greater than this threshold amount.
995Defaults to a maximum of 39 rule collisions per table.
996
997.. code-block:: console
998
999 tuple merge split threshold 30
1000
1001reclassify sessions <n>
1002^^^^^^^^^^^^^^^^^^^^^^^
1003
1004Sets a boolean value indicating whether or not to take the epoch of the session
1005into account when dealing with re-applying ACL's or changing already applied ACL's.
1006Defaults to 0 (false), meaning the default implementation does NOT take the
1007epoch of the session into account.
1008
1009.. code-block:: console
1010
1011 reclassify sessions 1
John DeNisco06dcd452018-07-26 12:45:10 -04001012
1013.. _api-queue:
1014
John DeNisco4f859682019-12-10 14:25:50 -05001015api-queue Section
1016-----------------
John DeNisco06dcd452018-07-26 12:45:10 -04001017
John DeNisco4f859682019-12-10 14:25:50 -05001018length <n>
1019^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001020
John DeNisco4f859682019-12-10 14:25:50 -05001021Sets the api queue length. Minimum valid queue length is 1024, which is
1022also the default.
John DeNisco06dcd452018-07-26 12:45:10 -04001023
John DeNisco4f859682019-12-10 14:25:50 -05001024.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001025
John DeNisco4f859682019-12-10 14:25:50 -05001026 length 2048
John DeNisco06dcd452018-07-26 12:45:10 -04001027
1028.. _cj:
1029
John DeNisco4f859682019-12-10 14:25:50 -05001030cj Section
1031----------
John DeNisco06dcd452018-07-26 12:45:10 -04001032
1033The circular journal (CJ) thread-safe circular log buffer scheme is
1034occasionally useful when chasing bugs. Calls to it should not be checked in.
1035See .../vlib/vlib/unix/cj.c. The circular journal is disables by default.
1036When enabled, the number of records must be provided, there is no default
1037value.
1038
John DeNisco4f859682019-12-10 14:25:50 -05001039records <n>
1040^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001041
John DeNisco4f859682019-12-10 14:25:50 -05001042Configure the number of circular journal records in the circular buffer.
1043The number of records should be a power of 2.
John DeNisco06dcd452018-07-26 12:45:10 -04001044
John DeNisco4f859682019-12-10 14:25:50 -05001045.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001046
John DeNisco4f859682019-12-10 14:25:50 -05001047 records 131072
John DeNisco06dcd452018-07-26 12:45:10 -04001048
John DeNisco4f859682019-12-10 14:25:50 -05001049on
1050^^
John DeNisco06dcd452018-07-26 12:45:10 -04001051
John DeNisco4f859682019-12-10 14:25:50 -05001052Turns on logging at the earliest possible moment.
John DeNisco06dcd452018-07-26 12:45:10 -04001053
John DeNisco4f859682019-12-10 14:25:50 -05001054.. code-block:: console
1055
1056 on
1057
1058dns Section
1059-----------
1060
1061max-cache-size <n>
1062^^^^^^^^^^^^^^^^^^
1063
1064Set the maximum number of active elements allowed in the pool of
1065dns cache entries. When resolving an expired entry or adding a new
1066static entry and the max number of active entries is reached,
1067a random, non-static entry is deleted. Defaults to 65535 entries.
1068
1069.. code-block:: console
1070
1071 max-cache-size 65535
1072
Paul Vinciguerra491741a2020-03-02 16:10:54 -05001073
1074ethernet Section
1075-----------------
1076
1077default-mtu <n>
1078^^^^^^^^^^^^^^^
1079
1080Specifies the default MTU size for Ethernet interfaces. Must be in
1081the range of 64-9000. The default is 9000.
1082
1083.. code-block:: console
1084
1085 default-mtu 1500
1086
John DeNisco4f859682019-12-10 14:25:50 -05001087heapsize Section
1088-----------------
John DeNisco06dcd452018-07-26 12:45:10 -04001089
1090Heapsize configuration controls the size of the main heap. The heap size is
1091configured very early in the boot sequence, before loading plug-ins or doing
1092much of anything else.
1093
John DeNisco4f859682019-12-10 14:25:50 -05001094heapsize <n>M | <n>G
1095^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001096
Dave Barach2fef3df2020-02-21 17:31:17 -05001097Specifies the size of the heap in MB or GB. The default is 1GB.
John DeNisco06dcd452018-07-26 12:45:10 -04001098
John DeNisco4f859682019-12-10 14:25:50 -05001099.. code-block:: console
1100
1101 heapsize 2G
1102
1103ip Section
1104----------
John DeNisco06dcd452018-07-26 12:45:10 -04001105
1106IPv4 heap configuration. he heap size is configured very early in the boot
1107sequence, before loading plug-ins or doing much of anything else.
1108
John DeNisco4f859682019-12-10 14:25:50 -05001109heap-size <n>G | <n>M | <n>K | <n>
1110^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001111
John DeNisco4f859682019-12-10 14:25:50 -05001112Set the IPv4 mtrie heap size, which is the amount of memory dedicated to
1113the destination IP lookup table. The input value can be set in GB, MB, KB
1114or bytes. The default value is 32MB.
John DeNisco06dcd452018-07-26 12:45:10 -04001115
John DeNisco4f859682019-12-10 14:25:50 -05001116.. code-block:: console
1117
1118 heap-size 64M
1119
1120ip6 Section
1121-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001122
1123IPv6 heap configuration. he heap size is configured very early in the boot
1124sequence, before loading plug-ins or doing much of anything else.
1125
1126
John DeNisco4f859682019-12-10 14:25:50 -05001127heap-size <n>G | <n>M | <n>K | <n>
1128^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001129
John DeNisco4f859682019-12-10 14:25:50 -05001130Set the IPv6 forwarding table heap size. The input value can be set in GB,
1131MB, KB or bytes. The default value is 32MB.
John DeNisco06dcd452018-07-26 12:45:10 -04001132
John DeNisco4f859682019-12-10 14:25:50 -05001133.. code-block:: console
1134
1135 heap-size 64M
1136
1137hash-buckets <n>
1138^^^^^^^^^^^^^^^^
1139
1140Set the number of IPv6 forwarding table hash buckets. The default value is
114164K (65536).
1142
1143.. code-block:: console
1144
1145 hash-buckets 131072
1146
1147l2learn Section
1148---------------
John DeNisco06dcd452018-07-26 12:45:10 -04001149
1150Configure Layer 2 MAC Address learning parameters.
1151
John DeNisco4f859682019-12-10 14:25:50 -05001152limit <n>
1153^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001154
John DeNisco4f859682019-12-10 14:25:50 -05001155Configures the number of L2 (MAC) addresses in the L2 FIB at any one time,
1156which limits the size of the L2 FIB to <n> concurrent entries. Defaults to
11574M entries (4194304).
John DeNisco06dcd452018-07-26 12:45:10 -04001158
John DeNisco4f859682019-12-10 14:25:50 -05001159.. code-block:: console
1160
1161 limit 8388608
1162
1163l2tp Section
1164------------
John DeNisco06dcd452018-07-26 12:45:10 -04001165
1166IPv6 Layer 2 Tunnelling Protocol Version 3 (IPv6-L2TPv3) configuration controls
1167the method used to locate a specific IPv6-L2TPv3 tunnel. The following settings
1168are mutually exclusive:
1169
John DeNisco4f859682019-12-10 14:25:50 -05001170lookup-v6-src
1171^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001172
John DeNisco4f859682019-12-10 14:25:50 -05001173Lookup tunnel by IPv6 source address.
John DeNisco06dcd452018-07-26 12:45:10 -04001174
John DeNisco4f859682019-12-10 14:25:50 -05001175.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001176
John DeNisco4f859682019-12-10 14:25:50 -05001177 lookup-v6-src
John DeNisco06dcd452018-07-26 12:45:10 -04001178
John DeNisco4f859682019-12-10 14:25:50 -05001179lookup-v6-dst
1180^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001181
John DeNisco4f859682019-12-10 14:25:50 -05001182Lookup tunnel by IPv6 destination address.
John DeNisco06dcd452018-07-26 12:45:10 -04001183
John DeNisco4f859682019-12-10 14:25:50 -05001184.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001185
John DeNisco4f859682019-12-10 14:25:50 -05001186 lookup-v6-dst
1187
1188lookup-session-id
1189^^^^^^^^^^^^^^^^^
1190
1191Lookup tunnel by L2TPv3 session identifier.
1192
1193.. code-block:: console
1194
1195 lookup-session-id
1196
1197logging Section
1198---------------
1199
1200size <n>
1201^^^^^^^^
1202
1203Number of entries in the global logging buffer. Defaults to 512.
1204
1205.. code-block:: console
1206
1207 size 512
1208
1209nthrottle-time <n>
1210^^^^^^^^^^^^^^^^^^
1211
1212Set the global value for the time to wait (in seconds) before resuming
1213logging of a log subclass that exceeded the per-subclass message-per-second
1214threshold. Defaults to 3.
1215
1216.. code-block:: console
1217
1218 unthrottle-time 3
1219
1220default-log-level emerg|alert | crit | err | warn | notice | info | debug | disabled
1221^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1222
1223Set the default logging level of the system log. Defaults to notice.
1224
1225.. code-block:: console
1226
1227 default-log-level notice
1228
1229default-syslog-log-level emerg|alert | crit | err | warn | notice | info | debug | disabled
1230^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1231
1232Set the default logging level of the syslog target. Defaults to warning.
1233
1234.. code-block:: console
1235
1236 default-syslog-log-level warning
1237
1238mactime Section
1239---------------
1240
1241lookup-table-buckets <n>
1242^^^^^^^^^^^^^^^^^^^^^^^^
1243
1244Sets the number of hash buckets in the mactime bi-hash lookup table.
1245Defaults to 128 buckets.
1246
1247.. code-block:: console
1248
1249 lookup-table-buckets 128
1250
1251lookup-table-memory <n>G | <n>M | <n>K | <n>
1252^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1253
1254Sets the allocated memory size (in bytes) for the mactime bi-hash lookup table.
1255The input value can be set in GB, MB, KB or bytes. The default value is 262144
1256(256 << 10) bytes or roughly 256KB.
1257
1258.. code-block:: console
1259
1260 lookup-table-memory 300K
1261
1262timezone_offset <n>
1263^^^^^^^^^^^^^^^^^^^
1264
1265Sets the timezone offset from UTC. Defaults to an offset of -5 hours
1266from UTC (US EST / EDT.)
1267
1268.. code-block:: console
1269
1270 timezone_offset -5
John DeNisco06dcd452018-07-26 12:45:10 -04001271
1272"map" Parameters
John DeNisco4f859682019-12-10 14:25:50 -05001273----------------
John DeNisco06dcd452018-07-26 12:45:10 -04001274
John DeNisco4f859682019-12-10 14:25:50 -05001275customer edge
1276^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001277
John DeNisco4f859682019-12-10 14:25:50 -05001278Sets a boolean true to indicate that the MAP node is a Customer Edge (CE)
1279router. The boolean defaults to false, meaning the MAP node is not treated
1280as a CE router.
John DeNisco06dcd452018-07-26 12:45:10 -04001281
John DeNisco4f859682019-12-10 14:25:50 -05001282.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001283
John DeNisco4f859682019-12-10 14:25:50 -05001284 customer edge
John DeNisco06dcd452018-07-26 12:45:10 -04001285
John DeNisco4f859682019-12-10 14:25:50 -05001286nat Section
1287-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001288
andrew9f0c0202018-08-14 09:35:42 -04001289These parameters change the configuration of the NAT (Network address translation)
1290plugin, such as how the NAT & NAT64 bi-hash tables are initialized, if the NAT is
1291endpoint dependent, or if the NAT is deterministic.
1292
1293For each NAT per thread data, the following 4 parameters change how certain
1294bi-hash tables are initialized.
1295
John DeNisco4f859682019-12-10 14:25:50 -05001296translation hash buckets <n>
1297^^^^^^^^^^^^^^^^^^^^^^^^^^^^
andrew9f0c0202018-08-14 09:35:42 -04001298
John DeNisco4f859682019-12-10 14:25:50 -05001299Sets the number of hash buckets in each of the two in/out NAT bi-hash lookup
1300tables. Defaults to 1024 buckets.
andrew9f0c0202018-08-14 09:35:42 -04001301
John DeNisco4f859682019-12-10 14:25:50 -05001302If the NAT is indicated to be endpoint dependent, which can be set with the
1303:ref:`endpoint-dependent parameter <endpointLabel>`, then this parameter sets
1304the number of hash buckets in each of the two endpoint dependent sessions
1305NAT bi-hash lookup tables.
1306
1307.. code-block:: console
1308
1309 translation hash buckets 1024
1310
1311translation hash memory <n>
1312^^^^^^^^^^^^^^^^^^^^^^^^^^^
1313
1314Sets the allocated memory size (in bytes) for each of the two in/out NAT
1315bi-hash tables. Defaults to 134217728 (128 << 20) bytes, which is roughly 128 MB.
1316
1317If the NAT is indicated to be endpoint dependent, which can be set with the
1318:ref:`endpoint-dependent parameter <endpointLabel>`, then this parameter sets the
1319allocated memory size for each of the two endpoint dependent sessions NAT bi-hash
1320lookup tables.
1321
1322.. code-block:: console
1323
1324 translation hash memory 134217728
1325
1326user hash buckets <n>
1327^^^^^^^^^^^^^^^^^^^^^
1328
1329Sets the number of hash buckets in the user bi-hash lookup table
1330(src address lookup for a user.) Defaults to 128 buckets.
1331
1332.. code-block:: console
1333
1334 user hash buckets 128
1335
1336user hash memory <n>
1337^^^^^^^^^^^^^^^^^^^^
1338
1339Sets the allocated memory size (in bytes) for the user bi-hash lookup table
1340(src address lookup for a user.) Defaults to 67108864 (64 << 20) bytes,
1341which is roughly 64 MB.
1342
1343.. code-block:: console
1344
1345 user hash memory 67108864
1346
1347max translations per user <n>
1348^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1349
1350Sets the maximum amount of dynamic and/or static NAT sessions each user can have.
1351Defaults to 100. When this limit is reached, the least recently used translation
1352is recycled.
1353
1354.. code-block:: console
1355
1356 max translations per user 50
1357
1358deterministic
1359^^^^^^^^^^^^^
1360
1361Sets a boolean value to 1 indicating that the NAT is deterministic. Defaults to 0,
1362meaning the NAT is not deterministic.
1363
1364.. code-block:: console
1365
1366 deterministic
1367
1368nat64 bib hash buckets <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001369^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001370
1371Sets the number of hash buckets in each of the two in/out NAT64 BIB bi-hash
1372tables. Defaults to 1024 buckets.
1373
1374.. code-block:: console
1375
1376 nat64 bib hash buckets 1024
1377
1378nat64 bib hash memory <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001379^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001380
1381Sets the allocated memory size (in bytes) for each of the two in/out NAT64
1382BIB bi-hash tables. Defaults to 134217728 (128 << 20) bytes,
1383which is roughly 128 MB.
1384
1385.. code-block:: console
1386
1387 nat64 bib hash memory 134217728
1388
1389nat64 st hash buckets <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001390^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001391
1392Sets the number of hash buckets in each of the two in/out NAT64 session table
1393bi-hash tables. Defaults to 2048 buckets.
1394
1395.. code-block:: console
1396
1397 nat64 st hash buckets 2048
1398
1399nat64 st hash memory <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001400^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001401
1402Sets the allocated memory size (in bytes) for each of the two in/out NAT64 session
1403table bi-hash tables. Defaults to 268435456 (256 << 20) bytes, which is roughly
1404256 MB.
1405
1406.. code-block:: console
1407
1408 nat64 st hash memory 268435456
1409
andrew9f0c0202018-08-14 09:35:42 -04001410.. _endpointLabel:
1411
John DeNisco4f859682019-12-10 14:25:50 -05001412endpoint-dependent
1413^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001414
John DeNisco4f859682019-12-10 14:25:50 -05001415Sets a boolean value to 1, indicating that the NAT is endpoint dependent.
1416Defaults to 0, meaning the NAT is not endpoint dependent.
John DeNisco06dcd452018-07-26 12:45:10 -04001417
John DeNisco4f859682019-12-10 14:25:50 -05001418.. code-block:: console
1419
1420 endpoint-dependent
1421
1422oam Section
1423-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001424
1425OAM configuration controls the (ip4-icmp) interval, and number of misses
1426allowed before reporting an oam target down to any registered listener.
1427
John DeNisco4f859682019-12-10 14:25:50 -05001428interval <n.n>
1429^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001430
John DeNisco4f859682019-12-10 14:25:50 -05001431Interval, floating-point seconds, between sending OAM IPv4 ICMP messages.
1432Default is 2.04 seconds.
John DeNisco06dcd452018-07-26 12:45:10 -04001433
John DeNisco4f859682019-12-10 14:25:50 -05001434.. code-block:: console
andrew9f0c0202018-08-14 09:35:42 -04001435
John DeNisco4f859682019-12-10 14:25:50 -05001436 interval 3.5
John DeNisco06dcd452018-07-26 12:45:10 -04001437
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001438physmem Section
1439---------------
1440
1441Configuration parameters used to specify base address and maximum size of
1442the memory allocated for the pmalloc module in VPP. pmalloc is a NUMA-aware,
1443growable physical memory allocator. pmalloc allocates memory for the DPDK
1444memory pool.
1445
1446base-addr <address>
1447^^^^^^^^^^^^^^^^^^^
1448
1449Specify the base address for pmalloc memory space.
1450
1451.. code-block:: console
1452
1453 base-addr 0xfffe00000000
1454
1455max-size <n>G | <n>M | <n>K | <n>
1456^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1457
1458Set the memory size for pmalloc memory space. The default is 16G.
1459
1460.. code-block:: console
1461
1462 max-size 4G
1463
John DeNisco4f859682019-12-10 14:25:50 -05001464tapcli Section
1465--------------
John DeNisco06dcd452018-07-26 12:45:10 -04001466
andrew9f0c0202018-08-14 09:35:42 -04001467Configuration parameters for TAPCLI (dynamic tap interface hookup.)
1468
John DeNisco4f859682019-12-10 14:25:50 -05001469mtu <n>
1470^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001471
John DeNisco4f859682019-12-10 14:25:50 -05001472Sets interface MTU (maximum transmission unit) size in bytes. This size
1473is also related to the number of MTU buffers. Defaults to 1500 bytes.
John DeNisco06dcd452018-07-26 12:45:10 -04001474
John DeNisco4f859682019-12-10 14:25:50 -05001475.. code-block:: console
1476
1477 mtu 1500
1478
1479disable
1480^^^^^^^
1481
1482Disables TAPCLI. Default is that TAPCLI is enabled.
1483
1484.. code-block:: console
1485
1486 disable
1487
1488
1489tcp Section
1490-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001491
andrew9f0c0202018-08-14 09:35:42 -04001492Configuration parameters for TCP host stack utilities. The following
1493preallocation parameters are related to the initialization of fixed-size,
1494preallocation pools.
1495
John DeNisco4f859682019-12-10 14:25:50 -05001496preallocated-connections <n>
1497^^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001498
John DeNisco4f859682019-12-10 14:25:50 -05001499Sets the number of preallocated TCP connections. Defaults to 0.
1500The preallocated connections per thread is related to this value,
1501equal to (preallocated_connections / (num_threads - 1)).
John DeNisco06dcd452018-07-26 12:45:10 -04001502
John DeNisco4f859682019-12-10 14:25:50 -05001503.. code-block:: console
1504
1505 preallocated-connections 5
1506
1507preallocated-half-open-connections <n>
1508^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1509
1510Sets the number of preallocated TCP half-open connections. Defaults to 0.
1511
1512.. code-block:: console
1513
1514 preallocated-half-open-connections 5
1515
1516buffer-fail-fraction <n.n>
1517^^^^^^^^^^^^^^^^^^^^^^^^^^
1518
1519Sets the TCP buffer fail fraction (a float) used for fault-injection
1520when debugging TCP buffer allocation. Its use is found in *tcp_debug.h*.
1521Defaults to 0.0.
1522
1523.. code-block:: console
1524
1525 buffer-fail-fraction 0.0
1526
1527
1528tls Section
1529-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001530
andrew9f0c0202018-08-14 09:35:42 -04001531Configures TLS parameters, such as enabling the use of test certificates.
1532These parameters affect the tlsmbedtls and tlsopenssl plugins.
1533
John DeNisco4f859682019-12-10 14:25:50 -05001534use-test-cert-in-ca
1535^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001536
John DeNisco4f859682019-12-10 14:25:50 -05001537Sets a boolean value to 1 to indicate during the initialization of a
1538TLS CA chain to attempt to parse and add test certificates to the chain.
1539Defaults to 0, meaning test certificates are not used.
John DeNisco06dcd452018-07-26 12:45:10 -04001540
John DeNisco4f859682019-12-10 14:25:50 -05001541.. code-block:: console
1542
1543 use-test-cert-in-ca
1544
1545ca-cert-path <filename>
1546^^^^^^^^^^^^^^^^^^^^^^^
1547
1548Sets the filename path of the location of TLS CA certificates, used when
1549initializing and loading TLS CA certificates during the initialization
1550of a TLS CA chain. If not set, the default filename path is
1551*/etc/ssl/certs/ca-certificates.crt*.
1552
1553.. code-block:: console
1554
1555 ca-cert-path /etc/ssl/certs/ca-certificates.crt
1556
1557
1558tuntap Section
1559--------------
John DeNisco06dcd452018-07-26 12:45:10 -04001560
1561The "tuntap" driver configures a point-to-point interface between the vpp
1562engine and the local Linux kernel stack. This allows e.g. users to ssh to the
1563host | VM | container via vpp "revenue" interfaces. It's marginally useful, and
1564is currently disabled by default. To [dynamically] create TAP interfaces - the
1565preferred scheme - see the "tap_connect" binary API. The Linux network stack
1566"vnet" interface needs to manually configure, and VLAN and other settings if
1567desired.
1568
John DeNisco06dcd452018-07-26 12:45:10 -04001569
John DeNisco4f859682019-12-10 14:25:50 -05001570enable|disable
1571^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001572
John DeNisco4f859682019-12-10 14:25:50 -05001573Enable or disable the tun/tap driver.
John DeNisco06dcd452018-07-26 12:45:10 -04001574
John DeNisco4f859682019-12-10 14:25:50 -05001575.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001576
John DeNisco4f859682019-12-10 14:25:50 -05001577 enable
1578
1579ethernet|ether
1580^^^^^^^^^^^^^^
1581
1582Create a tap device (ethernet MAC) instead of a tun device (point-to-point
1583tunnel). The two keywords are aliases for the same function.
1584
1585.. code-block:: console
1586
1587 ethernet
1588
1589have-normal-interface|have-normal
1590^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1591
1592Treat the host Linux stack as a routing peer instead of programming VPP
1593interface L3 addresses onto the tun/tap devices. The two keywords are
1594aliases for the same function.
1595
1596.. code-block:: console
1597
1598 have-normal-interface
1599
1600name <name>
1601^^^^^^^^^^^
1602
1603Assign name to the tun/tap device.
1604
1605.. code-block:: console
1606
1607 name vpp1
1608
1609
1610vhost-user Section
1611------------------
John DeNisco06dcd452018-07-26 12:45:10 -04001612
1613Vhost-user configuration parameters control the vhost-user driver.
1614
John DeNisco4f859682019-12-10 14:25:50 -05001615coalesce-frames <n>
1616^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001617
John DeNisco4f859682019-12-10 14:25:50 -05001618Subject to deadline-timer expiration - see next item - attempt to transmit
1619at least <n> packet frames. Default is 32 frames.
John DeNisco06dcd452018-07-26 12:45:10 -04001620
John DeNisco4f859682019-12-10 14:25:50 -05001621.. code-block:: console
1622
1623 coalesce-frames 64
1624
1625coalesce-time <seconds>
1626^^^^^^^^^^^^^^^^^^^^^^^
1627
1628Hold packets no longer than (floating-point) seconds before transmitting
1629them. Default is 0.001 seconds
1630
1631.. code-block:: console
1632
1633 coalesce-time 0.002
1634
1635dont-dump-memory
1636^^^^^^^^^^^^^^^^
1637
1638vhost-user shared-memory segments can add up to a large amount of memory, so
1639it's handy to avoid adding them to corefiles when using a significant number
1640of such interfaces.
1641
1642.. code-block:: console
1643
1644 dont-dump-memory
1645
1646
1647vlib Section
1648------------
John DeNisco06dcd452018-07-26 12:45:10 -04001649
andrew9f0c0202018-08-14 09:35:42 -04001650These parameters configure VLIB, such as allowing you to choose whether to
1651enable memory traceback or a post-mortem elog dump.
1652
John DeNisco4f859682019-12-10 14:25:50 -05001653memory-trace
1654^^^^^^^^^^^^
1655
1656Enables memory trace (mheap traceback.) Defaults to 0, meaning memory
1657trace is disabled.
1658
1659.. code-block:: console
1660
1661 memory-trace
1662
1663elog-events <n>
1664^^^^^^^^^^^^^^^
1665
1666Sets the number of elements/events (the size) of the event ring
1667(a circular buffer of events.) This number rounds to a power of 2.
1668Defaults to 131072 (128 << 10) elements.
1669
1670.. code-block:: console
1671
1672 elog-events 4096
1673
1674elog-post-mortem-dump
1675^^^^^^^^^^^^^^^^^^^^^
1676
1677Enables the attempt of a post-mortem elog dump to
1678*/tmp/elog_post_mortem.<PID_OF_CALLING_PROCESS>* if os_panic or
1679os_exit is called.
1680
1681.. code-block:: console
1682
1683 elog-post-mortem-dump