blob: 598e195af13abe402bbff3dc33d41918dd9f8382 [file] [log] [blame]
Nathan Skrzypczak9ad39c02021-08-19 11:38:06 +02001.. _configuration_reference:
John DeNisco06dcd452018-07-26 12:45:10 -04002
Nathan Skrzypczak9ad39c02021-08-19 11:38:06 +02003Configuration Reference
4=======================
John DeNisco06dcd452018-07-26 12:45:10 -04005
John DeNisco4f859682019-12-10 14:25:50 -05006Below is the list of some section names and their associated parameters.
7This is not an exhaustive list, but should give you an idea of how VPP can be configured.
8
9For all of the configuration parameters search the source code for instances of
10**VLIB_CONFIG_FUNCTION** and **VLIB_EARLY_CONFIG_FUNCTION**.
John DeNisco06dcd452018-07-26 12:45:10 -040011
12For example, the invocation *'VLIB_CONFIG_FUNCTION (foo_config, "foo")'* will
13cause the function *'foo_config'* to receive all parameters given in a
John DeNisco4f859682019-12-10 14:25:50 -050014parameter block named "foo": "foo { arg1 arg2 arg3 ... }".
John DeNisco06dcd452018-07-26 12:45:10 -040015
John DeNisco4f859682019-12-10 14:25:50 -050016The unix section
17----------------
John DeNisco06dcd452018-07-26 12:45:10 -040018
John DeNisco4f859682019-12-10 14:25:50 -050019Configures VPP startup and behavior type attributes, as well and any OS based
John DeNisco06dcd452018-07-26 12:45:10 -040020attributes.
21
John DeNisco4f859682019-12-10 14:25:50 -050022.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -040023
John DeNisco4f859682019-12-10 14:25:50 -050024 unix {
25 nodaemon
26 log /var/log/vpp/vpp.log
27 full-coredump
28 cli-listen /run/vpp/cli.sock
29 gid vpp
30 }
31
32nodaemon
33^^^^^^^^
34
35Do not fork / background the vpp process. Typical when invoking VPP
36applications from a process monitor. Set by default in the default
37*'startup.conf'* file.
38
39.. code-block:: console
40
41 nodaemon
42
Ruslan Babayeve31820a2020-02-14 17:45:02 -080043nosyslog
44^^^^^^^^
45
46Disable syslog and log errors to stderr instead. Typical when invoking
47VPP applications from a process monitor like runit or daemontools that
48pipe service's output to a dedicated log service, which will typically
49attach a timestamp and rotate the logs as necessary.
50
51.. code-block:: console
52
53 nosyslog
54
John DeNisco4f859682019-12-10 14:25:50 -050055interactive
56^^^^^^^^^^^
57
58Attach CLI to stdin/out and provide a debugging command line interface.
59
60.. code-block:: console
61
62 interactive
63
64log <filename>
65^^^^^^^^^^^^^^
66
67Logs the startup configuration and all subsequent CLI commands in filename.
68Very useful in situations where folks don't remember or can't be bothered
69to include CLI commands in bug reports. The default *'startup.conf'* file
70is to write to *'/var/log/vpp/vpp.log'*.
71
72In VPP 18.04, the default log file location was moved from '/tmp/vpp.log'
73to '/var/log/vpp/vpp.log' . The VPP code is indifferent to the file location.
74However, if SELinux is enabled, then the new location is required for the file
75to be properly labeled. Check your local *'startup.conf'* file for the log file
76location on your system.
77
78.. code-block:: console
79
80 log /var/log/vpp/vpp-debug.log
81
82exec | startup-config <filename>
83^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
84
85Read startup operational configuration from filename. The contents of the file
86will be performed as though entered at the CLI. The two keywords are aliases
87for the same function; if both are specified, only the last will have an effect.
88
89A file of CLI commands might look like:
90
91.. code-block:: console
92
93 $ cat /usr/share/vpp/scripts/interface-up.txt
94 set interface state TenGigabitEthernet1/0/0 up
95 set interface state TenGigabitEthernet1/0/1 up
96
97Parameter Example:
98
99.. code-block:: console
100
101 startup-config /usr/share/vpp/scripts/interface-up.txt
102
103gid <number | name>
104^^^^^^^^^^^^^^^^^^^
105
106Sets the effective group ID to the input group ID or group name of the calling
107process.
108
109.. code-block:: console
110
111 gid vpp
112
113full-coredump
114^^^^^^^^^^^^^
115
116Ask the Linux kernel to dump all memory-mapped address regions, instead of
117just text+data+bss.
118
119.. code-block:: console
120
121 full-coredump
122
123coredump-size unlimited | <n>G | <n>M | <n>K | <n>
124^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
125
John DeNisco06dcd452018-07-26 12:45:10 -0400126 Set the maximum size of the coredump file. The input value can be set in
127 GB, MB, KB or bytes, or set to *'unlimited'*.
John DeNisco4f859682019-12-10 14:25:50 -0500128
129.. code-block:: console
130
131 coredump-size unlimited
132
133cli-listen <ipaddress:port> | <socket-path>
134^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
135
John DeNisco06dcd452018-07-26 12:45:10 -0400136 Bind the CLI to listen at address localhost on TCP port 5002. This will
137 accept an ipaddress:port pair or a filesystem path; in the latter case a
138 local Unix socket is opened instead. The default *'startup.conf'* file
139 is to open the socket *'/run/vpp/cli.sock'*.
John DeNisco4f859682019-12-10 14:25:50 -0500140
141.. code-block:: console
142
143 cli-listen localhost:5002
144 cli-listen /run/vpp/cli.sock
145
146cli-line-mode
147^^^^^^^^^^^^^
148
John DeNisco06dcd452018-07-26 12:45:10 -0400149 Disable character-by-character I/O on stdin. Useful when combined with,
150 for example, emacs M-x gud-gdb.
John DeNisco4f859682019-12-10 14:25:50 -0500151
152.. code-block:: console
153
154 cli-line-mode
155
156cli-prompt <string>
157^^^^^^^^^^^^^^^^^^^
158
John DeNisco06dcd452018-07-26 12:45:10 -0400159 Configure the CLI prompt to be string.
John DeNisco4f859682019-12-10 14:25:50 -0500160
161.. code-block:: console
162
163 cli-prompt vpp-2
164
165cli-history-limit <n>
166^^^^^^^^^^^^^^^^^^^^^
167
Paul Vinciguerra7fa3dd22019-10-27 17:28:10 -0400168 Limit command history to <n> lines. A value of 0 disables command history.
John DeNisco06dcd452018-07-26 12:45:10 -0400169 Default value: 50
John DeNisco4f859682019-12-10 14:25:50 -0500170
171.. code-block:: console
172
173 cli-history-limit 100
174
175cli-no-banner
176^^^^^^^^^^^^^
177
John DeNisco06dcd452018-07-26 12:45:10 -0400178 Disable the login banner on stdin and Telnet connections.
John DeNisco4f859682019-12-10 14:25:50 -0500179
180.. code-block:: console
181
182 cli-no-banner
183
184cli-no-pager
185^^^^^^^^^^^^
186
John DeNisco06dcd452018-07-26 12:45:10 -0400187 Disable the output pager.
John DeNisco4f859682019-12-10 14:25:50 -0500188
189.. code-block:: console
190
191 cli-no-pager
192
193cli-pager-buffer-limit <n>
194^^^^^^^^^^^^^^^^^^^^^^^^^^
195
John DeNisco06dcd452018-07-26 12:45:10 -0400196 Limit pager buffer to <n> lines of output. A value of 0 disables the
197 pager. Default value: 100000
John DeNisco4f859682019-12-10 14:25:50 -0500198
199.. code-block:: console
200
201 cli-pager-buffer-limit 5000
202
203runtime-dir <dir>
204^^^^^^^^^^^^^^^^^
205
John DeNisco06dcd452018-07-26 12:45:10 -0400206 Set the runtime directory, which is the default location for certain
207 files, like socket files. Default is based on User ID used to start VPP.
208 Typically it is *'root'*, which defaults to *'/run/vpp/'*. Otherwise,
209 defaults to *'/run/user/<uid>/vpp/'*.
John DeNisco06dcd452018-07-26 12:45:10 -0400210
211.. code-block:: console
212
John DeNisco4f859682019-12-10 14:25:50 -0500213 runtime-dir /tmp/vpp
214
215poll-sleep-usec <n>
216^^^^^^^^^^^^^^^^^^^
217
218 Add a fixed-sleep between main loop poll. Default is 0, which is not to
219 sleep.
220
221.. code-block:: console
222
223 poll-sleep-usec 100
224
225pidfile <filename>
226^^^^^^^^^^^^^^^^^^
227
228 Writes the pid of the main thread in the given filename.
229
230.. code-block:: console
231
232 pidfile /run/vpp/vpp1.pid
John DeNisco06dcd452018-07-26 12:45:10 -0400233
234
John DeNisco4f859682019-12-10 14:25:50 -0500235The api-trace Section
236---------------------
John DeNisco06dcd452018-07-26 12:45:10 -0400237
John DeNisco4f859682019-12-10 14:25:50 -0500238The ability to trace, dump, and replay control-plane API traces makes all the
239difference in the world when trying to understand what the control-plane has
240tried to ask the forwarding-plane to do.
241
242Typically, one simply enables the API message trace scheme:
243
244.. code-block:: console
245
246 api-trace {
247 api-trace on
248 }
249
250on | enable
251^^^^^^^^^^^
252
253 Enable API trace capture from the beginning of time, and arrange for a
254 post-mortem dump of the API trace if the application terminates abnormally.
255 By default, the (circular) trace buffer will be configured to capture
256 256K traces. The default *'startup.conf'* file has trace enabled by default,
257 and unless there is a very strong reason, it should remain enabled.
258
259.. code-block:: console
260
261 on
262
263nitems <n>
264^^^^^^^^^^
265
266 Configure the circular trace buffer to contain the last <n> entries. By
267 default, the trace buffer captures the last 256K API messages received.
268
269.. code-block:: console
270
271 nitems 524288
272
273save-api-table <filename>
274^^^^^^^^^^^^^^^^^^^^^^^^^
275
276 Dumps the API message table to /tmp/<filename>.
277
278.. code-block:: console
279
280 save-api-table apiTrace-07-04.txt
281
282
283The api-segment Section
284-----------------------
285
286These values control various aspects of the binary API interface to VPP.
287
288The default looks like the following:
289
290.. code-block:: console
291
292 api-segment {
293 gid vpp
294 }
295
296
297prefix <path>
298^^^^^^^^^^^^^
299
300 Sets the prefix prepended to the name used for shared memory (SHM)
301 segments. The default is empty, meaning shared memory segments are created
302 directly in the SHM directory *'/dev/shm'*. It is worth noting that on
303 many systems *'/dev/shm'* is a symbolic link to somewhere else in the file
304 system; Ubuntu links it to *'/run/shm'*.
305
306.. code-block:: console
307
308 prefix /run/shm
309
310uid <number | name>
311^^^^^^^^^^^^^^^^^^^
312
313 Sets the user ID or name that should be used to set the ownership of the
314 shared memory segments. Defaults to the same user that VPP is started
315 with, probably root.
316
317.. code-block:: console
318
319 uid root
320
321gid <number | name>
322^^^^^^^^^^^^^^^^^^^
323
324 Sets the group ID or name that should be used to set the ownership of the
325 shared memory segments. Defaults to the same group that VPP is started
326 with, probably root.
327
328.. code-block:: console
329
330 gid vpp
331
332**The following parameters should only be set by those that are familiar with the
333interworkings of VPP.**
334
335baseva <x>
336^^^^^^^^^^
337
338 Set the base address for SVM global region. If not set, on AArch64, the
339 code will try to determine the base address. All other default to
340 0x30000000.
341
342.. code-block:: console
343
344 baseva 0x20000000
345
346global-size <n>G | <n>M | <n>
347^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
348
349 Set the global memory size, memory shared across all router instances,
350 packet buffers, etc. If not set, defaults to 64M. The input value can be
351 set in GB, MB or bytes.
352
353.. code-block:: console
354
355 global-size 2G
356
357global-pvt-heap-size <n>M | size <n>
358^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
359
360 Set the size of the global VM private mheap. If not set, defaults to 128k.
361 The input value can be set in MB or bytes.
362
363.. code-block:: console
364
365 global-pvt-heap-size size 262144
366
367api-pvt-heap-size <n>M | size <n>
368^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
369
370 Set the size of the api private mheap. If not set, defaults to 128k.
371 The input value can be set in MB or bytes.
372
373.. code-block:: console
374
375 api-pvt-heap-size 1M
376
377api-size <n>M | <n>G | <n>
378^^^^^^^^^^^^^^^^^^^^^^^^^^
379
380 Set the size of the API region. If not set, defaults to 16M. The input
381 value can be set in GB, MB or bytes.
382
383.. code-block:: console
384
385 api-size 64M
386
387The socksvr Section
388-------------------
389
390Enables a Unix domain socket which processes binary API messages. See
391.../vlibmemory/socket_api.c. If this parameter is not set, vpp
392won't process binary API messages over sockets.
393
394.. code-block:: console
395
396 socksvr {
397 # Explicitly name a socket file
398 socket-name /run/vpp/api.sock
399 or
400 # Use defaults as described below
401 default
402 }
403
404The "default" keyword instructs vpp to use /run/vpp/api.sock when
405running as root, otherwise to use /run/user/<uid>/api.sock.
406
407The cpu Section
408---------------
409
410In the VPP there is one main thread and optionally the user can create worker(s)
411The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically
412
413.. code-block:: console
414
415 cpu {
416 main-core 1
417 corelist-workers 2-3,18-19
418 }
419
420
421Manual pinning of thread(s) to CPU core(s)
422^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
423
424main-core
425^^^^^^^^^
426
427Set logical CPU core where main thread runs, if main core is not set VPP will use
428core 1 if available
429
430.. code-block:: console
431
432 main-core 1
433
434corelist-workers
435^^^^^^^^^^^^^^^^
436
437Set logical CPU core(s) where worker threads are running
438
439.. code-block:: console
440
441 corelist-workers 2-3,18-19
442
443Automatic pinning of thread(s) to CPU core(s)
444^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
445
446skip-cores number
447^^^^^^^^^^^^^^^^^
448
449Sets number of CPU core(s) to be skipped (1 ... N-1), Skipped CPU core(s) are
450not used for pinning main thread and working thread(s).
451
452The main thread is automatically pinned to the first available CPU core and worker(s)
453are pinned to next free CPU core(s) after core assigned to main thread
454
455.. code-block:: console
456
457 skip-cores 4
458
459workers number
460^^^^^^^^^^^^^^
461
462Specify a number of workers to be created Workers are pinned to N consecutive
463CPU cores while skipping "skip-cores" CPU core(s) and main thread's CPU core
464
465.. code-block:: console
466
467 workers 2
468
469scheduler-policy other | batch | idle | fifo | rr
470^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
471
472Set scheduling policy and priority of main and worker threads
473
474Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)
475idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)
476
477.. code-block:: console
478
479 scheduler-policy fifo
480
481scheduler-priority number
482^^^^^^^^^^^^^^^^^^^^^^^^^
483
484Scheduling priority is used only for "real-time policies (fifo and rr),
485and has to be in the range of priorities supported for a particular policy
486
487.. code-block:: console
488
489 scheduler-priority 50
490
491The buffers Section
492-------------------
493
494.. code-block:: console
495
496 buffers {
497 buffers-per-numa 128000
498 default data-size 2048
Nathan Skrzypczak61559022020-11-23 16:25:21 +0100499 page-size default-hugepage
John DeNisco4f859682019-12-10 14:25:50 -0500500 }
501
502buffers-per-numa number
503^^^^^^^^^^^^^^^^^^^^^^^
504
505Increase number of buffers allocated, needed only in scenarios with
506large number of interfaces and worker threads. Value is per numa node.
Nathan Skrzypczak9ad39c02021-08-19 11:38:06 +0200507Default is 16384 (8192 if running unprivileged)
John DeNisco4f859682019-12-10 14:25:50 -0500508
509.. code-block:: console
510
511 buffers-per-numa 128000
512
513default data-size number
514^^^^^^^^^^^^^^^^^^^^^^^^
515
516Size of buffer data area, default is 2048
517
518.. code-block:: console
519
520 default data-size 2048
521
Nathan Skrzypczak61559022020-11-23 16:25:21 +0100522page-size number
523^^^^^^^^^^^^^^^^
524
525Set the page size for buffer allocation
526
527.. code-block:: console
528
529 page-size 4K
530 page-size 2M
531 page-size 1G
532 page-size default
533 page-size default-hugepage
534
John DeNisco4f859682019-12-10 14:25:50 -0500535
536The dpdk Section
537----------------
538
539.. code-block:: console
540
541 dpdk {
542 dev default {
543 num-rx-desc 512
544 num-tx-desc 512
545 }
546
547 dev 0000:02:00.1 {
548 num-rx-queues 2
549 name eth0
550 }
551 }
552
553dev <pci-dev> | default { .. }
554^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
555
556White-list [as in, attempt to drive] a specific PCI device. PCI-dev is a
557string of the form "DDDD:BB:SS.F" where:
558
559* DDDD = Domain
560* BB = Bus Number
561* SS = Slot number
562* F = Function
563
Paul Vinciguerra5ac392d2020-03-01 01:37:37 -0500564If the keyword **default** is used the values will apply to all the devices.
John DeNisco4f859682019-12-10 14:25:50 -0500565
566This is the same format used in the linux sysfs tree (i.e./sys/bus/pci/devices)
567for PCI device directory names.
568
569.. code-block:: console
570
571 dpdk {
572 dev default {
573 num-rx-desc 512
574 num-tx-desc 512
575 }
576
577dev <pci-dev> { .. }
578^^^^^^^^^^^^^^^^^^^^
579
580Whitelist specific interface by specifying PCI address. When whitelisting specific
581interfaces by specifying PCI address, additional custom parameters can also be
582specified. Valid options include:
583
584.. code-block:: console
585
586 dev 0000:02:00.0
587 dev 0000:03:00.0
588
589blacklist <pci-dev>
590^^^^^^^^^^^^^^^^^^^
591
592Blacklist specific device type by specifying PCI vendor:device Whitelist entries
593take precedence
594
595.. code-block:: console
596
597 blacklist 8086:10fb
598
599name interface-name
600^^^^^^^^^^^^^^^^^^^
601
602Set interface name
603
604.. code-block:: console
605
606 dev 0000:02:00.1 {
607 name eth0
608 }
609
610num-rx-queues <n>
611^^^^^^^^^^^^^^^^^
612
613Number of receive queues. Also enables RSS. Default value is 1.
614
615.. code-block:: console
616
617 dev 0000:02:00.1 {
Paul Vinciguerra5ac392d2020-03-01 01:37:37 -0500618 num-rx-queues <n>
John DeNisco4f859682019-12-10 14:25:50 -0500619 }
620
621num-tx-queues <n>
622^^^^^^^^^^^^^^^^^
623
624Number of transmit queues. Default is equal to number of worker threads
625or 1 if no workers treads.
626
627.. code-block:: console
628
629 dev 000:02:00.1 {
630 num-tx-queues <n>
631 }
632
633num-rx-desc <n>
634^^^^^^^^^^^^^^^
635
636Number of descriptors in receive ring. Increasing or reducing number
637can impact performance. Default is 1024.
638
639.. code-block:: console
640
641 dev 000:02:00.1 {
642 num-rx-desc <n>
643 }
644
John DeNisco4f859682019-12-10 14:25:50 -0500645uio-driver driver-name
646^^^^^^^^^^^^^^^^^^^^^^
647
648Change UIO driver used by VPP, Options are: igb_uio, vfio-pci, uio_pci_generic
649or auto (default)
650
651
652.. code-block:: console
653
654 uio-driver vfio-pci
655
Benoît Ganne6a073482022-10-13 17:22:26 +0200656uio-bind-force
657^^^^^^^^^^^^^^^^^^^^^^
658
659Force VPP to rebind the interface(s) to the selected UIO driver, even if the
660interface is up in Linux.
661By default, VPP will refuse to bind an interface if it is up in Linux,
662in case it is in active use.
663
664.. code-block:: console
665
666 uio-bind-force
667
John DeNisco4f859682019-12-10 14:25:50 -0500668no-multi-seg
669^^^^^^^^^^^^
670
671Disable multi-segment buffers, improves performance but disables Jumbo MTU support
672
673.. code-block:: console
674
675 no-multi-seg
676
677socket-mem <n>
678^^^^^^^^^^^^^^
679
680Change hugepages allocation per-socket, needed only if there is need for
681larger number of mbufs. Default is 256M on each detected CPU socket
682
683.. code-block:: console
684
685 socket-mem 2048,2048
686
687no-tx-checksum-offload
688^^^^^^^^^^^^^^^^^^^^^^
689
690Disables UDP / TCP TX checksum offload. Typically needed for use faster
691vector PMDs (together with no-multi-seg)
692
693.. code-block:: console
694
695 no-tx-checksum-offload
696
697enable-tcp-udp-checksum
698^^^^^^^^^^^^^^^^^^^^^^^
699
700Enable UDP / TCP TX checksum offload This is the reversed option of
701'no-tx-checksum-offload'
702
703.. code-block:: console
704
705 enable-tcp-udp-checksum
706
707The plugins Section
708-------------------
709
710Configure VPP plugins.
711
712.. code-block:: console
713
714 plugins {
715 path /ws/vpp/build-root/install-vpp-native/vpp/lib/vpp_plugins
716 plugin dpdk_plugin.so enable
717 }
718
719path pathname
720^^^^^^^^^^^^^
721
722Adjust the plugin path depending on where the VPP plugins are.
723
724.. code-block:: console
725
726 path /ws/vpp/build-root/install-vpp-native/vpp/lib/vpp_plugins
727
728plugin plugin-name | default enable | disable
729^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
730
731Disable all plugins by default and then selectively enable specific plugins
732
733.. code-block:: console
734
735 plugin default disable
736 plugin dpdk_plugin.so enable
737 plugin acl_plugin.so enable
738
739Enable all plugins by default and then selectively disable specific plugins
740
741.. code-block:: console
742
743 plugin dpdk_plugin.so disable
744 plugin acl_plugin.so disable
745
746Th statseg Section
747^^^^^^^^^^^^^^^^^^
748
749.. code-block:: console
750
751 statseg {
752 per-node-counters on
753 }
754
755socket-name <filename>
756^^^^^^^^^^^^^^^^^^^^^^
757
758Name of the stats segment socket defaults to /run/vpp/stats.sock.
759
760.. code-block:: console
761
762 socket-name /run/vpp/stats.sock
763
764size <nnn>[KMG]
765^^^^^^^^^^^^^^^
766
767The size of the stats segment, defaults to 32mb
768
769.. code-block:: console
770
771 size 1024M
772
773per-node-counters on | off
774^^^^^^^^^^^^^^^^^^^^^^^^^^
775
776Defaults to none
777
778.. code-block:: console
779
780 per-node-counters on
781
782update-interval <f64-seconds>
783^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
784
785Sets the segment scrape / update interval
786
787.. code-block:: console
788
789 update-interval 300
790
791
792Some Advanced Parameters:
793-------------------------
794
795
796acl-plugin Section
797------------------
John DeNisco06dcd452018-07-26 12:45:10 -0400798
andrew9f0c0202018-08-14 09:35:42 -0400799These parameters change the configuration of the ACL (access control list) plugin,
800such as how the ACL bi-hash tables are initialized.
John DeNisco06dcd452018-07-26 12:45:10 -0400801
andrew9f0c0202018-08-14 09:35:42 -0400802They should only be set by those that are familiar with the interworkings of VPP
803and the ACL Plugin.
804
805The first three parameters, *connection hash buckets*, *connection hash memory*,
806and *connection count max*, set the **connection table per-interface parameters**
807for modifying how the two bounded-index extensible hash tables for
808IPv6 (40\*8 bit key and 8\*8 bit value pairs) and IPv4
809(16\*8 bit key and 8\*8 bit value pairs) **ACL plugin FA interface sessions**
810are initialized.
John DeNisco06dcd452018-07-26 12:45:10 -0400811
John DeNisco4f859682019-12-10 14:25:50 -0500812connection hash buckets <n>
813^^^^^^^^^^^^^^^^^^^^^^^^^^^
814
815Sets the number of hash buckets (rounded up to a power of 2) in each
816of the two bi-hash tables. Defaults to 64\*1024 (65536) hash buckets.
817
818.. code-block:: console
819
820 connection hash buckets 65536
821
822connection hash memory <n>
823^^^^^^^^^^^^^^^^^^^^^^^^^^
824
825Sets the allocated memory size (in bytes) for each of the two bi-hash tables.
826Defaults to 1073741824 bytes.
827
828.. code-block:: console
829
830 connection hash memory 1073741824
831
832connection count max <n>
833^^^^^^^^^^^^^^^^^^^^^^^^
834
835Sets the maximum number of pool elements when allocating each per-worker
836pool of sessions for both bi-hash tables. Defaults to 500000 elements in each pool.
837
838.. code-block:: console
839
840 connection count max 500000
841
842main heap size <n>G | <n>M | <n>K | <n>
843^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
844
845Sets the size of the main memory heap that holds all the ACL module related
846allocations (other than hash.) Default size is 0, but during
847ACL heap initialization is equal to
848*per_worker_size_with_slack * tm->n_vlib_mains + bihash_size + main_slack*.
849Note that these variables are partially based on the
850**connection table per-interface parameters** mentioned above.
851
852.. code-block:: console
853
854 main heap size 3G
John DeNisco06dcd452018-07-26 12:45:10 -0400855
andrew9f0c0202018-08-14 09:35:42 -0400856The next three parameters, *hash lookup heap size*, *hash lookup hash buckets*,
857and *hash lookup hash memory*, modify the initialization of the bi-hash lookup
858table used by the ACL plugin. This table is initialized when attempting to apply
859an ACL to the existing vector of ACLs looked up during packet processing
860(but it is found that the table does not exist / has not been initialized yet.)
John DeNisco4f859682019-12-10 14:25:50 -0500861
862hash lookup heap size <n>G | <n>M | <n> K | <n>
863^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
864
865Sets the size of the memory heap that holds all the miscellaneous allocations
866related to hash-based lookups. Default size is 67108864 bytes.
867
868.. code-block:: console
869
870 hash lookup heap size 70M
871
872hash lookup hash buckets <n>
873^^^^^^^^^^^^^^^^^^^^^^^^^^^^
874
875Sets the number of hash buckets (rounded up to a power of 2) in the bi-hash
876lookup table. Defaults to 65536 hash buckets.
877
878.. code-block:: console
879
880 hash lookup hash buckets 65536
881
882hash lookup hash memory <n>
883^^^^^^^^^^^^^^^^^^^^^^^^^^^
884
885Sets the allocated memory size (in bytes) for the bi-hash lookup table.
886Defaults to 67108864 bytes.
887
888.. code-block:: console
889
890 hash lookup hash memory 67108864
891
892use tuple merge <n>
893^^^^^^^^^^^^^^^^^^^
894
895Sets a boolean value indicating whether or not to use TupleMerge
896for hash ACL's. Defaults to 1 (true), meaning the default implementation
897of hashing ACL's does use TupleMerge.
898
899.. code-block:: console
900
901 use tuple merge 1
902
903tuple merge split threshold <n>
904^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
905
906Sets the maximum amount of rules (ACE's) that can collide in a bi-hash
907lookup table before the table is split into two new tables. Splitting ensures
908less rule collisions by hashing colliding rules based on their common tuple
909(usually their maximum common tuple.) Splitting occurs when the
910*length of the colliding rules vector* is greater than this threshold amount.
911Defaults to a maximum of 39 rule collisions per table.
912
913.. code-block:: console
914
915 tuple merge split threshold 30
916
917reclassify sessions <n>
918^^^^^^^^^^^^^^^^^^^^^^^
919
920Sets a boolean value indicating whether or not to take the epoch of the session
921into account when dealing with re-applying ACL's or changing already applied ACL's.
922Defaults to 0 (false), meaning the default implementation does NOT take the
923epoch of the session into account.
924
925.. code-block:: console
926
927 reclassify sessions 1
John DeNisco06dcd452018-07-26 12:45:10 -0400928
929.. _api-queue:
930
John DeNisco4f859682019-12-10 14:25:50 -0500931api-queue Section
932-----------------
John DeNisco06dcd452018-07-26 12:45:10 -0400933
John DeNisco4f859682019-12-10 14:25:50 -0500934length <n>
935^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -0400936
John DeNisco4f859682019-12-10 14:25:50 -0500937Sets the api queue length. Minimum valid queue length is 1024, which is
938also the default.
John DeNisco06dcd452018-07-26 12:45:10 -0400939
John DeNisco4f859682019-12-10 14:25:50 -0500940.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -0400941
John DeNisco4f859682019-12-10 14:25:50 -0500942 length 2048
John DeNisco06dcd452018-07-26 12:45:10 -0400943
944.. _cj:
945
John DeNisco4f859682019-12-10 14:25:50 -0500946cj Section
947----------
John DeNisco06dcd452018-07-26 12:45:10 -0400948
949The circular journal (CJ) thread-safe circular log buffer scheme is
950occasionally useful when chasing bugs. Calls to it should not be checked in.
951See .../vlib/vlib/unix/cj.c. The circular journal is disables by default.
952When enabled, the number of records must be provided, there is no default
953value.
954
John DeNisco4f859682019-12-10 14:25:50 -0500955records <n>
956^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -0400957
John DeNisco4f859682019-12-10 14:25:50 -0500958Configure the number of circular journal records in the circular buffer.
959The number of records should be a power of 2.
John DeNisco06dcd452018-07-26 12:45:10 -0400960
John DeNisco4f859682019-12-10 14:25:50 -0500961.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -0400962
John DeNisco4f859682019-12-10 14:25:50 -0500963 records 131072
John DeNisco06dcd452018-07-26 12:45:10 -0400964
John DeNisco4f859682019-12-10 14:25:50 -0500965on
966^^
John DeNisco06dcd452018-07-26 12:45:10 -0400967
John DeNisco4f859682019-12-10 14:25:50 -0500968Turns on logging at the earliest possible moment.
John DeNisco06dcd452018-07-26 12:45:10 -0400969
John DeNisco4f859682019-12-10 14:25:50 -0500970.. code-block:: console
971
972 on
973
974dns Section
975-----------
976
977max-cache-size <n>
978^^^^^^^^^^^^^^^^^^
979
980Set the maximum number of active elements allowed in the pool of
981dns cache entries. When resolving an expired entry or adding a new
982static entry and the max number of active entries is reached,
983a random, non-static entry is deleted. Defaults to 65535 entries.
984
985.. code-block:: console
986
987 max-cache-size 65535
988
Paul Vinciguerra491741a2020-03-02 16:10:54 -0500989
990ethernet Section
991-----------------
992
993default-mtu <n>
994^^^^^^^^^^^^^^^
995
996Specifies the default MTU size for Ethernet interfaces. Must be in
997the range of 64-9000. The default is 9000.
998
999.. code-block:: console
1000
1001 default-mtu 1500
1002
John DeNisco4f859682019-12-10 14:25:50 -05001003heapsize Section
1004-----------------
John DeNisco06dcd452018-07-26 12:45:10 -04001005
1006Heapsize configuration controls the size of the main heap. The heap size is
1007configured very early in the boot sequence, before loading plug-ins or doing
1008much of anything else.
1009
John DeNisco4f859682019-12-10 14:25:50 -05001010heapsize <n>M | <n>G
1011^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001012
Dave Barach2fef3df2020-02-21 17:31:17 -05001013Specifies the size of the heap in MB or GB. The default is 1GB.
John DeNisco06dcd452018-07-26 12:45:10 -04001014
John DeNisco4f859682019-12-10 14:25:50 -05001015.. code-block:: console
1016
1017 heapsize 2G
1018
1019ip Section
1020----------
John DeNisco06dcd452018-07-26 12:45:10 -04001021
1022IPv4 heap configuration. he heap size is configured very early in the boot
1023sequence, before loading plug-ins or doing much of anything else.
1024
John DeNisco4f859682019-12-10 14:25:50 -05001025heap-size <n>G | <n>M | <n>K | <n>
1026^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001027
John DeNisco4f859682019-12-10 14:25:50 -05001028Set the IPv4 mtrie heap size, which is the amount of memory dedicated to
1029the destination IP lookup table. The input value can be set in GB, MB, KB
1030or bytes. The default value is 32MB.
John DeNisco06dcd452018-07-26 12:45:10 -04001031
John DeNisco4f859682019-12-10 14:25:50 -05001032.. code-block:: console
1033
1034 heap-size 64M
1035
1036ip6 Section
1037-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001038
1039IPv6 heap configuration. he heap size is configured very early in the boot
1040sequence, before loading plug-ins or doing much of anything else.
1041
1042
John DeNisco4f859682019-12-10 14:25:50 -05001043heap-size <n>G | <n>M | <n>K | <n>
1044^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001045
John DeNisco4f859682019-12-10 14:25:50 -05001046Set the IPv6 forwarding table heap size. The input value can be set in GB,
1047MB, KB or bytes. The default value is 32MB.
John DeNisco06dcd452018-07-26 12:45:10 -04001048
John DeNisco4f859682019-12-10 14:25:50 -05001049.. code-block:: console
1050
1051 heap-size 64M
1052
1053hash-buckets <n>
1054^^^^^^^^^^^^^^^^
1055
1056Set the number of IPv6 forwarding table hash buckets. The default value is
105764K (65536).
1058
1059.. code-block:: console
1060
1061 hash-buckets 131072
1062
1063l2learn Section
1064---------------
John DeNisco06dcd452018-07-26 12:45:10 -04001065
1066Configure Layer 2 MAC Address learning parameters.
1067
John DeNisco4f859682019-12-10 14:25:50 -05001068limit <n>
1069^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001070
John DeNisco4f859682019-12-10 14:25:50 -05001071Configures the number of L2 (MAC) addresses in the L2 FIB at any one time,
1072which limits the size of the L2 FIB to <n> concurrent entries. Defaults to
10734M entries (4194304).
John DeNisco06dcd452018-07-26 12:45:10 -04001074
John DeNisco4f859682019-12-10 14:25:50 -05001075.. code-block:: console
1076
1077 limit 8388608
1078
1079l2tp Section
1080------------
John DeNisco06dcd452018-07-26 12:45:10 -04001081
1082IPv6 Layer 2 Tunnelling Protocol Version 3 (IPv6-L2TPv3) configuration controls
1083the method used to locate a specific IPv6-L2TPv3 tunnel. The following settings
1084are mutually exclusive:
1085
John DeNisco4f859682019-12-10 14:25:50 -05001086lookup-v6-src
1087^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001088
John DeNisco4f859682019-12-10 14:25:50 -05001089Lookup tunnel by IPv6 source address.
John DeNisco06dcd452018-07-26 12:45:10 -04001090
John DeNisco4f859682019-12-10 14:25:50 -05001091.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001092
John DeNisco4f859682019-12-10 14:25:50 -05001093 lookup-v6-src
John DeNisco06dcd452018-07-26 12:45:10 -04001094
John DeNisco4f859682019-12-10 14:25:50 -05001095lookup-v6-dst
1096^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001097
John DeNisco4f859682019-12-10 14:25:50 -05001098Lookup tunnel by IPv6 destination address.
John DeNisco06dcd452018-07-26 12:45:10 -04001099
John DeNisco4f859682019-12-10 14:25:50 -05001100.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001101
John DeNisco4f859682019-12-10 14:25:50 -05001102 lookup-v6-dst
1103
1104lookup-session-id
1105^^^^^^^^^^^^^^^^^
1106
1107Lookup tunnel by L2TPv3 session identifier.
1108
1109.. code-block:: console
1110
1111 lookup-session-id
1112
1113logging Section
1114---------------
1115
1116size <n>
1117^^^^^^^^
1118
1119Number of entries in the global logging buffer. Defaults to 512.
1120
1121.. code-block:: console
1122
1123 size 512
1124
1125nthrottle-time <n>
1126^^^^^^^^^^^^^^^^^^
1127
1128Set the global value for the time to wait (in seconds) before resuming
1129logging of a log subclass that exceeded the per-subclass message-per-second
1130threshold. Defaults to 3.
1131
1132.. code-block:: console
1133
1134 unthrottle-time 3
1135
1136default-log-level emerg|alert | crit | err | warn | notice | info | debug | disabled
1137^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1138
1139Set the default logging level of the system log. Defaults to notice.
1140
1141.. code-block:: console
1142
1143 default-log-level notice
1144
1145default-syslog-log-level emerg|alert | crit | err | warn | notice | info | debug | disabled
1146^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1147
1148Set the default logging level of the syslog target. Defaults to warning.
1149
1150.. code-block:: console
1151
1152 default-syslog-log-level warning
1153
1154mactime Section
1155---------------
1156
1157lookup-table-buckets <n>
1158^^^^^^^^^^^^^^^^^^^^^^^^
1159
1160Sets the number of hash buckets in the mactime bi-hash lookup table.
1161Defaults to 128 buckets.
1162
1163.. code-block:: console
1164
1165 lookup-table-buckets 128
1166
1167lookup-table-memory <n>G | <n>M | <n>K | <n>
1168^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1169
1170Sets the allocated memory size (in bytes) for the mactime bi-hash lookup table.
1171The input value can be set in GB, MB, KB or bytes. The default value is 262144
1172(256 << 10) bytes or roughly 256KB.
1173
1174.. code-block:: console
1175
1176 lookup-table-memory 300K
1177
1178timezone_offset <n>
1179^^^^^^^^^^^^^^^^^^^
1180
1181Sets the timezone offset from UTC. Defaults to an offset of -5 hours
1182from UTC (US EST / EDT.)
1183
1184.. code-block:: console
1185
1186 timezone_offset -5
John DeNisco06dcd452018-07-26 12:45:10 -04001187
1188"map" Parameters
John DeNisco4f859682019-12-10 14:25:50 -05001189----------------
John DeNisco06dcd452018-07-26 12:45:10 -04001190
John DeNisco4f859682019-12-10 14:25:50 -05001191customer edge
1192^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001193
John DeNisco4f859682019-12-10 14:25:50 -05001194Sets a boolean true to indicate that the MAP node is a Customer Edge (CE)
1195router. The boolean defaults to false, meaning the MAP node is not treated
1196as a CE router.
John DeNisco06dcd452018-07-26 12:45:10 -04001197
John DeNisco4f859682019-12-10 14:25:50 -05001198.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001199
John DeNisco4f859682019-12-10 14:25:50 -05001200 customer edge
John DeNisco06dcd452018-07-26 12:45:10 -04001201
John DeNisco4f859682019-12-10 14:25:50 -05001202nat Section
1203-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001204
andrew9f0c0202018-08-14 09:35:42 -04001205These parameters change the configuration of the NAT (Network address translation)
1206plugin, such as how the NAT & NAT64 bi-hash tables are initialized, if the NAT is
1207endpoint dependent, or if the NAT is deterministic.
1208
1209For each NAT per thread data, the following 4 parameters change how certain
1210bi-hash tables are initialized.
1211
John DeNisco4f859682019-12-10 14:25:50 -05001212translation hash buckets <n>
1213^^^^^^^^^^^^^^^^^^^^^^^^^^^^
andrew9f0c0202018-08-14 09:35:42 -04001214
John DeNisco4f859682019-12-10 14:25:50 -05001215Sets the number of hash buckets in each of the two in/out NAT bi-hash lookup
1216tables. Defaults to 1024 buckets.
andrew9f0c0202018-08-14 09:35:42 -04001217
John DeNisco4f859682019-12-10 14:25:50 -05001218If the NAT is indicated to be endpoint dependent, which can be set with the
1219:ref:`endpoint-dependent parameter <endpointLabel>`, then this parameter sets
1220the number of hash buckets in each of the two endpoint dependent sessions
1221NAT bi-hash lookup tables.
1222
1223.. code-block:: console
1224
1225 translation hash buckets 1024
1226
1227translation hash memory <n>
1228^^^^^^^^^^^^^^^^^^^^^^^^^^^
1229
1230Sets the allocated memory size (in bytes) for each of the two in/out NAT
1231bi-hash tables. Defaults to 134217728 (128 << 20) bytes, which is roughly 128 MB.
1232
1233If the NAT is indicated to be endpoint dependent, which can be set with the
1234:ref:`endpoint-dependent parameter <endpointLabel>`, then this parameter sets the
1235allocated memory size for each of the two endpoint dependent sessions NAT bi-hash
1236lookup tables.
1237
1238.. code-block:: console
1239
1240 translation hash memory 134217728
1241
1242user hash buckets <n>
1243^^^^^^^^^^^^^^^^^^^^^
1244
1245Sets the number of hash buckets in the user bi-hash lookup table
1246(src address lookup for a user.) Defaults to 128 buckets.
1247
1248.. code-block:: console
1249
1250 user hash buckets 128
1251
1252user hash memory <n>
1253^^^^^^^^^^^^^^^^^^^^
1254
1255Sets the allocated memory size (in bytes) for the user bi-hash lookup table
1256(src address lookup for a user.) Defaults to 67108864 (64 << 20) bytes,
1257which is roughly 64 MB.
1258
1259.. code-block:: console
1260
1261 user hash memory 67108864
1262
1263max translations per user <n>
1264^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1265
1266Sets the maximum amount of dynamic and/or static NAT sessions each user can have.
1267Defaults to 100. When this limit is reached, the least recently used translation
1268is recycled.
1269
1270.. code-block:: console
1271
1272 max translations per user 50
1273
1274deterministic
1275^^^^^^^^^^^^^
1276
1277Sets a boolean value to 1 indicating that the NAT is deterministic. Defaults to 0,
1278meaning the NAT is not deterministic.
1279
1280.. code-block:: console
1281
1282 deterministic
1283
1284nat64 bib hash buckets <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001285^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001286
1287Sets the number of hash buckets in each of the two in/out NAT64 BIB bi-hash
1288tables. Defaults to 1024 buckets.
1289
1290.. code-block:: console
1291
1292 nat64 bib hash buckets 1024
1293
1294nat64 bib hash memory <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001295^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001296
1297Sets the allocated memory size (in bytes) for each of the two in/out NAT64
1298BIB bi-hash tables. Defaults to 134217728 (128 << 20) bytes,
1299which is roughly 128 MB.
1300
1301.. code-block:: console
1302
1303 nat64 bib hash memory 134217728
1304
1305nat64 st hash buckets <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001306^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001307
1308Sets the number of hash buckets in each of the two in/out NAT64 session table
1309bi-hash tables. Defaults to 2048 buckets.
1310
1311.. code-block:: console
1312
1313 nat64 st hash buckets 2048
1314
1315nat64 st hash memory <n>
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001316^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco4f859682019-12-10 14:25:50 -05001317
1318Sets the allocated memory size (in bytes) for each of the two in/out NAT64 session
1319table bi-hash tables. Defaults to 268435456 (256 << 20) bytes, which is roughly
1320256 MB.
1321
1322.. code-block:: console
1323
1324 nat64 st hash memory 268435456
1325
andrew9f0c0202018-08-14 09:35:42 -04001326.. _endpointLabel:
1327
John DeNisco4f859682019-12-10 14:25:50 -05001328endpoint-dependent
1329^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001330
John DeNisco4f859682019-12-10 14:25:50 -05001331Sets a boolean value to 1, indicating that the NAT is endpoint dependent.
1332Defaults to 0, meaning the NAT is not endpoint dependent.
John DeNisco06dcd452018-07-26 12:45:10 -04001333
John DeNisco4f859682019-12-10 14:25:50 -05001334.. code-block:: console
1335
1336 endpoint-dependent
1337
1338oam Section
1339-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001340
1341OAM configuration controls the (ip4-icmp) interval, and number of misses
1342allowed before reporting an oam target down to any registered listener.
1343
John DeNisco4f859682019-12-10 14:25:50 -05001344interval <n.n>
1345^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001346
John DeNisco4f859682019-12-10 14:25:50 -05001347Interval, floating-point seconds, between sending OAM IPv4 ICMP messages.
1348Default is 2.04 seconds.
John DeNisco06dcd452018-07-26 12:45:10 -04001349
John DeNisco4f859682019-12-10 14:25:50 -05001350.. code-block:: console
andrew9f0c0202018-08-14 09:35:42 -04001351
John DeNisco4f859682019-12-10 14:25:50 -05001352 interval 3.5
John DeNisco06dcd452018-07-26 12:45:10 -04001353
Jieqiang Wangaffa0552019-10-22 20:09:16 +08001354physmem Section
1355---------------
1356
1357Configuration parameters used to specify base address and maximum size of
1358the memory allocated for the pmalloc module in VPP. pmalloc is a NUMA-aware,
1359growable physical memory allocator. pmalloc allocates memory for the DPDK
1360memory pool.
1361
1362base-addr <address>
1363^^^^^^^^^^^^^^^^^^^
1364
1365Specify the base address for pmalloc memory space.
1366
1367.. code-block:: console
1368
1369 base-addr 0xfffe00000000
1370
1371max-size <n>G | <n>M | <n>K | <n>
1372^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1373
1374Set the memory size for pmalloc memory space. The default is 16G.
1375
1376.. code-block:: console
1377
1378 max-size 4G
1379
John DeNisco4f859682019-12-10 14:25:50 -05001380tapcli Section
1381--------------
John DeNisco06dcd452018-07-26 12:45:10 -04001382
andrew9f0c0202018-08-14 09:35:42 -04001383Configuration parameters for TAPCLI (dynamic tap interface hookup.)
1384
John DeNisco4f859682019-12-10 14:25:50 -05001385mtu <n>
1386^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001387
John DeNisco4f859682019-12-10 14:25:50 -05001388Sets interface MTU (maximum transmission unit) size in bytes. This size
1389is also related to the number of MTU buffers. Defaults to 1500 bytes.
John DeNisco06dcd452018-07-26 12:45:10 -04001390
John DeNisco4f859682019-12-10 14:25:50 -05001391.. code-block:: console
1392
1393 mtu 1500
1394
1395disable
1396^^^^^^^
1397
1398Disables TAPCLI. Default is that TAPCLI is enabled.
1399
1400.. code-block:: console
1401
1402 disable
1403
1404
1405tcp Section
1406-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001407
andrew9f0c0202018-08-14 09:35:42 -04001408Configuration parameters for TCP host stack utilities. The following
1409preallocation parameters are related to the initialization of fixed-size,
1410preallocation pools.
1411
John DeNisco4f859682019-12-10 14:25:50 -05001412preallocated-connections <n>
1413^^^^^^^^^^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001414
John DeNisco4f859682019-12-10 14:25:50 -05001415Sets the number of preallocated TCP connections. Defaults to 0.
1416The preallocated connections per thread is related to this value,
1417equal to (preallocated_connections / (num_threads - 1)).
John DeNisco06dcd452018-07-26 12:45:10 -04001418
John DeNisco4f859682019-12-10 14:25:50 -05001419.. code-block:: console
1420
1421 preallocated-connections 5
1422
1423preallocated-half-open-connections <n>
1424^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1425
1426Sets the number of preallocated TCP half-open connections. Defaults to 0.
1427
1428.. code-block:: console
1429
1430 preallocated-half-open-connections 5
1431
1432buffer-fail-fraction <n.n>
1433^^^^^^^^^^^^^^^^^^^^^^^^^^
1434
1435Sets the TCP buffer fail fraction (a float) used for fault-injection
1436when debugging TCP buffer allocation. Its use is found in *tcp_debug.h*.
1437Defaults to 0.0.
1438
1439.. code-block:: console
1440
1441 buffer-fail-fraction 0.0
1442
1443
1444tls Section
1445-----------
John DeNisco06dcd452018-07-26 12:45:10 -04001446
andrew9f0c0202018-08-14 09:35:42 -04001447Configures TLS parameters, such as enabling the use of test certificates.
1448These parameters affect the tlsmbedtls and tlsopenssl plugins.
1449
John DeNisco4f859682019-12-10 14:25:50 -05001450use-test-cert-in-ca
1451^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001452
John DeNisco4f859682019-12-10 14:25:50 -05001453Sets a boolean value to 1 to indicate during the initialization of a
1454TLS CA chain to attempt to parse and add test certificates to the chain.
1455Defaults to 0, meaning test certificates are not used.
John DeNisco06dcd452018-07-26 12:45:10 -04001456
John DeNisco4f859682019-12-10 14:25:50 -05001457.. code-block:: console
1458
1459 use-test-cert-in-ca
1460
1461ca-cert-path <filename>
1462^^^^^^^^^^^^^^^^^^^^^^^
1463
1464Sets the filename path of the location of TLS CA certificates, used when
1465initializing and loading TLS CA certificates during the initialization
1466of a TLS CA chain. If not set, the default filename path is
1467*/etc/ssl/certs/ca-certificates.crt*.
1468
1469.. code-block:: console
1470
1471 ca-cert-path /etc/ssl/certs/ca-certificates.crt
1472
1473
1474tuntap Section
1475--------------
John DeNisco06dcd452018-07-26 12:45:10 -04001476
1477The "tuntap" driver configures a point-to-point interface between the vpp
1478engine and the local Linux kernel stack. This allows e.g. users to ssh to the
1479host | VM | container via vpp "revenue" interfaces. It's marginally useful, and
1480is currently disabled by default. To [dynamically] create TAP interfaces - the
1481preferred scheme - see the "tap_connect" binary API. The Linux network stack
1482"vnet" interface needs to manually configure, and VLAN and other settings if
1483desired.
1484
John DeNisco06dcd452018-07-26 12:45:10 -04001485
John DeNisco4f859682019-12-10 14:25:50 -05001486enable|disable
1487^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001488
John DeNisco4f859682019-12-10 14:25:50 -05001489Enable or disable the tun/tap driver.
John DeNisco06dcd452018-07-26 12:45:10 -04001490
John DeNisco4f859682019-12-10 14:25:50 -05001491.. code-block:: console
John DeNisco06dcd452018-07-26 12:45:10 -04001492
John DeNisco4f859682019-12-10 14:25:50 -05001493 enable
1494
1495ethernet|ether
1496^^^^^^^^^^^^^^
1497
1498Create a tap device (ethernet MAC) instead of a tun device (point-to-point
1499tunnel). The two keywords are aliases for the same function.
1500
1501.. code-block:: console
1502
1503 ethernet
1504
1505have-normal-interface|have-normal
1506^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1507
1508Treat the host Linux stack as a routing peer instead of programming VPP
1509interface L3 addresses onto the tun/tap devices. The two keywords are
1510aliases for the same function.
1511
1512.. code-block:: console
1513
1514 have-normal-interface
1515
1516name <name>
1517^^^^^^^^^^^
1518
1519Assign name to the tun/tap device.
1520
1521.. code-block:: console
1522
1523 name vpp1
1524
1525
1526vhost-user Section
1527------------------
John DeNisco06dcd452018-07-26 12:45:10 -04001528
1529Vhost-user configuration parameters control the vhost-user driver.
1530
John DeNisco4f859682019-12-10 14:25:50 -05001531coalesce-frames <n>
1532^^^^^^^^^^^^^^^^^^^
John DeNisco06dcd452018-07-26 12:45:10 -04001533
John DeNisco4f859682019-12-10 14:25:50 -05001534Subject to deadline-timer expiration - see next item - attempt to transmit
1535at least <n> packet frames. Default is 32 frames.
John DeNisco06dcd452018-07-26 12:45:10 -04001536
John DeNisco4f859682019-12-10 14:25:50 -05001537.. code-block:: console
1538
1539 coalesce-frames 64
1540
1541coalesce-time <seconds>
1542^^^^^^^^^^^^^^^^^^^^^^^
1543
1544Hold packets no longer than (floating-point) seconds before transmitting
1545them. Default is 0.001 seconds
1546
1547.. code-block:: console
1548
1549 coalesce-time 0.002
1550
1551dont-dump-memory
1552^^^^^^^^^^^^^^^^
1553
1554vhost-user shared-memory segments can add up to a large amount of memory, so
1555it's handy to avoid adding them to corefiles when using a significant number
1556of such interfaces.
1557
1558.. code-block:: console
1559
1560 dont-dump-memory
1561
1562
1563vlib Section
1564------------
John DeNisco06dcd452018-07-26 12:45:10 -04001565
andrew9f0c0202018-08-14 09:35:42 -04001566These parameters configure VLIB, such as allowing you to choose whether to
1567enable memory traceback or a post-mortem elog dump.
1568
John DeNisco4f859682019-12-10 14:25:50 -05001569memory-trace
1570^^^^^^^^^^^^
1571
1572Enables memory trace (mheap traceback.) Defaults to 0, meaning memory
1573trace is disabled.
1574
1575.. code-block:: console
1576
1577 memory-trace
1578
1579elog-events <n>
1580^^^^^^^^^^^^^^^
1581
1582Sets the number of elements/events (the size) of the event ring
1583(a circular buffer of events.) This number rounds to a power of 2.
1584Defaults to 131072 (128 << 10) elements.
1585
1586.. code-block:: console
1587
1588 elog-events 4096
1589
1590elog-post-mortem-dump
1591^^^^^^^^^^^^^^^^^^^^^
1592
1593Enables the attempt of a post-mortem elog dump to
1594*/tmp/elog_post_mortem.<PID_OF_CALLING_PROCESS>* if os_panic or
1595os_exit is called.
1596
1597.. code-block:: console
1598
1599 elog-post-mortem-dump