vpp/docs/usecases/contiv/VPP_CONFIG.rst
Nathan Skrzypczak 9ad39c026c docs: better docs, mv doxygen to sphinx
This patch refactors the VPP sphinx docs
in order to make it easier to consume
for external readers as well as VPP developers.

It also makes sphinx the single source
of documentation, which simplifies maintenance
and operation.

Most important updates are:

- reformat the existing documentation as rst
- split RELEASE.md and move it into separate rst files
- remove section 'events'
- remove section 'archive'
- remove section 'related projects'
- remove section 'feature by release'
- remove section 'Various links'
- make (Configuration reference, CLI docs,
  developer docs) top level items in the list
- move 'Use Cases' as part of 'About VPP'
- move 'Troubleshooting' as part of 'Getting Started'
- move test framework docs into 'Developer Documentation'
- add a 'Contributing' section for gerrit,
  docs and other contributer related infos
- deprecate doxygen and test-docs targets
- redirect the "make doxygen" target to "make docs"

Type: refactor

Change-Id: I552a5645d5b7964d547f99b1336e2ac24e7c209f
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-10-13 23:22:32 +00:00

184 lines
4.4 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Creating VPP Startup Configuration
==================================
This document describes how to create the VPP startup configuration file
located at ``/etc/vpp/contiv-vswitch.conf``.
Hardware Interface Configuration
--------------------------------
Single-NIC Configuration
~~~~~~~~~~~~~~~~~~~~~~~~
You need to configure hardware interfaces for use by VPP. First, find
out the PCI address of the hosts network interface. On Debian-based
distributions, you can use ``lshw``:
::
sudo lshw -class network -businfo
Bus info Device Class Description
========================================================
pci@0000:03:00.0 ens160 network VMXNET3 Ethernet Controller
In our case, it would be the ``ens3`` interface with the PCI address
``0000:00:03.0``
Now, add or modify the VPP startup config file
(``/etc/vpp/contiv-vswitch.conf``) to contain the proper PCI address:
::
unix {
nodaemon
cli-listen /run/vpp/cli.sock
cli-no-pager
coredump-size unlimited
full-coredump
poll-sleep-usec 100
}
nat {
endpoint-dependent
}
dpdk {
dev 0000:00:03.0
}
api-trace {
on
nitems 500
}
Multi-NIC Configuration
~~~~~~~~~~~~~~~~~~~~~~~
Similar to the single-NIC configuration, use command *lshw* to find the
PCI addresses of all the NICs in the system, for example:
::
$ sudo lshw -class network -businfo
Bus info Device Class Description
====================================================
pci@0000:00:03.0 ens3 network Virtio network device
pci@0000:00:04.0 ens4 network Virtio network device
In the example above, ``ens3`` would be the primary interface and
``ens4`` would be the interface that would be used by VPP. The PCI
address of the ``ens4`` interface would be ``0000:00:04.0``.
Make sure the selected interface is *shut down*, otherwise VPP will not
grab it:
::
sudo ip link set ens4 down
Now, add or modify the VPP startup config file in
``/etc/vpp/contiv-vswitch.conf`` to contain the proper PCI address:
::
unix {
nodaemon
cli-listen /run/vpp/cli.sock
cli-no-pager
coredump-size unlimited
full-coredump
poll-sleep-usec 100
}
nat {
endpoint-dependent
}
dpdk {
dev 0000:00:04.0
}
api-trace {
on
nitems 500
}
If assigning multiple NICs to VPP you will need to include each NICs
PCI address in the dpdk stanza in ``/etc/vpp/contiv-vswitch.conf``.
Assigning all NICs to VPP
^^^^^^^^^^^^^^^^^^^^^^^^^
On a multi-NIC node, it is also possible to assign all NICs from the
kernel for use by VPP. First, you need to install the STN daemon, as
described [here][1], since you will want the NICs to revert to the
kernel if VPP crashes.
You also need to configure the NICs in the VPP startup config file in
``/etc/vpp/contiv-vswitch.conf``. For example, to use both the primary
and secondary NIC, in a two-NIC node, your VPP startup config file would
look something like this:
::
unix {
nodaemon
cli-listen /run/vpp/cli.sock
cli-no-pager
coredump-size unlimited
full-coredump
poll-sleep-usec 100
}
nat {
endpoint-dependent
}
dpdk {
dev 0000:00:03.0
dev 0000:00:04.0
}
api-trace {
on
nitems 500
}
Installing ``lshw`` on CentOS/RedHat/Fedora
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note: On CentOS/RedHat/Fedora distributions, ``lshw`` may not be
available by default, install it by
::
sudo yum -y install lshw
Power-saving Mode
-----------------
In regular operation, VPP takes 100% of one CPU core at all times (poll
loop). If high performance and low latency is not required you can
“slow-down” the poll-loop and drastically reduce CPU utilization by
adding the following stanza to the ``unix`` section of the VPP startup
config file:
::
unix {
...
poll-sleep-usec 100
...
}
The power-saving mode is especially useful in VM-based development
environments running on laptops or less powerful servers.
VPP API Trace
-------------
To troubleshoot VPP configuration issues in production environments, it
is strongly recommended to configure VPP API trace. This is done by
adding the following stanza to the VPP startup config file:
::
api-trace {
on
nitems 500
}
You can set the size of the trace buffer with the attribute.