FD.io VPP
v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
|
The VPP network stack comes with several configuration options that can be provided either on the command line or in a configuration file.
Specific applications built on the stack have been known to require a dozen arguments, depending on requirements. This section describes commonly-used options and parameters.
You can find command-line argument parsers in the source code by searching for instances of the VLIB_CONFIG_FUNCTION
macro. The invocation VLIB_CONFIG_FUNCTION(foo_config, "foo")
will cause the function foo_config
to receive all the options and values supplied in a parameter block named "`foo`", for example: foo { arg1 arg2 arg3 ... }
.
Parameters are grouped by a section name. When providing more than one parameter to a section all parameters for that section must be wrapped in curly braces.
Which will produce output similar to this:
<startup diagnostic messages> _______ _ _ _____ ___ __/ __/ _ \ (_)__ | | / / _ \/ _ \ _/ _// // / / / _ \ | |/ / ___/ ___/ /_/ /____(_)_/\___/ |___/_/ /_/ vpp# <start-typing>
When providing only one such parameter the braces are optional. For example, the following command argument, unix interactive
does not have braces:
The command line can be presented as a single string or as several; anything given on the command line is concatenated with spaces into a single string before parsing.
VPP applications must be able to locate their own executable images. The simplest way to ensure this will work is to invoke a VPP application by giving its absolute path; for example: /usr/bin/vpp <options>
. At startup, VPP applications parse through their own ELF-sections (primarily) to make lists of init, configuration, and exit handlers.
When developing with VPP, in gdb it's often sufficient to start an application like this at the (gdb)
prompt:
It is also possible to supply parameters in a startup configuration file the path of which is provided to the VPP application on its command line.
The format of the configuration file is a simple text file with the same content as the command line but with the benefit of being able to use newlines to make the content easier to read. For example:
VPP is then instructed to load this file with the -c
option: