blob: f80d55c03df6d0105ba3ed44e91f06a898f80c00 [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
126interactive
127^^^^^^^^^^^
128
129Attach CLI to stdin/out and provide a debugging command line interface.
130
131.. code-block:: console
132
133 interactive
134
135log <filename>
136^^^^^^^^^^^^^^
137
138Logs the startup configuration and all subsequent CLI commands in filename.
139Very useful in situations where folks don't remember or can't be bothered
140to include CLI commands in bug reports. The default *'startup.conf'* file
141is to write to *'/var/log/vpp/vpp.log'*.
142
143In VPP 18.04, the default log file location was moved from '/tmp/vpp.log'
144to '/var/log/vpp/vpp.log' . The VPP code is indifferent to the file location.
145However, if SELinux is enabled, then the new location is required for the file
146to be properly labeled. Check your local *'startup.conf'* file for the log file
147location on your system.
148
149.. code-block:: console
150
151 log /var/log/vpp/vpp-debug.log
152
153exec | startup-config <filename>
154^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
155
156Read startup operational configuration from filename. The contents of the file
157will be performed as though entered at the CLI. The two keywords are aliases
158for the same function; if both are specified, only the last will have an effect.
159
160A file of CLI commands might look like:
161
162.. code-block:: console
163
164 $ cat /usr/share/vpp/scripts/interface-up.txt
165 set interface state TenGigabitEthernet1/0/0 up
166 set interface state TenGigabitEthernet1/0/1 up
167
168Parameter Example:
169
170.. code-block:: console
171
172 startup-config /usr/share/vpp/scripts/interface-up.txt
173
174gid <number | name>
175^^^^^^^^^^^^^^^^^^^
176
177Sets the effective group ID to the input group ID or group name of the calling
178process.
179
180.. code-block:: console
181
182 gid vpp
183
184full-coredump
185^^^^^^^^^^^^^
186
187Ask the Linux kernel to dump all memory-mapped address regions, instead of
188just text+data+bss.
189
190.. code-block:: console
191
192 full-coredump
193
194coredump-size unlimited | <n>G | <n>M | <n>K | <n>
195^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
196
John DeNisco06dcd452018-07-26 12:45:10 -0400197 Set the maximum size of the coredump file. The input value can be set in
198 GB, MB, KB or bytes, or set to *'unlimited'*.
John DeNisco4f859682019-12-10 14:25:50 -0500199
200.. code-block:: console
201
202 coredump-size unlimited
203
204cli-listen <ipaddress:port> | <socket-path>
205^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
206
John DeNisco06dcd452018-07-26 12:45:10 -0400207 Bind the CLI to listen at address localhost on TCP port 5002. This will
208 accept an ipaddress:port pair or a filesystem path; in the latter case a
209 local Unix socket is opened instead. The default *'startup.conf'* file
210 is to open the socket *'/run/vpp/cli.sock'*.
John DeNisco4f859682019-12-10 14:25:50 -0500211
212.. code-block:: console
213
214 cli-listen localhost:5002
215 cli-listen /run/vpp/cli.sock
216
217cli-line-mode
218^^^^^^^^^^^^^
219
John DeNisco06dcd452018-07-26 12:45:10 -0400220 Disable character-by-character I/O on stdin. Useful when combined with,
221 for example, emacs M-x gud-gdb.
John DeNisco4f859682019-12-10 14:25:50 -0500222
223.. code-block:: console
224
225 cli-line-mode
226
227cli-prompt <string>
228^^^^^^^^^^^^^^^^^^^
229
John DeNisco06dcd452018-07-26 12:45:10 -0400230 Configure the CLI prompt to be string.
John DeNisco4f859682019-12-10 14:25:50 -0500231
232.. code-block:: console
233
234 cli-prompt vpp-2
235
236cli-history-limit <n>
237^^^^^^^^^^^^^^^^^^^^^
238
Paul Vinciguerra7fa3dd22019-10-27 17:28:10 -0400239 Limit command history to <n> lines. A value of 0 disables command history.
John DeNisco06dcd452018-07-26 12:45:10 -0400240 Default value: 50
John DeNisco4f859682019-12-10 14:25:50 -0500241
242.. code-block:: console
243
244 cli-history-limit 100
245
246cli-no-banner
247^^^^^^^^^^^^^
248
John DeNisco06dcd452018-07-26 12:45:10 -0400249 Disable the login banner on stdin and Telnet connections.
John DeNisco4f859682019-12-10 14:25:50 -0500250
251.. code-block:: console
252
253 cli-no-banner
254
255cli-no-pager
256^^^^^^^^^^^^
257
John DeNisco06dcd452018-07-26 12:45:10 -0400258 Disable the output pager.
John DeNisco4f859682019-12-10 14:25:50 -0500259
260.. code-block:: console
261
262 cli-no-pager
263
264cli-pager-buffer-limit <n>
265^^^^^^^^^^^^^^^^^^^^^^^^^^
266
John DeNisco06dcd452018-07-26 12:45:10 -0400267 Limit pager buffer to <n> lines of output. A value of 0 disables the
268 pager. Default value: 100000
John DeNisco4f859682019-12-10 14:25:50 -0500269
270.. code-block:: console
271
272 cli-pager-buffer-limit 5000
273
274runtime-dir <dir>
275^^^^^^^^^^^^^^^^^
276
John DeNisco06dcd452018-07-26 12:45:10 -0400277 Set the runtime directory, which is the default location for certain
278 files, like socket files. Default is based on User ID used to start VPP.
279 Typically it is *'root'*, which defaults to *'/run/vpp/'*. Otherwise,
280 defaults to *'/run/user/<uid>/vpp/'*.
John DeNisco06dcd452018-07-26 12:45:10 -0400281
282.. code-block:: console
283
John DeNisco4f859682019-12-10 14:25:50 -0500284 runtime-dir /tmp/vpp
285
286poll-sleep-usec <n>
287^^^^^^^^^^^^^^^^^^^
288
289 Add a fixed-sleep between main loop poll. Default is 0, which is not to
290 sleep.
291
292.. code-block:: console
293
294 poll-sleep-usec 100
295
296pidfile <filename>
297^^^^^^^^^^^^^^^^^^
298
299 Writes the pid of the main thread in the given filename.
300
301.. code-block:: console
302
303 pidfile /run/vpp/vpp1.pid
John DeNisco06dcd452018-07-26 12:45:10 -0400304
305
John DeNisco4f859682019-12-10 14:25:50 -0500306The api-trace Section
307---------------------
John DeNisco06dcd452018-07-26 12:45:10 -0400308
John DeNisco4f859682019-12-10 14:25:50 -0500309The ability to trace, dump, and replay control-plane API traces makes all the
310difference in the world when trying to understand what the control-plane has
311tried to ask the forwarding-plane to do.
312
313Typically, one simply enables the API message trace scheme:
314
315.. code-block:: console
316
317 api-trace {
318 api-trace on
319 }
320
321on | enable
322^^^^^^^^^^^
323
324 Enable API trace capture from the beginning of time, and arrange for a
325 post-mortem dump of the API trace if the application terminates abnormally.
326 By default, the (circular) trace buffer will be configured to capture
327 256K traces. The default *'startup.conf'* file has trace enabled by default,
328 and unless there is a very strong reason, it should remain enabled.
329
330.. code-block:: console
331
332 on
333
334nitems <n>
335^^^^^^^^^^
336
337 Configure the circular trace buffer to contain the last <n> entries. By
338 default, the trace buffer captures the last 256K API messages received.
339
340.. code-block:: console
341
342 nitems 524288
343
344save-api-table <filename>
345^^^^^^^^^^^^^^^^^^^^^^^^^
346
347 Dumps the API message table to /tmp/<filename>.
348
349.. code-block:: console
350
351 save-api-table apiTrace-07-04.txt
352
353
354The api-segment Section
355-----------------------
356
357These values control various aspects of the binary API interface to VPP.
358
359The default looks like the following:
360
361.. code-block:: console
362
363 api-segment {
364 gid vpp
365 }
366
367
368prefix <path>
369^^^^^^^^^^^^^
370
371 Sets the prefix prepended to the name used for shared memory (SHM)
372 segments. The default is empty, meaning shared memory segments are created
373 directly in the SHM directory *'/dev/shm'*. It is worth noting that on
374 many systems *'/dev/shm'* is a symbolic link to somewhere else in the file
375 system; Ubuntu links it to *'/run/shm'*.
376
377.. code-block:: console
378
379 prefix /run/shm
380
381uid <number | name>
382^^^^^^^^^^^^^^^^^^^
383
384 Sets the user ID or name that should be used to set the ownership of the
385 shared memory segments. Defaults to the same user that VPP is started
386 with, probably root.
387
388.. code-block:: console
389
390 uid root
391
392gid <number | name>
393^^^^^^^^^^^^^^^^^^^
394
395 Sets the group ID or name that should be used to set the ownership of the
396 shared memory segments. Defaults to the same group that VPP is started
397 with, probably root.
398
399.. code-block:: console
400
401 gid vpp
402
403**The following parameters should only be set by those that are familiar with the
404interworkings of VPP.**
405
406baseva <x>
407^^^^^^^^^^
408
409 Set the base address for SVM global region. If not set, on AArch64, the
410 code will try to determine the base address. All other default to
411 0x30000000.
412
413.. code-block:: console
414
415 baseva 0x20000000
416
417global-size <n>G | <n>M | <n>
418^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
419
420 Set the global memory size, memory shared across all router instances,
421 packet buffers, etc. If not set, defaults to 64M. The input value can be
422 set in GB, MB or bytes.
423
424.. code-block:: console
425
426 global-size 2G
427
428global-pvt-heap-size <n>M | size <n>
429^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
430
431 Set the size of the global VM private mheap. If not set, defaults to 128k.
432 The input value can be set in MB or bytes.
433
434.. code-block:: console
435
436 global-pvt-heap-size size 262144
437
438api-pvt-heap-size <n>M | size <n>
439^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
440
441 Set the size of the api private mheap. If not set, defaults to 128k.
442 The input value can be set in MB or bytes.
443
444.. code-block:: console
445
446 api-pvt-heap-size 1M
447
448api-size <n>M | <n>G | <n>
449^^^^^^^^^^^^^^^^^^^^^^^^^^
450
451 Set the size of the API region. If not set, defaults to 16M. The input
452 value can be set in GB, MB or bytes.
453
454.. code-block:: console
455
456 api-size 64M
457
458The socksvr Section
459-------------------
460
461Enables a Unix domain socket which processes binary API messages. See
462.../vlibmemory/socket_api.c. If this parameter is not set, vpp
463won't process binary API messages over sockets.
464
465.. code-block:: console
466
467 socksvr {
468 # Explicitly name a socket file
469 socket-name /run/vpp/api.sock
470 or
471 # Use defaults as described below
472 default
473 }
474
475The "default" keyword instructs vpp to use /run/vpp/api.sock when
476running as root, otherwise to use /run/user/<uid>/api.sock.
477
478The cpu Section
479---------------
480
481In the VPP there is one main thread and optionally the user can create worker(s)
482The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically
483
484.. code-block:: console
485
486 cpu {
487 main-core 1
488 corelist-workers 2-3,18-19
489 }
490
491
492Manual pinning of thread(s) to CPU core(s)
493^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
494
495main-core
496^^^^^^^^^
497
498Set logical CPU core where main thread runs, if main core is not set VPP will use
499core 1 if available
500
501.. code-block:: console
502
503 main-core 1
504
505corelist-workers
506^^^^^^^^^^^^^^^^
507
508Set logical CPU core(s) where worker threads are running
509
510.. code-block:: console
511
512 corelist-workers 2-3,18-19
513
514Automatic pinning of thread(s) to CPU core(s)
515^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
516
517skip-cores number
518^^^^^^^^^^^^^^^^^
519
520Sets number of CPU core(s) to be skipped (1 ... N-1), Skipped CPU core(s) are
521not used for pinning main thread and working thread(s).
522
523The main thread is automatically pinned to the first available CPU core and worker(s)
524are pinned to next free CPU core(s) after core assigned to main thread
525
526.. code-block:: console
527
528 skip-cores 4
529
530workers number
531^^^^^^^^^^^^^^
532
533Specify a number of workers to be created Workers are pinned to N consecutive
534CPU cores while skipping "skip-cores" CPU core(s) and main thread's CPU core
535
536.. code-block:: console
537
538 workers 2
539
540scheduler-policy other | batch | idle | fifo | rr
541^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
542
543Set scheduling policy and priority of main and worker threads
544
545Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)
546idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)
547
548.. code-block:: console
549
550 scheduler-policy fifo
551
552scheduler-priority number
553^^^^^^^^^^^^^^^^^^^^^^^^^
554
555Scheduling priority is used only for "real-time policies (fifo and rr),
556and has to be in the range of priorities supported for a particular policy
557
558.. code-block:: console
559
560 scheduler-priority 50
561
562The buffers Section
563-------------------
564
565.. code-block:: console
566
567 buffers {
568 buffers-per-numa 128000
569 default data-size 2048
570 }
571
572buffers-per-numa number
573^^^^^^^^^^^^^^^^^^^^^^^
574
575Increase number of buffers allocated, needed only in scenarios with
576large number of interfaces and worker threads. Value is per numa node.
577Default is 16384 (8192 if running unpriviledged)
578
579.. code-block:: console
580
581 buffers-per-numa 128000
582
583default data-size number
584^^^^^^^^^^^^^^^^^^^^^^^^
585
586Size of buffer data area, default is 2048
587
588.. code-block:: console
589
590 default data-size 2048
591
592
593The dpdk Section
594----------------
595
596.. code-block:: console
597
598 dpdk {
599 dev default {
600 num-rx-desc 512
601 num-tx-desc 512
602 }
603
604 dev 0000:02:00.1 {
605 num-rx-queues 2
606 name eth0
607 }
608 }
609
610dev <pci-dev> | default { .. }
611^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
612
613White-list [as in, attempt to drive] a specific PCI device. PCI-dev is a
614string of the form "DDDD:BB:SS.F" where:
615
616* DDDD = Domain
617* BB = Bus Number
618* SS = Slot number
619* F = Function
620
Paul Vinciguerra5ac392d2020-03-01 01:37:37 -0500621If the keyword **default** is used the values will apply to all the devices.
John DeNisco4f859682019-12-10 14:25:50 -0500622
623This is the same format used in the linux sysfs tree (i.e./sys/bus/pci/devices)
624for PCI device directory names.
625
626.. code-block:: console
627
628 dpdk {
629 dev default {
630 num-rx-desc 512
631 num-tx-desc 512
632 }
633
634dev <pci-dev> { .. }
635^^^^^^^^^^^^^^^^^^^^
636
637Whitelist specific interface by specifying PCI address. When whitelisting specific
638interfaces by specifying PCI address, additional custom parameters can also be
639specified. Valid options include:
640
641.. code-block:: console
642
643 dev 0000:02:00.0
644 dev 0000:03:00.0
645
646blacklist <pci-dev>
647^^^^^^^^^^^^^^^^^^^
648
649Blacklist specific device type by specifying PCI vendor:device Whitelist entries
650take precedence
651
652.. code-block:: console
653
654 blacklist 8086:10fb
655
656name interface-name
657^^^^^^^^^^^^^^^^^^^
658
659Set interface name
660
661.. code-block:: console
662
663 dev 0000:02:00.1 {
664 name eth0
665 }
666
667num-rx-queues <n>
668^^^^^^^^^^^^^^^^^
669
670Number of receive queues. Also enables RSS. Default value is 1.
671
672.. code-block:: console
673
674 dev 0000:02:00.1 {
Paul Vinciguerra5ac392d2020-03-01 01:37:37 -0500675 num-rx-queues <n>
John DeNisco4f859682019-12-10 14:25:50 -0500676 }
677
678num-tx-queues <n>
679^^^^^^^^^^^^^^^^^
680
681Number of transmit queues. Default is equal to number of worker threads
682or 1 if no workers treads.
683
684.. code-block:: console
685
686 dev 000:02:00.1 {
687 num-tx-queues <n>
688 }
689
690num-rx-desc <n>
691^^^^^^^^^^^^^^^
692
693Number of descriptors in receive ring. Increasing or reducing number
694can impact performance. Default is 1024.
695
696.. code-block:: console
697
698 dev 000:02:00.1 {
699 num-rx-desc <n>
700 }
701
702vlan-strip-offload on | off
703^^^^^^^^^^^^^^^^^^^^^^^^^^^
704
705VLAN strip offload mode for interface. VLAN stripping is off by default
706for all NICs except VICs, using ENIC driver, which has VLAN stripping on
707by default.
708
709.. code-block:: console
710
711 dev 000:02:00.1 {
712 vlan-strip-offload on|off
713 }
714
715uio-driver driver-name
716^^^^^^^^^^^^^^^^^^^^^^
717
718Change UIO driver used by VPP, Options are: igb_uio, vfio-pci, uio_pci_generic
719or auto (default)
720
721
722.. code-block:: console
723
724 uio-driver vfio-pci
725
726no-multi-seg
727^^^^^^^^^^^^
728
729Disable multi-segment buffers, improves performance but disables Jumbo MTU support
730
731.. code-block:: console
732
733 no-multi-seg
734
735socket-mem <n>
736^^^^^^^^^^^^^^
737
738Change hugepages allocation per-socket, needed only if there is need for
739larger number of mbufs. Default is 256M on each detected CPU socket
740
741.. code-block:: console
742
743 socket-mem 2048,2048
744
745no-tx-checksum-offload
746^^^^^^^^^^^^^^^^^^^^^^
747
748Disables UDP / TCP TX checksum offload. Typically needed for use faster
749vector PMDs (together with no-multi-seg)
750
751.. code-block:: console
752
753 no-tx-checksum-offload
754
755enable-tcp-udp-checksum
756^^^^^^^^^^^^^^^^^^^^^^^
757
758Enable UDP / TCP TX checksum offload This is the reversed option of
759'no-tx-checksum-offload'
760
761.. code-block:: console
762
763 enable-tcp-udp-checksum
764
765The plugins Section
766-------------------
767
768Configure VPP plugins.
769
770.. code-block:: console
771
772 plugins {
773 path /ws/vpp/build-root/install-vpp-native/vpp/lib/vpp_plugins
774 plugin dpdk_plugin.so enable
775 }
776
777path pathname
778^^^^^^^^^^^^^
779
780Adjust the plugin path depending on where the VPP plugins are.
781
782.. code-block:: console
783
784 path /ws/vpp/build-root/install-vpp-native/vpp/lib/vpp_plugins
785
786plugin plugin-name | default enable | disable
787^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
788
789Disable all plugins by default and then selectively enable specific plugins
790
791.. code-block:: console
792
793 plugin default disable
794 plugin dpdk_plugin.so enable
795 plugin acl_plugin.so enable
796
797Enable all plugins by default and then selectively disable specific plugins
798
799.. code-block:: console
800
801 plugin dpdk_plugin.so disable
802 plugin acl_plugin.so disable
803
804Th statseg Section
805^^^^^^^^^^^^^^^^^^
806
807.. code-block:: console
808
809 statseg {
810 per-node-counters on
811 }
812
813socket-name <filename>
814^^^^^^^^^^^^^^^^^^^^^^
815
816Name of the stats segment socket defaults to /run/vpp/stats.sock.
817
818.. code-block:: console
819
820 socket-name /run/vpp/stats.sock
821
822size <nnn>[KMG]
823^^^^^^^^^^^^^^^
824
825The size of the stats segment, defaults to 32mb
826
827.. code-block:: console
828
829 size 1024M
830
831per-node-counters on | off
832^^^^^^^^^^^^^^^^^^^^^^^^^^
833
834Defaults to none
835
836.. code-block:: console
837
838 per-node-counters on
839
840update-interval <f64-seconds>
841^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
842
843Sets the segment scrape / update interval
844
845.. code-block:: console
846
847 update-interval 300
848
849
850Some Advanced Parameters:
851-------------------------
852
853
854acl-plugin Section
855------------------
John DeNisco06dcd452018-07-26 12:45:10 -0400856
andrew9f0c0202018-08-14 09:35:42 -0400857These parameters change the configuration of the ACL (access control list) plugin,
858such as how the ACL bi-hash tables are initialized.
John DeNisco06dcd452018-07-26 12:45:10 -0400859
andrew9f0c0202018-08-14 09:35:42 -0400860They should only be set by those that are familiar with the interworkings of VPP
861and the ACL Plugin.
862
863The first three parameters, *connection hash buckets*, *connection hash memory*,
864and *connection count max*, set the **connection table per-interface parameters**
865for modifying how the two bounded-index extensible hash tables for
866IPv6 (40\*8 bit key and 8\*8 bit value pairs) and IPv4
867(16\*8 bit key and 8\*8 bit value pairs) **ACL plugin FA interface sessions**
868are initialized.
John DeNisco06dcd452018-07-26 12:45:10 -0400869
John DeNisco4f859682019-12-10 14:25:50 -0500870connection hash buckets <n>
871^^^^^^^^^^^^^^^^^^^^^^^^^^^
872
873Sets the number of hash buckets (rounded up to a power of 2) in each
874of the two bi-hash tables. Defaults to 64\*1024 (65536) hash buckets.
875
876.. code-block:: console
877
878 connection hash buckets 65536
879
880connection hash memory <n>
881^^^^^^^^^^^^^^^^^^^^^^^^^^
882
883Sets the allocated memory size (in bytes) for each of the two bi-hash tables.
884Defaults to 1073741824 bytes.
885
886.. code-block:: console
887
888 connection hash memory 1073741824
889
890connection count max <n>
891^^^^^^^^^^^^^^^^^^^^^^^^
892
893Sets the maximum number of pool elements when allocating each per-worker
894pool of sessions for both bi-hash tables. Defaults to 500000 elements in each pool.
895
896.. code-block:: console
897
898 connection count max 500000
899
900main heap size <n>G | <n>M | <n>K | <n>
901^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
902
903Sets the size of the main memory heap that holds all the ACL module related
904allocations (other than hash.) Default size is 0, but during
905ACL heap initialization is equal to
906*per_worker_size_with_slack * tm->n_vlib_mains + bihash_size + main_slack*.
907Note that these variables are partially based on the
908**connection table per-interface parameters** mentioned above.
909
910.. code-block:: console
911
912 main heap size 3G
John DeNisco06dcd452018-07-26 12:45:10 -0400913
andrew9f0c0202018-08-14 09:35:42 -0400914The next three parameters, *hash lookup heap size*, *hash lookup hash buckets*,
915and *hash lookup hash memory*, modify the initialization of the bi-hash lookup
916table used by the ACL plugin. This table is initialized when attempting to apply
917an ACL to the existing vector of ACLs looked up during packet processing
918(but it is found that the table does not exist / has not been initialized yet.)
John DeNisco4f859682019-12-10 14:25:50 -0500919
920hash lookup heap size <n>G | <n>M | <n> K | <n>
921^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
922
923Sets the size of the memory heap that holds all the miscellaneous allocations
924related to hash-based lookups. Default size is 67108864 bytes.
925
926.. code-block:: console
927
928 hash lookup heap size 70M
929
930hash lookup hash buckets <n>
931^^^^^^^^^^^^^^^^^^^^^^^^^^^^
932
933Sets the number of hash buckets (rounded up to a power of 2) in the bi-hash
934lookup table. Defaults to 65536 hash buckets.
935
936.. code-block:: console
937
938 hash lookup hash buckets 65536
939
940hash lookup hash memory <n>
941^^^^^^^^^^^^^^^^^^^^^^^^^^^
942
943Sets the allocated memory size (in bytes) for the bi-hash lookup table.
944Defaults to 67108864 bytes.
945
946.. code-block:: console
947
948 hash lookup hash memory 67108864
949
950use tuple merge <n>
951^^^^^^^^^^^^^^^^^^^
952
953Sets a boolean value indicating whether or not to use TupleMerge
954for hash ACL's. Defaults to 1 (true), meaning the default implementation
955of hashing ACL's does use TupleMerge.
956
957.. code-block:: console
958
959 use tuple merge 1
960
961tuple merge split threshold <n>
962^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
963
964Sets the maximum amount of rules (ACE's) that can collide in a bi-hash
965lookup table before the table is split into two new tables. Splitting ensures
966less rule collisions by hashing colliding rules based on their common tuple
967(usually their maximum common tuple.) Splitting occurs when the
968*length of the colliding rules vector* is greater than this threshold amount.
969Defaults to a maximum of 39 rule collisions per table.
970
971.. code-block:: console
972
973 tuple merge split threshold 30
974
975reclassify sessions <n>
976^^^^^^^^^^^^^^^^^^^^^^^
977
978Sets a boolean value indicating whether or not to take the epoch of the session
979into account when dealing with re-applying ACL's or changing already applied ACL's.
980Defaults to 0 (false), meaning the default implementation does NOT take the
981epoch of the session into account.
982
983.. code-block:: console
984
985 reclassify sessions 1
John DeNisco06dcd452018-07-26 12:45:10 -0400986
987.. _api-queue:
988
John DeNisco4f859682019-12-10 14:25:50 -0500989api-queue Section
990-----------------
John DeNisco06dcd452018-07-26 12:45:10 -0400991
John DeNisco4f859682019-12-10 14:25:50 -0500992length <n>
993^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -0400994
John DeNisco4f859682019-12-10 14:25:50 -0500995Sets the api queue length. Minimum valid queue length is 1024, which is
996also the default.
John DeNisco06dcd452018-07-26 12:45:10 -0400997
John DeNisco4f859682019-12-10 14:25:50 -0500998.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -0400999
John DeNisco4f859682019-12-10 14:25:50 -05001000 length 2048
John DeNisco06dcd452018-07-26 12:45:10 -04001001
1002.. _cj:
1003
John DeNisco4f859682019-12-10 14:25:50 -05001004cj Section
1005----------
John DeNisco06dcd452018-07-26 12:45:10 -04001006
1007The circular journal (CJ) thread-safe circular log buffer scheme is
1008occasionally useful when chasing bugs. Calls to it should not be checked in.
1009See .../vlib/vlib/unix/cj.c. The circular journal is disables by default.
1010When enabled, the number of records must be provided, there is no default
1011value.
1012
John DeNisco4f859682019-12-10 14:25:50 -05001013records <n>
1014^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001015
John DeNisco4f859682019-12-10 14:25:50 -05001016Configure the number of circular journal records in the circular buffer.
1017The number of records should be a power of 2.
John DeNisco06dcd452018-07-26 12:45:10 -04001018
John DeNisco4f859682019-12-10 14:25:50 -05001019.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001020
John DeNisco4f859682019-12-10 14:25:50 -05001021 records 131072
John DeNisco06dcd452018-07-26 12:45:10 -04001022
John DeNisco4f859682019-12-10 14:25:50 -05001023on
1024^^
John DeNisco06dcd452018-07-26 12:45:10 -04001025
John DeNisco4f859682019-12-10 14:25:50 -05001026Turns on logging at the earliest possible moment.
John DeNisco06dcd452018-07-26 12:45:10 -04001027
John DeNisco4f859682019-12-10 14:25:50 -05001028.. code-block:: console
1029
1030 on
1031
1032dns Section
1033-----------
1034
1035max-cache-size <n>
1036^^^^^^^^^^^^^^^^^^
1037
1038Set the maximum number of active elements allowed in the pool of
1039dns cache entries. When resolving an expired entry or adding a new
1040static entry and the max number of active entries is reached,
1041a random, non-static entry is deleted. Defaults to 65535 entries.
1042
1043.. code-block:: console
1044
1045 max-cache-size 65535
1046
Paul Vinciguerra491741a2020-03-02 16:10:54 -05001047
1048ethernet Section
1049-----------------
1050
1051default-mtu <n>
1052^^^^^^^^^^^^^^^
1053
1054Specifies the default MTU size for Ethernet interfaces. Must be in
1055the range of 64-9000. The default is 9000.
1056
1057.. code-block:: console
1058
1059 default-mtu 1500
1060
John DeNisco4f859682019-12-10 14:25:50 -05001061heapsize Section
1062-----------------
John DeNisco06dcd452018-07-26 12:45:10 -04001063
1064Heapsize configuration controls the size of the main heap. The heap size is
1065configured very early in the boot sequence, before loading plug-ins or doing
1066much of anything else.
1067
John DeNisco4f859682019-12-10 14:25:50 -05001068heapsize <n>M | <n>G
1069^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001070
Dave Barach2fef3df2020-02-21 17:31:17 -05001071Specifies the size of the heap in MB or GB. The default is 1GB.
John DeNisco06dcd452018-07-26 12:45:10 -04001072
John DeNisco4f859682019-12-10 14:25:50 -05001073.. code-block:: console
1074
1075 heapsize 2G
1076
1077ip Section
1078----------
John DeNisco06dcd452018-07-26 12:45:10 -04001079
1080IPv4 heap configuration. he heap size is configured very early in the boot
1081sequence, before loading plug-ins or doing much of anything else.
1082
John DeNisco4f859682019-12-10 14:25:50 -05001083heap-size <n>G | <n>M | <n>K | <n>
1084^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001085
John DeNisco4f859682019-12-10 14:25:50 -05001086Set the IPv4 mtrie heap size, which is the amount of memory dedicated to
1087the destination IP lookup table. The input value can be set in GB, MB, KB
1088or bytes. The default value is 32MB.
John DeNisco06dcd452018-07-26 12:45:10 -04001089
John DeNisco4f859682019-12-10 14:25:50 -05001090.. code-block:: console
1091
1092 heap-size 64M
1093
1094ip6 Section
1095-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001096
1097IPv6 heap configuration. he heap size is configured very early in the boot
1098sequence, before loading plug-ins or doing much of anything else.
1099
1100
John DeNisco4f859682019-12-10 14:25:50 -05001101heap-size <n>G | <n>M | <n>K | <n>
1102^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001103
John DeNisco4f859682019-12-10 14:25:50 -05001104Set the IPv6 forwarding table heap size. The input value can be set in GB,
1105MB, KB or bytes. The default value is 32MB.
John DeNisco06dcd452018-07-26 12:45:10 -04001106
John DeNisco4f859682019-12-10 14:25:50 -05001107.. code-block:: console
1108
1109 heap-size 64M
1110
1111hash-buckets <n>
1112^^^^^^^^^^^^^^^^
1113
1114Set the number of IPv6 forwarding table hash buckets. The default value is
111564K (65536).
1116
1117.. code-block:: console
1118
1119 hash-buckets 131072
1120
1121l2learn Section
1122---------------
John DeNisco06dcd452018-07-26 12:45:10 -04001123
1124Configure Layer 2 MAC Address learning parameters.
1125
John DeNisco4f859682019-12-10 14:25:50 -05001126limit <n>
1127^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001128
John DeNisco4f859682019-12-10 14:25:50 -05001129Configures the number of L2 (MAC) addresses in the L2 FIB at any one time,
1130which limits the size of the L2 FIB to <n> concurrent entries. Defaults to
11314M entries (4194304).
John DeNisco06dcd452018-07-26 12:45:10 -04001132
John DeNisco4f859682019-12-10 14:25:50 -05001133.. code-block:: console
1134
1135 limit 8388608
1136
1137l2tp Section
1138------------
John DeNisco06dcd452018-07-26 12:45:10 -04001139
1140IPv6 Layer 2 Tunnelling Protocol Version 3 (IPv6-L2TPv3) configuration controls
1141the method used to locate a specific IPv6-L2TPv3 tunnel. The following settings
1142are mutually exclusive:
1143
John DeNisco4f859682019-12-10 14:25:50 -05001144lookup-v6-src
1145^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001146
John DeNisco4f859682019-12-10 14:25:50 -05001147Lookup tunnel by IPv6 source address.
John DeNisco06dcd452018-07-26 12:45:10 -04001148
John DeNisco4f859682019-12-10 14:25:50 -05001149.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001150
John DeNisco4f859682019-12-10 14:25:50 -05001151 lookup-v6-src
John DeNisco06dcd452018-07-26 12:45:10 -04001152
John DeNisco4f859682019-12-10 14:25:50 -05001153lookup-v6-dst
1154^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001155
John DeNisco4f859682019-12-10 14:25:50 -05001156Lookup tunnel by IPv6 destination address.
John DeNisco06dcd452018-07-26 12:45:10 -04001157
John DeNisco4f859682019-12-10 14:25:50 -05001158.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001159
John DeNisco4f859682019-12-10 14:25:50 -05001160 lookup-v6-dst
1161
1162lookup-session-id
1163^^^^^^^^^^^^^^^^^
1164
1165Lookup tunnel by L2TPv3 session identifier.
1166
1167.. code-block:: console
1168
1169 lookup-session-id
1170
1171logging Section
1172---------------
1173
1174size <n>
1175^^^^^^^^
1176
1177Number of entries in the global logging buffer. Defaults to 512.
1178
1179.. code-block:: console
1180
1181 size 512
1182
1183nthrottle-time <n>
1184^^^^^^^^^^^^^^^^^^
1185
1186Set the global value for the time to wait (in seconds) before resuming
1187logging of a log subclass that exceeded the per-subclass message-per-second
1188threshold. Defaults to 3.
1189
1190.. code-block:: console
1191
1192 unthrottle-time 3
1193
1194default-log-level emerg|alert | crit | err | warn | notice | info | debug | disabled
1195^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1196
1197Set the default logging level of the system log. Defaults to notice.
1198
1199.. code-block:: console
1200
1201 default-log-level notice
1202
1203default-syslog-log-level emerg|alert | crit | err | warn | notice | info | debug | disabled
1204^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1205
1206Set the default logging level of the syslog target. Defaults to warning.
1207
1208.. code-block:: console
1209
1210 default-syslog-log-level warning
1211
1212mactime Section
1213---------------
1214
1215lookup-table-buckets <n>
1216^^^^^^^^^^^^^^^^^^^^^^^^
1217
1218Sets the number of hash buckets in the mactime bi-hash lookup table.
1219Defaults to 128 buckets.
1220
1221.. code-block:: console
1222
1223 lookup-table-buckets 128
1224
1225lookup-table-memory <n>G | <n>M | <n>K | <n>
1226^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1227
1228Sets the allocated memory size (in bytes) for the mactime bi-hash lookup table.
1229The input value can be set in GB, MB, KB or bytes. The default value is 262144
1230(256 << 10) bytes or roughly 256KB.
1231
1232.. code-block:: console
1233
1234 lookup-table-memory 300K
1235
1236timezone_offset <n>
1237^^^^^^^^^^^^^^^^^^^
1238
1239Sets the timezone offset from UTC. Defaults to an offset of -5 hours
1240from UTC (US EST / EDT.)
1241
1242.. code-block:: console
1243
1244 timezone_offset -5
John DeNisco06dcd452018-07-26 12:45:10 -04001245
1246"map" Parameters
John DeNisco4f859682019-12-10 14:25:50 -05001247----------------
John DeNisco06dcd452018-07-26 12:45:10 -04001248
John DeNisco4f859682019-12-10 14:25:50 -05001249customer edge
1250^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001251
John DeNisco4f859682019-12-10 14:25:50 -05001252Sets a boolean true to indicate that the MAP node is a Customer Edge (CE)
1253router. The boolean defaults to false, meaning the MAP node is not treated
1254as a CE router.
John DeNisco06dcd452018-07-26 12:45:10 -04001255
John DeNisco4f859682019-12-10 14:25:50 -05001256.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001257
John DeNisco4f859682019-12-10 14:25:50 -05001258 customer edge
John DeNisco06dcd452018-07-26 12:45:10 -04001259
John DeNisco4f859682019-12-10 14:25:50 -05001260nat Section
1261-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001262
andrew9f0c0202018-08-14 09:35:42 -04001263These parameters change the configuration of the NAT (Network address translation)
1264plugin, such as how the NAT & NAT64 bi-hash tables are initialized, if the NAT is
1265endpoint dependent, or if the NAT is deterministic.
1266
1267For each NAT per thread data, the following 4 parameters change how certain
1268bi-hash tables are initialized.
1269
John DeNisco4f859682019-12-10 14:25:50 -05001270translation hash buckets <n>
1271^^^^^^^^^^^^^^^^^^^^^^^^^^^^
andrew9f0c0202018-08-14 09:35:42 -04001272
John DeNisco4f859682019-12-10 14:25:50 -05001273Sets the number of hash buckets in each of the two in/out NAT bi-hash lookup
1274tables. Defaults to 1024 buckets.
andrew9f0c0202018-08-14 09:35:42 -04001275
John DeNisco4f859682019-12-10 14:25:50 -05001276If the NAT is indicated to be endpoint dependent, which can be set with the
1277:ref:`endpoint-dependent parameter <endpointLabel>`, then this parameter sets
1278the number of hash buckets in each of the two endpoint dependent sessions
1279NAT bi-hash lookup tables.
1280
1281.. code-block:: console
1282
1283 translation hash buckets 1024
1284
1285translation hash memory <n>
1286^^^^^^^^^^^^^^^^^^^^^^^^^^^
1287
1288Sets the allocated memory size (in bytes) for each of the two in/out NAT
1289bi-hash tables. Defaults to 134217728 (128 << 20) bytes, which is roughly 128 MB.
1290
1291If the NAT is indicated to be endpoint dependent, which can be set with the
1292:ref:`endpoint-dependent parameter <endpointLabel>`, then this parameter sets the
1293allocated memory size for each of the two endpoint dependent sessions NAT bi-hash
1294lookup tables.
1295
1296.. code-block:: console
1297
1298 translation hash memory 134217728
1299
1300user hash buckets <n>
1301^^^^^^^^^^^^^^^^^^^^^
1302
1303Sets the number of hash buckets in the user bi-hash lookup table
1304(src address lookup for a user.) Defaults to 128 buckets.
1305
1306.. code-block:: console
1307
1308 user hash buckets 128
1309
1310user hash memory <n>
1311^^^^^^^^^^^^^^^^^^^^
1312
1313Sets the allocated memory size (in bytes) for the user bi-hash lookup table
1314(src address lookup for a user.) Defaults to 67108864 (64 << 20) bytes,
1315which is roughly 64 MB.
1316
1317.. code-block:: console
1318
1319 user hash memory 67108864
1320
1321max translations per user <n>
1322^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1323
1324Sets the maximum amount of dynamic and/or static NAT sessions each user can have.
1325Defaults to 100. When this limit is reached, the least recently used translation
1326is recycled.
1327
1328.. code-block:: console
1329
1330 max translations per user 50
1331
1332deterministic
1333^^^^^^^^^^^^^
1334
1335Sets a boolean value to 1 indicating that the NAT is deterministic. Defaults to 0,
1336meaning the NAT is not deterministic.
1337
1338.. code-block:: console
1339
1340 deterministic
1341
1342nat64 bib hash buckets <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001343^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001344
1345Sets the number of hash buckets in each of the two in/out NAT64 BIB bi-hash
1346tables. Defaults to 1024 buckets.
1347
1348.. code-block:: console
1349
1350 nat64 bib hash buckets 1024
1351
1352nat64 bib hash memory <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001353^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001354
1355Sets the allocated memory size (in bytes) for each of the two in/out NAT64
1356BIB bi-hash tables. Defaults to 134217728 (128 << 20) bytes,
1357which is roughly 128 MB.
1358
1359.. code-block:: console
1360
1361 nat64 bib hash memory 134217728
1362
1363nat64 st hash buckets <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001364^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001365
1366Sets the number of hash buckets in each of the two in/out NAT64 session table
1367bi-hash tables. Defaults to 2048 buckets.
1368
1369.. code-block:: console
1370
1371 nat64 st hash buckets 2048
1372
1373nat64 st hash memory <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001374^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001375
1376Sets the allocated memory size (in bytes) for each of the two in/out NAT64 session
1377table bi-hash tables. Defaults to 268435456 (256 << 20) bytes, which is roughly
1378256 MB.
1379
1380.. code-block:: console
1381
1382 nat64 st hash memory 268435456
1383
andrew9f0c0202018-08-14 09:35:42 -04001384.. _endpointLabel:
1385
John DeNisco4f859682019-12-10 14:25:50 -05001386endpoint-dependent
1387^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001388
John DeNisco4f859682019-12-10 14:25:50 -05001389Sets a boolean value to 1, indicating that the NAT is endpoint dependent.
1390Defaults to 0, meaning the NAT is not endpoint dependent.
John DeNisco06dcd452018-07-26 12:45:10 -04001391
John DeNisco4f859682019-12-10 14:25:50 -05001392.. code-block:: console
1393
1394 endpoint-dependent
1395
1396oam Section
1397-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001398
1399OAM configuration controls the (ip4-icmp) interval, and number of misses
1400allowed before reporting an oam target down to any registered listener.
1401
John DeNisco4f859682019-12-10 14:25:50 -05001402interval <n.n>
1403^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001404
John DeNisco4f859682019-12-10 14:25:50 -05001405Interval, floating-point seconds, between sending OAM IPv4 ICMP messages.
1406Default is 2.04 seconds.
John DeNisco06dcd452018-07-26 12:45:10 -04001407
John DeNisco4f859682019-12-10 14:25:50 -05001408.. code-block:: console
andrew9f0c0202018-08-14 09:35:42 -04001409
John DeNisco4f859682019-12-10 14:25:50 -05001410 interval 3.5
John DeNisco06dcd452018-07-26 12:45:10 -04001411
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001412physmem Section
1413---------------
1414
1415Configuration parameters used to specify base address and maximum size of
1416the memory allocated for the pmalloc module in VPP. pmalloc is a NUMA-aware,
1417growable physical memory allocator. pmalloc allocates memory for the DPDK
1418memory pool.
1419
1420base-addr <address>
1421^^^^^^^^^^^^^^^^^^^
1422
1423Specify the base address for pmalloc memory space.
1424
1425.. code-block:: console
1426
1427 base-addr 0xfffe00000000
1428
1429max-size <n>G | <n>M | <n>K | <n>
1430^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1431
1432Set the memory size for pmalloc memory space. The default is 16G.
1433
1434.. code-block:: console
1435
1436 max-size 4G
1437
John DeNisco4f859682019-12-10 14:25:50 -05001438tapcli Section
1439--------------
John DeNisco06dcd452018-07-26 12:45:10 -04001440
andrew9f0c0202018-08-14 09:35:42 -04001441Configuration parameters for TAPCLI (dynamic tap interface hookup.)
1442
John DeNisco4f859682019-12-10 14:25:50 -05001443mtu <n>
1444^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001445
John DeNisco4f859682019-12-10 14:25:50 -05001446Sets interface MTU (maximum transmission unit) size in bytes. This size
1447is also related to the number of MTU buffers. Defaults to 1500 bytes.
John DeNisco06dcd452018-07-26 12:45:10 -04001448
John DeNisco4f859682019-12-10 14:25:50 -05001449.. code-block:: console
1450
1451 mtu 1500
1452
1453disable
1454^^^^^^^
1455
1456Disables TAPCLI. Default is that TAPCLI is enabled.
1457
1458.. code-block:: console
1459
1460 disable
1461
1462
1463tcp Section
1464-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001465
andrew9f0c0202018-08-14 09:35:42 -04001466Configuration parameters for TCP host stack utilities. The following
1467preallocation parameters are related to the initialization of fixed-size,
1468preallocation pools.
1469
John DeNisco4f859682019-12-10 14:25:50 -05001470preallocated-connections <n>
1471^^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001472
John DeNisco4f859682019-12-10 14:25:50 -05001473Sets the number of preallocated TCP connections. Defaults to 0.
1474The preallocated connections per thread is related to this value,
1475equal to (preallocated_connections / (num_threads - 1)).
John DeNisco06dcd452018-07-26 12:45:10 -04001476
John DeNisco4f859682019-12-10 14:25:50 -05001477.. code-block:: console
1478
1479 preallocated-connections 5
1480
1481preallocated-half-open-connections <n>
1482^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1483
1484Sets the number of preallocated TCP half-open connections. Defaults to 0.
1485
1486.. code-block:: console
1487
1488 preallocated-half-open-connections 5
1489
1490buffer-fail-fraction <n.n>
1491^^^^^^^^^^^^^^^^^^^^^^^^^^
1492
1493Sets the TCP buffer fail fraction (a float) used for fault-injection
1494when debugging TCP buffer allocation. Its use is found in *tcp_debug.h*.
1495Defaults to 0.0.
1496
1497.. code-block:: console
1498
1499 buffer-fail-fraction 0.0
1500
1501
1502tls Section
1503-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001504
andrew9f0c0202018-08-14 09:35:42 -04001505Configures TLS parameters, such as enabling the use of test certificates.
1506These parameters affect the tlsmbedtls and tlsopenssl plugins.
1507
John DeNisco4f859682019-12-10 14:25:50 -05001508use-test-cert-in-ca
1509^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001510
John DeNisco4f859682019-12-10 14:25:50 -05001511Sets a boolean value to 1 to indicate during the initialization of a
1512TLS CA chain to attempt to parse and add test certificates to the chain.
1513Defaults to 0, meaning test certificates are not used.
John DeNisco06dcd452018-07-26 12:45:10 -04001514
John DeNisco4f859682019-12-10 14:25:50 -05001515.. code-block:: console
1516
1517 use-test-cert-in-ca
1518
1519ca-cert-path <filename>
1520^^^^^^^^^^^^^^^^^^^^^^^
1521
1522Sets the filename path of the location of TLS CA certificates, used when
1523initializing and loading TLS CA certificates during the initialization
1524of a TLS CA chain. If not set, the default filename path is
1525*/etc/ssl/certs/ca-certificates.crt*.
1526
1527.. code-block:: console
1528
1529 ca-cert-path /etc/ssl/certs/ca-certificates.crt
1530
1531
1532tuntap Section
1533--------------
John DeNisco06dcd452018-07-26 12:45:10 -04001534
1535The "tuntap" driver configures a point-to-point interface between the vpp
1536engine and the local Linux kernel stack. This allows e.g. users to ssh to the
1537host | VM | container via vpp "revenue" interfaces. It's marginally useful, and
1538is currently disabled by default. To [dynamically] create TAP interfaces - the
1539preferred scheme - see the "tap_connect" binary API. The Linux network stack
1540"vnet" interface needs to manually configure, and VLAN and other settings if
1541desired.
1542
John DeNisco06dcd452018-07-26 12:45:10 -04001543
John DeNisco4f859682019-12-10 14:25:50 -05001544enable|disable
1545^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001546
John DeNisco4f859682019-12-10 14:25:50 -05001547Enable or disable the tun/tap driver.
John DeNisco06dcd452018-07-26 12:45:10 -04001548
John DeNisco4f859682019-12-10 14:25:50 -05001549.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001550
John DeNisco4f859682019-12-10 14:25:50 -05001551 enable
1552
1553ethernet|ether
1554^^^^^^^^^^^^^^
1555
1556Create a tap device (ethernet MAC) instead of a tun device (point-to-point
1557tunnel). The two keywords are aliases for the same function.
1558
1559.. code-block:: console
1560
1561 ethernet
1562
1563have-normal-interface|have-normal
1564^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1565
1566Treat the host Linux stack as a routing peer instead of programming VPP
1567interface L3 addresses onto the tun/tap devices. The two keywords are
1568aliases for the same function.
1569
1570.. code-block:: console
1571
1572 have-normal-interface
1573
1574name <name>
1575^^^^^^^^^^^
1576
1577Assign name to the tun/tap device.
1578
1579.. code-block:: console
1580
1581 name vpp1
1582
1583
1584vhost-user Section
1585------------------
John DeNisco06dcd452018-07-26 12:45:10 -04001586
1587Vhost-user configuration parameters control the vhost-user driver.
1588
John DeNisco4f859682019-12-10 14:25:50 -05001589coalesce-frames <n>
1590^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001591
John DeNisco4f859682019-12-10 14:25:50 -05001592Subject to deadline-timer expiration - see next item - attempt to transmit
1593at least <n> packet frames. Default is 32 frames.
John DeNisco06dcd452018-07-26 12:45:10 -04001594
John DeNisco4f859682019-12-10 14:25:50 -05001595.. code-block:: console
1596
1597 coalesce-frames 64
1598
1599coalesce-time <seconds>
1600^^^^^^^^^^^^^^^^^^^^^^^
1601
1602Hold packets no longer than (floating-point) seconds before transmitting
1603them. Default is 0.001 seconds
1604
1605.. code-block:: console
1606
1607 coalesce-time 0.002
1608
1609dont-dump-memory
1610^^^^^^^^^^^^^^^^
1611
1612vhost-user shared-memory segments can add up to a large amount of memory, so
1613it's handy to avoid adding them to corefiles when using a significant number
1614of such interfaces.
1615
1616.. code-block:: console
1617
1618 dont-dump-memory
1619
1620
1621vlib Section
1622------------
John DeNisco06dcd452018-07-26 12:45:10 -04001623
andrew9f0c0202018-08-14 09:35:42 -04001624These parameters configure VLIB, such as allowing you to choose whether to
1625enable memory traceback or a post-mortem elog dump.
1626
John DeNisco4f859682019-12-10 14:25:50 -05001627memory-trace
1628^^^^^^^^^^^^
1629
1630Enables memory trace (mheap traceback.) Defaults to 0, meaning memory
1631trace is disabled.
1632
1633.. code-block:: console
1634
1635 memory-trace
1636
1637elog-events <n>
1638^^^^^^^^^^^^^^^
1639
1640Sets the number of elements/events (the size) of the event ring
1641(a circular buffer of events.) This number rounds to a power of 2.
1642Defaults to 131072 (128 << 10) elements.
1643
1644.. code-block:: console
1645
1646 elog-events 4096
1647
1648elog-post-mortem-dump
1649^^^^^^^^^^^^^^^^^^^^^
1650
1651Enables the attempt of a post-mortem elog dump to
1652*/tmp/elog_post_mortem.<PID_OF_CALLING_PROCESS>* if os_panic or
1653os_exit is called.
1654
1655.. code-block:: console
1656
1657 elog-post-mortem-dump