docs ethernet: add docs for ethernet Section
[vpp.git] / docs / gettingstarted / users / configuring / startup.rst
1 .. _startup:
2
3 ==========================================
4 VPP Configuration - CLI and 'startup.conf'
5 ==========================================
6
7 After a successful installation, VPP installs a startup config file named
8 *startup.conf* in the */etc/vpp/* directory. This file can be tailored to
9 make VPP run as desired, but contains default values for typical installations.
10
11 Below are more details about this file and some of the the parameters and values
12 it contains.
13
14 Command-line Arguments
15 ----------------------
16
17 Before we describe details of the startup configuration file (startup.conf) it
18 should be mentioned that VPP can be started without a startup configuration
19 file.
20
21 Parameters are grouped by a section name. When providing more than one
22 parameter to a section, all parameters for that section must be wrapped in
23 curly braces. For example, to start VPP with configuration data via the
24 command 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
30 The command line can be presented as a single string or as several; anything
31 given on the command line is concatenated with spaces into a single string
32 before parsing. VPP applications must be able to locate their own executable
33 images. The simplest way to ensure this will work is to invoke a VPP
34 application by giving its absolute path. For example:
35 *'/usr/bin/vpp <options>'*  At startup, VPP applications parse through their
36 own ELF-sections [primarily] to make lists of init, configuration, and exit
37 handlers.
38
39 When developing with VPP, in gdb it's often sufficient to start an application
40 like this:
41
42 .. code-block:: console
43
44     (gdb) run unix interactive
45
46
47 Startup Configuration File (startup.conf)
48 -----------------------------------------
49
50 The more typical way to specify the startup configuration to VPP is with the
51 startup configuration file (startup.conf).
52
53 The path of the file is provided to the VPP application on the command line.
54 This is typically at /etc/vpp/startup.conf. If VPP is installed as a package
55 a default startup.conf file is provided at this location.
56
57 The format of the configuration file is a simple text file with the same content
58 as the command line.
59
60 **A very simple startup.conf file:**
61
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     }
71
72     api-trace {
73       on
74     }
75
76     dpdk {
77       dev 0000:03:00.0
78     }
79
80 VPP is instructed to load this file with the -c option. For example:
81
82 .. code-block:: console
83
84     $ sudo /usr/bin/vpp -c /etc/vpp/startup.conf
85
86 Configuration Parameters
87 ------------------------
88
89 Below is the list of some section names and their associated parameters.
90 This is not an exhaustive list, but should give you an idea of how VPP can be configured.
91
92 For all of the configuration parameters search the source code for instances of
93 **VLIB_CONFIG_FUNCTION** and **VLIB_EARLY_CONFIG_FUNCTION**.
94
95 For example, the invocation *'VLIB_CONFIG_FUNCTION (foo_config, "foo")'* will
96 cause the function *'foo_config'* to receive all parameters given in a
97 parameter block named "foo": "foo { arg1 arg2 arg3 ... }".
98
99 The unix section
100 ----------------
101
102 Configures VPP startup and behavior type attributes, as well and any OS based
103 attributes.
104
105 .. code-block:: console
106
107   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
115 nodaemon
116 ^^^^^^^^
117
118 Do not fork / background the vpp process. Typical when invoking VPP
119 applications from a process monitor. Set by default in the default
120 *'startup.conf'* file.
121
122 .. code-block:: console
123
124    nodaemon
125
126 interactive
127 ^^^^^^^^^^^
128
129 Attach CLI to stdin/out and provide a debugging command line interface.
130
131 .. code-block:: console
132
133    interactive
134
135 log <filename>
136 ^^^^^^^^^^^^^^
137
138 Logs the startup configuration and all subsequent CLI commands in filename.
139 Very useful in situations where folks don't remember or can't be bothered
140 to include CLI commands in bug reports. The default *'startup.conf'* file
141 is to write to *'/var/log/vpp/vpp.log'*.
142
143 In VPP 18.04, the default log file location was moved from '/tmp/vpp.log'
144 to '/var/log/vpp/vpp.log' . The VPP code is indifferent to the file location.
145 However, if SELinux is enabled, then the new location is required for the file
146 to be properly labeled. Check your local *'startup.conf'* file for the log file
147 location on your system.
148
149 .. code-block:: console
150
151    log /var/log/vpp/vpp-debug.log
152
153 exec | startup-config <filename>
154 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
155
156 Read startup operational configuration from filename. The contents of the file
157 will be performed as though entered at the CLI. The two keywords are aliases
158 for the same function; if both are specified, only the last will have an effect.
159
160 A 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
168 Parameter Example:
169
170 .. code-block:: console
171
172      startup-config /usr/share/vpp/scripts/interface-up.txt
173
174 gid <number | name>
175 ^^^^^^^^^^^^^^^^^^^
176
177 Sets the effective group ID to the input group ID or group name of the calling
178 process.
179
180 .. code-block:: console
181
182    gid vpp
183
184 full-coredump
185 ^^^^^^^^^^^^^
186
187 Ask the Linux kernel to dump all memory-mapped address regions, instead of
188 just text+data+bss.
189
190 .. code-block:: console
191
192    full-coredump
193
194 coredump-size unlimited | <n>G | <n>M | <n>K | <n>
195 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
196
197      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'*.
199
200 .. code-block:: console
201
202    coredump-size unlimited
203
204 cli-listen <ipaddress:port> | <socket-path>
205 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
206
207      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'*.
211
212 .. code-block:: console
213
214      cli-listen localhost:5002
215      cli-listen /run/vpp/cli.sock
216
217 cli-line-mode
218 ^^^^^^^^^^^^^
219
220      Disable character-by-character I/O on stdin. Useful when combined with,
221      for example, emacs M-x gud-gdb.
222
223 .. code-block:: console
224
225    cli-line-mode
226
227 cli-prompt <string>
228 ^^^^^^^^^^^^^^^^^^^
229
230      Configure the CLI prompt to be string.
231
232 .. code-block:: console
233
234      cli-prompt vpp-2
235
236 cli-history-limit <n>
237 ^^^^^^^^^^^^^^^^^^^^^
238
239      Limit command history to <n> lines. A value of 0 disables command history.
240      Default value: 50
241
242 .. code-block:: console
243
244      cli-history-limit 100
245
246 cli-no-banner
247 ^^^^^^^^^^^^^
248
249      Disable the login banner on stdin and Telnet connections.
250
251 .. code-block:: console
252
253      cli-no-banner
254
255 cli-no-pager
256 ^^^^^^^^^^^^
257
258      Disable the output pager.
259
260 .. code-block:: console
261
262      cli-no-pager
263
264 cli-pager-buffer-limit <n>
265 ^^^^^^^^^^^^^^^^^^^^^^^^^^
266
267      Limit pager buffer to <n> lines of output. A value of 0 disables the
268      pager. Default value: 100000
269
270 .. code-block:: console
271
272      cli-pager-buffer-limit 5000
273
274 runtime-dir <dir>
275 ^^^^^^^^^^^^^^^^^
276
277      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/'*.
281
282 .. code-block:: console
283
284      runtime-dir /tmp/vpp
285
286 poll-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
296 pidfile <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
304
305
306 The api-trace Section
307 ---------------------
308
309 The ability to trace, dump, and replay control-plane API traces makes all the
310 difference in the world when trying to understand what the control-plane has
311 tried to ask the forwarding-plane to do.
312
313 Typically, one simply enables the API message trace scheme:
314
315 .. code-block:: console
316
317    api-trace {
318      api-trace on
319    }
320
321 on | 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
334 nitems <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
344 save-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
354 The api-segment Section
355 -----------------------
356
357 These values control various aspects of the binary API interface to VPP.
358
359 The default looks like the following:
360
361 .. code-block:: console
362
363    api-segment {
364      gid vpp
365    }
366
367
368 prefix <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
381 uid <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
392 gid <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
404 interworkings of VPP.**
405
406 baseva <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
417 global-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
428 global-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
438 api-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
448 api-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
458 The socksvr Section
459 -------------------
460
461 Enables a Unix domain socket which processes binary API messages. See
462 .../vlibmemory/socket_api.c.  If this parameter is not set, vpp
463 won'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
475 The "default" keyword instructs vpp to use /run/vpp/api.sock when
476 running as root, otherwise to use /run/user/<uid>/api.sock.
477
478 The cpu Section
479 ---------------
480
481 In the VPP there is one main thread and optionally the user can create worker(s)
482 The 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
492 Manual pinning of thread(s) to CPU core(s)
493 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
494
495 main-core
496 ^^^^^^^^^
497
498 Set logical CPU core where main thread runs, if main core is not set VPP will use
499 core 1 if available
500
501 .. code-block:: console
502
503    main-core 1
504
505 corelist-workers
506 ^^^^^^^^^^^^^^^^
507
508 Set logical CPU core(s) where worker threads are running
509
510 .. code-block:: console
511
512    corelist-workers 2-3,18-19
513
514 Automatic pinning of thread(s) to CPU core(s)
515 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
516
517 skip-cores number
518 ^^^^^^^^^^^^^^^^^
519
520 Sets number of CPU core(s) to be skipped (1 ... N-1), Skipped CPU core(s) are
521 not used for pinning main thread and working thread(s).
522
523 The main thread is automatically pinned to the first available CPU core and worker(s)
524 are pinned to next free CPU core(s) after core assigned to main thread
525
526 .. code-block:: console
527
528    skip-cores 4
529
530 workers number
531 ^^^^^^^^^^^^^^
532
533 Specify a number of workers to be created Workers are pinned to N consecutive
534 CPU cores while skipping "skip-cores" CPU core(s) and main thread's CPU core
535
536 .. code-block:: console
537
538    workers 2
539
540 scheduler-policy other | batch | idle | fifo | rr
541 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
542
543 Set scheduling policy and priority of main and worker threads
544
545 Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)
546 idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)
547
548 .. code-block:: console
549
550    scheduler-policy fifo
551
552 scheduler-priority number
553 ^^^^^^^^^^^^^^^^^^^^^^^^^
554
555 Scheduling priority is used only for "real-time policies (fifo and rr),
556 and has to be in the range of priorities supported for a particular policy
557
558 .. code-block:: console
559
560    scheduler-priority 50
561
562 The buffers Section
563 -------------------
564
565 .. code-block:: console
566
567    buffers {
568       buffers-per-numa 128000
569       default data-size 2048
570    }
571
572 buffers-per-numa number
573 ^^^^^^^^^^^^^^^^^^^^^^^
574
575 Increase number of buffers allocated, needed only in scenarios with
576 large number of interfaces and worker threads. Value is per numa node.
577 Default is 16384 (8192 if running unpriviledged)
578
579 .. code-block:: console
580
581    buffers-per-numa 128000
582
583 default data-size number
584 ^^^^^^^^^^^^^^^^^^^^^^^^
585
586 Size of buffer data area, default is 2048
587
588 .. code-block:: console
589
590    default data-size 2048
591
592
593 The 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
610 dev <pci-dev> | default { .. }
611 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
612
613 White-list [as in, attempt to drive] a specific PCI device. PCI-dev is a
614 string of the form "DDDD:BB:SS.F" where:
615
616 * DDDD = Domain
617 * BB = Bus Number
618 * SS = Slot number
619 * F = Function
620
621 If the keyword **default** is used the values will apply to all the devices.
622
623 This is the same format used in the linux sysfs tree (i.e./sys/bus/pci/devices)
624 for 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
634 dev <pci-dev> { .. }
635 ^^^^^^^^^^^^^^^^^^^^
636
637 Whitelist specific interface by specifying PCI address. When whitelisting specific
638 interfaces by specifying PCI address, additional custom parameters can also be
639 specified. Valid options include:
640
641 .. code-block:: console
642
643    dev 0000:02:00.0
644    dev 0000:03:00.0
645
646 blacklist <pci-dev>
647 ^^^^^^^^^^^^^^^^^^^
648
649 Blacklist specific device type by specifying PCI vendor:device Whitelist entries
650 take precedence
651
652 .. code-block:: console
653
654    blacklist 8086:10fb
655
656 name interface-name
657 ^^^^^^^^^^^^^^^^^^^
658
659 Set interface name
660
661 .. code-block:: console
662
663    dev 0000:02:00.1 {
664       name eth0
665    }
666
667 num-rx-queues <n>
668 ^^^^^^^^^^^^^^^^^
669
670 Number of receive queues. Also enables RSS. Default value is 1.
671
672 .. code-block:: console
673
674    dev 0000:02:00.1 {
675       num-rx-queues <n>
676    }
677
678 num-tx-queues <n>
679 ^^^^^^^^^^^^^^^^^
680
681 Number of transmit queues. Default is equal to number of worker threads
682 or 1 if no workers treads.
683
684 .. code-block:: console
685
686    dev 000:02:00.1 {
687       num-tx-queues <n>
688    }
689
690 num-rx-desc <n>
691 ^^^^^^^^^^^^^^^
692
693 Number of descriptors in receive ring. Increasing or reducing number
694 can impact performance. Default is 1024.
695
696 .. code-block:: console
697
698    dev 000:02:00.1 {
699       num-rx-desc <n>
700    }
701
702 vlan-strip-offload on | off
703 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
704
705 VLAN strip offload mode for interface. VLAN stripping is off by default
706 for all NICs except VICs, using ENIC driver, which has VLAN stripping on
707 by default.
708
709 .. code-block:: console
710
711    dev 000:02:00.1 {
712       vlan-strip-offload on|off
713    }
714
715 uio-driver driver-name
716 ^^^^^^^^^^^^^^^^^^^^^^
717
718 Change UIO driver used by VPP, Options are: igb_uio, vfio-pci, uio_pci_generic
719 or auto (default)
720
721
722 .. code-block:: console
723
724    uio-driver vfio-pci
725
726 no-multi-seg
727 ^^^^^^^^^^^^
728
729 Disable multi-segment buffers, improves performance but disables Jumbo MTU support
730
731 .. code-block:: console
732
733    no-multi-seg
734
735 socket-mem <n>
736 ^^^^^^^^^^^^^^
737
738 Change hugepages allocation per-socket, needed only if there is need for
739 larger number of mbufs. Default is 256M on each detected CPU socket
740
741 .. code-block:: console
742
743    socket-mem 2048,2048
744
745 no-tx-checksum-offload
746 ^^^^^^^^^^^^^^^^^^^^^^
747
748 Disables UDP / TCP TX checksum offload. Typically needed for use faster
749 vector PMDs (together with no-multi-seg)
750
751 .. code-block:: console
752
753    no-tx-checksum-offload
754
755 enable-tcp-udp-checksum
756 ^^^^^^^^^^^^^^^^^^^^^^^
757
758 Enable 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
765 The plugins Section
766 -------------------
767
768 Configure 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
777 path pathname
778 ^^^^^^^^^^^^^
779
780 Adjust 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
786 plugin plugin-name | default enable | disable
787 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
788
789 Disable 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
797 Enable 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
804 Th statseg Section
805 ^^^^^^^^^^^^^^^^^^
806
807 .. code-block:: console
808
809    statseg {
810       per-node-counters on
811     }
812
813 socket-name <filename>
814 ^^^^^^^^^^^^^^^^^^^^^^
815
816 Name 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
822 size <nnn>[KMG]
823 ^^^^^^^^^^^^^^^
824
825 The size of the stats segment, defaults to 32mb
826
827 .. code-block:: console
828
829    size 1024M
830
831 per-node-counters on | off
832 ^^^^^^^^^^^^^^^^^^^^^^^^^^
833
834 Defaults to none
835
836 .. code-block:: console
837
838    per-node-counters on
839
840 update-interval <f64-seconds>
841 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
842
843 Sets the segment scrape / update interval
844
845 .. code-block:: console
846
847    update-interval 300
848
849
850 Some Advanced Parameters:
851 -------------------------
852
853
854 acl-plugin Section
855 ------------------
856
857 These parameters change the configuration of the ACL (access control list) plugin,
858 such as how the ACL bi-hash tables are initialized.
859
860 They should only be set by those that are familiar with the interworkings of VPP
861 and the ACL Plugin.
862
863 The first three parameters, *connection hash buckets*, *connection hash memory*,
864 and *connection count max*, set the **connection table per-interface parameters**
865 for modifying how the two bounded-index extensible hash tables for
866 IPv6 (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**
868 are initialized.
869
870 connection hash buckets <n>
871 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
872
873 Sets the number of hash buckets (rounded up to a power of 2) in each
874 of the two bi-hash tables. Defaults to 64\*1024 (65536) hash buckets.
875
876 .. code-block:: console
877
878    connection hash buckets 65536
879
880 connection hash memory <n>
881 ^^^^^^^^^^^^^^^^^^^^^^^^^^
882
883 Sets the allocated memory size (in bytes) for each of the two bi-hash tables.
884 Defaults to 1073741824 bytes.
885
886 .. code-block:: console
887
888    connection hash memory 1073741824
889
890 connection count max <n>
891 ^^^^^^^^^^^^^^^^^^^^^^^^
892
893 Sets the maximum number of pool elements when allocating each per-worker
894 pool 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
900 main heap size <n>G | <n>M | <n>K | <n>
901 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
902
903 Sets the size of the main memory heap that holds all the ACL module related
904 allocations (other than hash.) Default size is 0, but during
905 ACL heap initialization is equal to
906 *per_worker_size_with_slack * tm->n_vlib_mains + bihash_size + main_slack*.
907 Note 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
913
914 The next three parameters, *hash lookup heap size*, *hash lookup hash buckets*,
915 and *hash lookup hash memory*, modify the initialization of the bi-hash lookup
916 table used by the ACL plugin. This table is initialized when attempting to apply
917 an 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.)
919
920 hash lookup heap size  <n>G | <n>M | <n> K | <n>
921 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
922
923 Sets the size of the memory heap that holds all the miscellaneous allocations
924 related to hash-based lookups. Default size is 67108864 bytes.
925
926 .. code-block:: console
927
928    hash lookup heap size 70M
929
930 hash lookup hash buckets <n>
931 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
932
933 Sets the number of hash buckets (rounded up to a power of 2) in the bi-hash
934 lookup table. Defaults to 65536 hash buckets.
935
936 .. code-block:: console
937
938    hash lookup hash buckets 65536
939
940 hash lookup hash memory <n>
941 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
942
943 Sets the allocated memory size (in bytes) for the bi-hash lookup table.
944 Defaults to 67108864 bytes.
945
946 .. code-block:: console
947
948    hash lookup hash memory 67108864
949
950 use tuple merge <n>
951 ^^^^^^^^^^^^^^^^^^^
952
953 Sets a boolean value indicating whether or not to use TupleMerge
954 for hash ACL's. Defaults to 1 (true), meaning the default implementation
955 of hashing ACL's does use TupleMerge.
956
957 .. code-block:: console
958
959    use tuple merge 1
960
961 tuple merge split threshold <n>
962 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
963
964 Sets the maximum amount of rules (ACE's) that can collide in a bi-hash
965 lookup table before the table is split into two new tables. Splitting ensures
966 less 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.
969 Defaults to a maximum of 39 rule collisions per table.
970
971 .. code-block:: console
972
973    tuple merge split threshold 30
974
975 reclassify sessions <n>
976 ^^^^^^^^^^^^^^^^^^^^^^^
977
978 Sets a boolean value indicating whether or not to take the epoch of the session
979 into account when dealing with re-applying ACL's or changing already applied ACL's.
980 Defaults to 0 (false), meaning the default implementation does NOT take the
981 epoch of the session into account.
982
983 .. code-block:: console
984
985    reclassify sessions 1
986
987 .. _api-queue:
988
989 api-queue Section
990 -----------------
991
992 length  <n>
993 ^^^^^^^^^^^
994
995 Sets the api queue length. Minimum valid queue length is 1024, which is
996 also the default.
997
998 .. code-block:: console
999
1000    length 2048
1001
1002 .. _cj:
1003
1004 cj Section
1005 ----------
1006
1007 The circular journal (CJ) thread-safe circular log buffer scheme is
1008 occasionally useful when chasing bugs. Calls to it should not be checked in.
1009 See .../vlib/vlib/unix/cj.c. The circular journal is disables by default.
1010 When enabled, the number of records must be provided, there is no default
1011 value.
1012
1013 records <n>
1014 ^^^^^^^^^^^
1015
1016 Configure the number of circular journal records in the circular buffer.
1017 The number of records should be a power of 2.
1018
1019 .. code-block:: console
1020
1021    records 131072
1022
1023 on
1024 ^^
1025
1026 Turns on logging at the earliest possible moment.
1027
1028 .. code-block:: console
1029
1030    on
1031
1032 dns Section
1033 -----------
1034
1035 max-cache-size <n>
1036 ^^^^^^^^^^^^^^^^^^
1037
1038 Set the maximum number of active elements allowed in the pool of
1039 dns cache entries. When resolving an expired entry or adding a new
1040 static entry and the max number of active entries is reached,
1041 a random, non-static entry is deleted. Defaults to 65535 entries.
1042
1043 .. code-block:: console
1044
1045    max-cache-size 65535
1046
1047
1048 ethernet Section
1049 -----------------
1050
1051 default-mtu <n>
1052 ^^^^^^^^^^^^^^^
1053
1054 Specifies the default MTU size for Ethernet interfaces.  Must be in
1055 the range of 64-9000.  The default is 9000.
1056
1057 .. code-block:: console
1058
1059    default-mtu 1500
1060
1061 heapsize Section
1062 -----------------
1063
1064 Heapsize configuration controls the size of the main heap. The heap size is
1065 configured very early in the boot sequence, before loading plug-ins or doing
1066 much of anything else.
1067
1068 heapsize <n>M | <n>G
1069 ^^^^^^^^^^^^^^^^^^^^
1070
1071 Specifies the size of the heap in MB or GB. The default is 1GB.
1072
1073 .. code-block:: console
1074
1075    heapsize 2G
1076
1077 ip Section
1078 ----------
1079
1080 IPv4 heap configuration. he heap size is configured very early in the boot
1081 sequence, before loading plug-ins or doing much of anything else.
1082
1083 heap-size <n>G | <n>M | <n>K | <n>
1084 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1085
1086 Set the IPv4 mtrie heap size, which is the amount of memory dedicated to
1087 the destination IP lookup table. The input value can be set in GB, MB, KB
1088 or bytes. The default value is 32MB.
1089
1090 .. code-block:: console
1091
1092    heap-size 64M
1093
1094 ip6 Section
1095 -----------
1096
1097 IPv6 heap configuration. he heap size is configured very early in the boot
1098 sequence, before loading plug-ins or doing much of anything else.
1099
1100
1101 heap-size <n>G | <n>M | <n>K | <n>
1102 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1103
1104 Set the IPv6 forwarding table heap size. The input value can be set in GB,
1105 MB, KB or bytes. The default value is 32MB.
1106
1107 .. code-block:: console
1108
1109    heap-size 64M
1110
1111 hash-buckets <n>
1112 ^^^^^^^^^^^^^^^^
1113
1114 Set the number of IPv6 forwarding table hash buckets. The default value is
1115 64K (65536).
1116
1117 .. code-block:: console
1118
1119    hash-buckets 131072
1120
1121 l2learn Section
1122 ---------------
1123
1124 Configure Layer 2 MAC Address learning parameters.
1125
1126 limit <n>
1127 ^^^^^^^^^
1128
1129 Configures the number of L2 (MAC) addresses in the L2 FIB at any one time,
1130 which limits the size of the L2 FIB to <n> concurrent entries.  Defaults to
1131 4M entries (4194304).
1132
1133 .. code-block:: console
1134
1135    limit 8388608
1136
1137 l2tp Section
1138 ------------
1139
1140 IPv6 Layer 2 Tunnelling Protocol Version 3 (IPv6-L2TPv3) configuration controls
1141 the method used to locate a specific IPv6-L2TPv3 tunnel. The following settings
1142 are mutually exclusive:
1143
1144 lookup-v6-src
1145 ^^^^^^^^^^^^^
1146
1147 Lookup tunnel by IPv6 source address.
1148
1149 .. code-block:: console
1150
1151    lookup-v6-src
1152
1153 lookup-v6-dst
1154 ^^^^^^^^^^^^^
1155
1156 Lookup tunnel by IPv6 destination address.
1157
1158 .. code-block:: console
1159
1160    lookup-v6-dst
1161
1162 lookup-session-id
1163 ^^^^^^^^^^^^^^^^^
1164
1165 Lookup tunnel by L2TPv3 session identifier.
1166
1167 .. code-block:: console
1168
1169    lookup-session-id
1170
1171 logging Section
1172 ---------------
1173
1174 size <n>
1175 ^^^^^^^^
1176
1177 Number of entries in the global logging buffer. Defaults to 512.
1178
1179 .. code-block:: console
1180
1181    size 512
1182
1183 nthrottle-time <n>
1184 ^^^^^^^^^^^^^^^^^^
1185
1186 Set the global value for the time to wait (in seconds) before resuming
1187 logging of a log subclass that exceeded the per-subclass message-per-second
1188 threshold.  Defaults to 3.
1189
1190 .. code-block:: console
1191
1192    unthrottle-time 3
1193
1194 default-log-level emerg|alert | crit | err | warn | notice | info | debug | disabled
1195 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1196
1197 Set the default logging level of the system log.  Defaults to notice.
1198
1199 .. code-block:: console
1200
1201    default-log-level notice
1202
1203 default-syslog-log-level emerg|alert | crit | err | warn | notice | info | debug | disabled
1204 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1205
1206 Set the default logging level of the syslog target.  Defaults to warning.
1207
1208 .. code-block:: console
1209
1210    default-syslog-log-level warning
1211
1212 mactime Section
1213 ---------------
1214
1215 lookup-table-buckets <n>
1216 ^^^^^^^^^^^^^^^^^^^^^^^^
1217
1218 Sets the number of hash buckets in the mactime bi-hash lookup table.
1219 Defaults to 128 buckets.
1220
1221 .. code-block:: console
1222
1223    lookup-table-buckets 128
1224
1225 lookup-table-memory <n>G | <n>M | <n>K | <n>
1226 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1227
1228 Sets the allocated memory size (in bytes) for the mactime bi-hash lookup table.
1229 The 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
1236 timezone_offset <n>
1237 ^^^^^^^^^^^^^^^^^^^
1238
1239 Sets the timezone offset from UTC. Defaults to an offset of -5 hours
1240 from UTC (US EST / EDT.)
1241
1242 .. code-block:: console
1243
1244    timezone_offset -5
1245
1246 "map" Parameters
1247 ----------------
1248
1249 customer edge
1250 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
1251
1252 Sets a boolean true to indicate that the MAP node is a Customer Edge (CE)
1253 router. The boolean defaults to false, meaning the MAP node is not treated
1254 as a CE router.
1255
1256 .. code-block:: console
1257
1258    customer edge
1259
1260 nat Section
1261 -----------
1262
1263 These parameters change the configuration of the NAT (Network address translation)
1264 plugin, such as how the NAT & NAT64 bi-hash tables are initialized, if the NAT is
1265 endpoint dependent, or if the NAT is deterministic.
1266
1267 For each NAT per thread data, the following 4 parameters change how certain
1268 bi-hash tables are initialized.
1269
1270 translation hash buckets <n>
1271 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1272
1273 Sets the number of hash buckets in each of the two in/out NAT bi-hash lookup
1274 tables. Defaults to 1024 buckets.
1275
1276 If the NAT is indicated to be endpoint dependent, which can be set with the
1277 :ref:`endpoint-dependent parameter <endpointLabel>`, then this parameter sets
1278 the number of hash buckets in each of the two endpoint dependent sessions
1279 NAT bi-hash lookup tables.
1280
1281 .. code-block:: console
1282
1283    translation hash buckets 1024
1284
1285 translation hash memory <n>
1286 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
1287
1288 Sets the allocated memory size (in bytes) for each of the two in/out NAT
1289 bi-hash tables. Defaults to 134217728 (128 << 20) bytes, which is roughly 128 MB.
1290
1291 If 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
1293 allocated memory size for each of the two endpoint dependent sessions NAT bi-hash
1294 lookup tables.
1295
1296 .. code-block:: console
1297
1298    translation hash memory 134217728
1299
1300 user hash buckets <n>
1301 ^^^^^^^^^^^^^^^^^^^^^
1302
1303 Sets 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
1310 user hash memory <n>
1311 ^^^^^^^^^^^^^^^^^^^^
1312
1313 Sets 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,
1315 which is roughly 64 MB.
1316
1317 .. code-block:: console
1318
1319    user hash memory 67108864
1320
1321 max translations per user <n>
1322 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1323
1324 Sets the maximum amount of dynamic and/or static NAT sessions each user can have.
1325 Defaults to 100. When this limit is reached, the least recently used translation
1326 is recycled.
1327
1328 .. code-block:: console
1329
1330    max translations per user 50
1331
1332 deterministic
1333 ^^^^^^^^^^^^^
1334
1335 Sets a boolean value to 1 indicating that the NAT is deterministic. Defaults to 0,
1336 meaning the NAT is not deterministic.
1337
1338 .. code-block:: console
1339
1340    deterministic
1341
1342 nat64 bib hash buckets <n>
1343 ^^^^^^^^^^^^^^^^^^^^^^^^^^
1344
1345 Sets the number of hash buckets in each of the two in/out NAT64 BIB bi-hash
1346 tables. Defaults to 1024 buckets.
1347
1348 .. code-block:: console
1349
1350    nat64 bib hash buckets 1024
1351
1352 nat64 bib hash memory <n>
1353 ^^^^^^^^^^^^^^^^^^^^^^^^^
1354
1355 Sets the allocated memory size (in bytes) for each of the two in/out NAT64
1356 BIB bi-hash tables. Defaults to 134217728 (128 << 20) bytes,
1357 which is roughly 128 MB.
1358
1359 .. code-block:: console
1360
1361    nat64 bib hash memory 134217728
1362
1363 nat64 st hash buckets <n>
1364 ^^^^^^^^^^^^^^^^^^^^^^^^^
1365
1366 Sets the number of hash buckets in each of the two in/out NAT64 session table
1367 bi-hash tables. Defaults to 2048 buckets.
1368
1369 .. code-block:: console
1370
1371    nat64 st hash buckets 2048
1372
1373 nat64 st hash memory <n>
1374 ^^^^^^^^^^^^^^^^^^^^^^^^
1375
1376 Sets the allocated memory size (in bytes) for each of the two in/out NAT64 session
1377 table bi-hash tables. Defaults to 268435456 (256 << 20) bytes, which is roughly
1378 256 MB.
1379
1380 .. code-block:: console
1381
1382    nat64 st hash memory 268435456
1383
1384 .. _endpointLabel:
1385
1386 endpoint-dependent
1387 ^^^^^^^^^^^^^^^^^^
1388
1389 Sets a boolean value to 1, indicating that the NAT is endpoint dependent.
1390 Defaults to 0, meaning the NAT is not endpoint dependent.
1391
1392 .. code-block:: console
1393
1394    endpoint-dependent
1395
1396 oam Section
1397 -----------
1398
1399 OAM configuration controls the (ip4-icmp) interval, and number of misses
1400 allowed before reporting an oam target down to any registered listener.
1401
1402 interval <n.n>
1403 ^^^^^^^^^^^^^^
1404
1405 Interval, floating-point seconds, between sending OAM IPv4 ICMP messages.
1406 Default is 2.04 seconds.
1407
1408 .. code-block:: console
1409
1410    interval 3.5
1411
1412 physmem Section
1413 ---------------
1414
1415 Configuration parameters used to specify base address and maximum size of
1416 the memory allocated for the pmalloc module in VPP. pmalloc is a NUMA-aware,
1417 growable physical memory allocator. pmalloc allocates memory for the DPDK
1418 memory pool.
1419
1420 base-addr <address>
1421 ^^^^^^^^^^^^^^^^^^^
1422
1423 Specify the base address for pmalloc memory space.
1424
1425 .. code-block:: console
1426
1427     base-addr 0xfffe00000000
1428
1429 max-size <n>G | <n>M | <n>K | <n>
1430 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1431
1432 Set the memory size for pmalloc memory space. The default is 16G.
1433
1434 .. code-block:: console
1435
1436     max-size 4G
1437
1438 tapcli Section
1439 --------------
1440
1441 Configuration parameters for TAPCLI (dynamic tap interface hookup.)
1442
1443 mtu <n>
1444 ^^^^^^^
1445
1446 Sets interface MTU (maximum transmission unit) size in bytes. This size
1447 is also related to the number of MTU buffers. Defaults to 1500 bytes.
1448
1449 .. code-block:: console
1450
1451    mtu 1500
1452
1453 disable
1454 ^^^^^^^
1455
1456 Disables TAPCLI. Default is that TAPCLI is enabled.
1457
1458 .. code-block:: console
1459
1460    disable
1461
1462
1463 tcp Section
1464 -----------
1465
1466 Configuration parameters for TCP host stack utilities. The following
1467 preallocation parameters are related to the initialization of fixed-size,
1468 preallocation pools.
1469
1470 preallocated-connections <n>
1471 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1472
1473 Sets the number of preallocated TCP connections. Defaults to 0.
1474 The preallocated connections per thread is related to this value,
1475 equal to (preallocated_connections / (num_threads - 1)).
1476
1477 .. code-block:: console
1478
1479    preallocated-connections 5
1480
1481 preallocated-half-open-connections <n>
1482 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1483
1484 Sets the number of preallocated TCP half-open connections. Defaults to 0.
1485
1486 .. code-block:: console
1487
1488    preallocated-half-open-connections 5
1489
1490 buffer-fail-fraction <n.n>
1491 ^^^^^^^^^^^^^^^^^^^^^^^^^^
1492
1493 Sets the TCP buffer fail fraction (a float) used for fault-injection
1494 when debugging TCP buffer allocation. Its use is found in *tcp_debug.h*.
1495 Defaults to 0.0.
1496
1497 .. code-block:: console
1498
1499    buffer-fail-fraction 0.0
1500
1501
1502 tls Section
1503 -----------
1504
1505 Configures TLS parameters, such as enabling the use of test certificates.
1506 These parameters affect the tlsmbedtls and tlsopenssl plugins.
1507
1508 use-test-cert-in-ca
1509 ^^^^^^^^^^^^^^^^^^^
1510
1511 Sets a boolean value to 1 to indicate during the initialization of a
1512 TLS CA chain to attempt to parse and add test certificates to the chain.
1513 Defaults to 0, meaning test certificates are not used.
1514
1515 .. code-block:: console
1516
1517    use-test-cert-in-ca
1518
1519 ca-cert-path <filename>
1520 ^^^^^^^^^^^^^^^^^^^^^^^
1521
1522 Sets the filename path of the location of TLS CA certificates, used when
1523 initializing and loading TLS CA certificates during the initialization
1524 of 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
1532 tuntap Section
1533 --------------
1534
1535 The "tuntap" driver configures a point-to-point interface between the vpp
1536 engine and the local Linux kernel stack. This allows e.g. users to ssh to the
1537 host | VM | container via vpp "revenue" interfaces. It's marginally useful, and
1538 is currently disabled by default. To [dynamically] create TAP interfaces - the
1539 preferred scheme - see the "tap_connect" binary API. The Linux network stack
1540 "vnet" interface needs to manually configure, and VLAN and other settings if
1541 desired.
1542
1543
1544 enable|disable
1545 ^^^^^^^^^^^^^^
1546
1547 Enable or disable the tun/tap driver.
1548
1549 .. code-block:: console
1550
1551    enable
1552
1553 ethernet|ether
1554 ^^^^^^^^^^^^^^
1555
1556 Create a tap device (ethernet MAC) instead of a tun device (point-to-point
1557 tunnel). The two keywords are aliases for the same function.
1558
1559 .. code-block:: console
1560
1561    ethernet
1562
1563 have-normal-interface|have-normal
1564 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1565
1566 Treat the host Linux stack as a routing peer instead of programming VPP
1567 interface L3 addresses onto the tun/tap devices. The two keywords are
1568 aliases for the same function.
1569
1570 .. code-block:: console
1571
1572    have-normal-interface
1573
1574 name <name>
1575 ^^^^^^^^^^^
1576
1577 Assign name to the tun/tap device.
1578
1579 .. code-block:: console
1580
1581    name vpp1
1582
1583
1584 vhost-user Section
1585 ------------------
1586
1587 Vhost-user configuration parameters control the vhost-user driver.
1588
1589 coalesce-frames <n>
1590 ^^^^^^^^^^^^^^^^^^^
1591
1592 Subject to deadline-timer expiration - see next item - attempt to transmit
1593 at least <n> packet frames. Default is 32 frames.
1594
1595 .. code-block:: console
1596
1597    coalesce-frames 64
1598
1599 coalesce-time <seconds>
1600 ^^^^^^^^^^^^^^^^^^^^^^^
1601
1602 Hold packets no longer than (floating-point) seconds before transmitting
1603 them. Default is 0.001 seconds
1604
1605 .. code-block:: console
1606
1607    coalesce-time 0.002
1608
1609 dont-dump-memory
1610 ^^^^^^^^^^^^^^^^
1611
1612 vhost-user shared-memory segments can add up to a large amount of memory, so
1613 it's handy to avoid adding them to corefiles when using a significant number
1614 of such interfaces.
1615
1616 .. code-block:: console
1617
1618    dont-dump-memory
1619
1620
1621 vlib Section
1622 ------------
1623
1624 These parameters configure VLIB, such as allowing you to choose whether to
1625 enable memory traceback or a post-mortem elog dump.
1626
1627 memory-trace
1628 ^^^^^^^^^^^^
1629
1630 Enables memory trace (mheap traceback.) Defaults to 0, meaning memory
1631 trace is disabled.
1632
1633 .. code-block:: console
1634
1635    memory-trace
1636
1637 elog-events <n>
1638 ^^^^^^^^^^^^^^^
1639
1640 Sets 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.
1642 Defaults to 131072 (128 << 10) elements.
1643
1644 .. code-block:: console
1645
1646    elog-events 4096
1647
1648 elog-post-mortem-dump
1649 ^^^^^^^^^^^^^^^^^^^^^
1650
1651 Enables the attempt of a post-mortem elog dump to
1652 */tmp/elog_post_mortem.<PID_OF_CALLING_PROCESS>* if os_panic or
1653 os_exit is called.
1654
1655 .. code-block:: console
1656
1657    elog-post-mortem-dump