docs: Rework the startup configuration section

Type: docs

Signed-off-by: John DeNisco <jdenisco@cisco.com>
Change-Id: Ic60aac96a4aeb5532f98dfb85c776bf549c0d660
Signed-off-by: Dave Barach <dave@barachs.net>
This commit is contained in:
John DeNisco
2019-12-10 14:25:50 -05:00
committed by Dave Barach
parent d4c709222b
commit 4f85968a43
14 changed files with 1379 additions and 1981 deletions

View File

@ -684,7 +684,7 @@ docs-venv:
@($(SPHINX_SCRIPTS_DIR)/sphinx-make.sh venv)
.PHONY: docs
docs: $(DOCS_DIR) docs-venv
docs: $(DOCS_DIR)
@($(SPHINX_SCRIPTS_DIR)/sphinx-make.sh html)
.PHONY: docs-clean

View File

@ -4,6 +4,6 @@
About
=====
**VPP Version:** 20.01-rc0~594-g340c15c6e
**VPP Version:** 20.01-rc0~785-g1063f2ae8
**Built on:** Wed Nov 6 18:47:36 GMT 2019
**Built on:** Tue Dec 10 19:22:28 GMT 2019

File diff suppressed because it is too large Load Diff

View File

@ -1,112 +0,0 @@
.. _config-command-four:
**************************
List/Install/Uninstall VPP
**************************
With command option "4" the user can list, install, or uninstall the FD.io VPP
packages. If there are packages already installed, then the packages will be listed
and the user will be asked if the packages should be uninstalled. If no packages are
installed, then the user will be asked if the FD.io packages should be installed. The
packages installed will be the latest released packages.
Uninstalling the packages:
.. code-block:: console
What would you like to do?
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command: 4
These packages are installed on node localhost
Name Version
vpp 18.04-release
vpp-api-lua 18.04-release
vpp-api-python 18.04-release
vpp-dbg 18.04-release
vpp-dev 18.04-release
vpp-dpdk-dev 17.01.1-release
vpp-dpdk-dkms 17.01.1-release
vpp-lib 18.04-release
vpp-nsh-plugin 18.04
vpp-nsh-plugin-dbg 18.04
vpp-nsh-plugin-dev 18.04
vpp-plugins 18.04-release
Do you want to uninstall these packages [y/N]? y
INFO:root: Local Command: service vpp stop
INFO:root:Uninstall Ubuntu
INFO:root: Local Command: dpkg -l | grep vpp
....
What would you like to do?
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command:
Installing the packages:
.. code-block:: console
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command: 4
There are no VPP packages on node localhost.
Do you want to install VPP [Y/n]? Y
INFO:root: Ubuntu
INFO:root:Install Ubuntu
INFO:root: Local Command: ls /etc/apt/sources.list.d/99fd.io.list.orig
INFO:root: /etc/apt/sources.list.d/99fd.io.list.orig
....
What would you like to do?
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command: 4
These packages are installed on node localhost
Name Version
vpp 18.04-release
vpp-api-lua 18.04-release
vpp-api-python 18.04-release
vpp-dbg 18.04-release
vpp-dev 18.04-release
vpp-dpdk-dev 17.01.1-release
vpp-dpdk-dkms 17.01.1-release
vpp-lib 18.04-release
vpp-nsh-plugin 18.04
vpp-nsh-plugin-dbg 18.04
vpp-nsh-plugin-dev 18.04
vpp-plugins 18.04-release
Do you want to uninstall these packages [y/N]? N
What would you like to do?
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command:

View File

@ -1,70 +0,0 @@
.. _config-command-one:
***********************
Show System Information
***********************
With command option "1" the user can inspect the system characteristics.
This example shows a system that has not yet had VPP installed.
.. code-block:: console
What would you like to do?
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command: 1
==============================
NODE: DUT1
CPU:
Model name: Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz
CPU(s): 32
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 2
NUMA node0 CPU(s): 0-7,16-23
NUMA node1 CPU(s): 8-15,24-31
CPU max MHz: 3600.0000
CPU min MHz: 1200.0000
SMT: Enabled
VPP Threads: (Name: Cpu Number)
Grub Command Line:
Current: BOOT_IMAGE=/vmlinuz-4.4.0-128-generic root=UUID=9930aeee-b1d3-4cf5-b0de-d95dbb7dec5e ro
Configured: GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=8,9-10 nohz_full=8,9-10 rcu_nocbs=8,9-10"
Huge Pages:
Total System Memory : 65863384 kB
Total Free Memory : 45911100 kB
Actual Huge Page Total : 1024
Configured Huge Page Total : 8192
Huge Pages Free : 896
Huge Page Size : 2048 kB
Devices:
Total Number of Buffers: 25600
Devices with link up (can not be used with VPP):
0000:08:00.0 enp8s0f0 I350 Gigabit Network Connection
Devices bound to kernel drivers:
0000:90:00.0 enp144s0 VIC Ethernet NIC
0000:8f:00.0 enp143s0 VIC Ethernet NIC
0000:84:00.0 enp132s0f0,enp132s0f0d1 Ethernet Controller XL710 for 40GbE QSFP+
0000:84:00.1 enp132s0f1,enp132s0f1d1 Ethernet Controller XL710 for 40GbE QSFP+
0000:08:00.1 enp8s0f1 I350 Gigabit Network Connection
0000:02:00.0 enp2s0f0 82599ES 10-Gigabit SFI/SFP+ Network Connection
0000:02:00.1 enp2s0f1 82599ES 10-Gigabit SFI/SFP+ Network Connection
No devices bound to DPDK drivers
VPP Service Status:
Not Installed

View File

@ -1,81 +0,0 @@
.. _config-command-three:
************************
Apply the Configuration
************************
After the configuration files have been examined and verified as correct, then the
configuration can be applied by using command option '3'. After the configuration
is applied, use option "1" to check the system configuration. Notice the default is
NOT to change the grub file. If the option to change the grub command line is selected,
then a reboot of the system will be required.
.. code-block:: console
What would you like to do?
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command: 3
We are now going to configure your system(s).
Are you sure you want to do this [Y/n]? y
These are the changes we will apply to
the huge page file (/etc/sysctl.d/80-vpp.conf).
1,2d0
< vm.nr_hugepages=1024
4,7c2,3
< vm.max_map_count=3096
---
> vm.nr_hugepages=8192
> vm.max_map_count=17408
8a5
> kernel.shmmax=17179869184
10,15d6
< kernel.shmmax=2147483648
Are you sure you want to apply these changes [Y/n]?
These are the changes we will apply to
the VPP startup file (/etc/vpp/startup.conf).
---
>
> main-core 8
> corelist-workers 9-10
>
> scheduler-policy fifo
> scheduler-priority 50
>
67,68c56,66
< # dpdk {
---
> dpdk {
>
> dev 0000:86:00.0 {
> num-rx-queues 2
> }
> dev 0000:86:00.1 {
> num-rx-queues 2
> }
> num-mbufs 25600
>
124c122
< # }
---
> }
Are you sure you want to apply these changes [Y/n]?
The configured grub cmdline looks like this:
GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=8,9-10 nohz_full=8,9-10 rcu_nocbs=8,9-10"
The current boot cmdline looks like this:
BOOT_IMAGE=/boot/vmlinuz-4.4.0-97-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro
Do you want to keep the current boot cmdline [Y/n]?

View File

@ -1,126 +0,0 @@
.. _config-command-two:
*******
Dry Run
*******
With command option '2' (the config utility *dry run* option) the important
configuration files are created so that the user can examine them, and then
if they look reasonable apply them with command option 3.
The files for **Ubuntu** can be found in the root directory */usr/local/vpp/vpp-config/dryrun*
and for **Centos** in directory */usr/vpp/vpp-config/dryrun*.
The important configuration files are **/etc/vpp/startup.conf**, **/etc/sysctl.d/80-vpp.conf**,
and **/etc/default/grub**
Startup.conf
============
FD.io VPP startup parameters are configured in the file **/etc/vpp/startup.conf**.
The utility creates this file under the *vpp-config* root directory in the file *vpp/startup.conf*.
The values in this file come from the questions asked about the devices, cores, rx queues,
and tcp parameters.
80-vpp.conf
============
The huge page configuration comes by setting values in the file **/etc/sysctl.d/80-vpp.conf**.
The utility creates the file under the root directory in the file *sysctl.d/80-vpp.conf*. When asked the
question about huge pages the correct values are put in the dryrun file.
grub
====
CPUs can be isolated for use by VPP or other processes such as VMs using the grub
configuration file. This file is **/etc/default/grub**. This file must be modified with
care. It is possible to make your system unusable if this file is modified incorrectly.
The dry run file is located under the *vpp-config* root directory and then default.
***********************
Executing the Dry Run
***********************
The following is an example of how to execute a dry run. Defaults should be picked first,
and then the values increased accordingly.
.. code-block:: console
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command: 2
These devices have kernel interfaces, but appear to be safe to use with VPP.
PCI ID Kernel Interface(s) Description
------------------------------------------------------------------------------------------
0000:8f:00.0 enp143s0 VIC Ethernet NIC
0000:84:00.0 enp132s0f0,enp132s0f0d1 Ethernet Controller XL710 for 40GbE QSFP+
0000:84:00.1 enp132s0f1,enp132s0f1d1 Ethernet Controller XL710 for 40GbE QSFP+
0000:08:00.1 enp8s0f1 I350 Gigabit Network Connection
0000:02:00.0 enp2s0f0 82599ES 10-Gigabit SFI/SFP+ Network Connection
0000:02:00.1 enp2s0f1 82599ES 10-Gigabit SFI/SFP+ Network Connection
0000:86:00.0 enp134s0f0 82599ES 10-Gigabit SFI/SFP+ Network Connection
0000:86:00.1 enp134s0f1 82599ES 10-Gigabit SFI/SFP+ Network Connection
Would you like to use any of these device(s) for VPP [y/N]? y
Would you like to use device 0000:8f:00.0 for VPP [y/N]?
Would you like to use device 0000:84:00.0 for VPP [y/N]?
Would you like to use device 0000:84:00.1 for VPP [y/N]?
Would you like to use device 0000:08:00.1 for VPP [y/N]?
Would you like to use device 0000:02:00.0 for VPP [y/N]?
Would you like to use device 0000:02:00.1 for VPP [y/N]?
Would you like to use device 0000:86:00.0 for VPP [y/N]? y
Would you like to use device 0000:86:00.1 for VPP [y/N]? y
These device(s) will be used by VPP.
PCI ID Description
----------------------------------------------------------------
0000:86:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection
0000:86:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection
0000:90:00.0 VIC Ethernet NIC
Would you like to remove any of these device(s) [y/N]? y
Would you like to remove 0000:86:00.0 [y/N]?
Would you like to remove 0000:86:00.1 [y/N]?
Would you like to remove 0000:90:00.0 [y/N]? y
These device(s) will be used by VPP, please rerun this option if this is incorrect.
PCI ID Description
----------------------------------------------------------------
0000:86:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection
0000:86:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection
Your system has 32 core(s) and 2 Numa Nodes.
To begin, we suggest not reserving any cores for VPP or other processes.
Then to improve performance start reserving cores and adding queues as needed.
How many core(s) shall we reserve for VPP [0-4][0]? 2
How many core(s) do you want to reserve for processes other than VPP? [0-15][0]?
Should we reserve 1 core for the VPP Main thread? [y/N]? y
How many RX queues per port shall we use for VPP [1-4][1]? 2
How many active-open / tcp client sessions are expected [0-10000000][0]?
How many passive-open / tcp server sessions are expected [0-10000000][0]?
There currently 896 2048 kB huge pages free.
Do you want to reconfigure the number of huge pages [y/N]? y
There currently a total of 1024 huge pages.
How many huge pages do you want [1024 - 15644][1024]? 8192
What would you like to do?
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command:

View File

@ -1,85 +0,0 @@
.. _config-applied:
*************************
The Configuration Applied
*************************
After the configuration is applied the system parameters should be examined.
.. code-block:: console
What would you like to do?
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
3) Full configuration (WARNING: This will change the system configuration)
4) List/Install/Uninstall VPP.
q) Quit
Command: 1
==============================
NODE: DUT1
CPU:
Model name: Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz
CPU(s): 32
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 2
NUMA node0 CPU(s): 0-7,16-23
NUMA node1 CPU(s): 8-15,24-31
CPU max MHz: 3600.0000
CPU min MHz: 1200.0000
SMT: Enabled
VPP Threads: (Name: Cpu Number)
vpp_main : 8
vpp_wk_1 : 10
vpp_wk_0 : 9
vpp_stats : 0
Grub Command Line:
Current: BOOT_IMAGE=/vmlinuz-4.4.0-128-generic root=UUID=9930aeee-b1d3-4cf5-b0de-d95dbb7dec5e ro
Configured: GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=1,8,9-10 nohz_full=1,8,9-10 rcu_nocbs=1,8,9-10"
Huge Pages:
Total System Memory : 65863384 kB
Total Free Memory : 31169292 kB
Actual Huge Page Total : 8196
Configured Huge Page Total : 8196
Huge Pages Free : 7942
Huge Page Size : 2048 kB
Devices:
Total Number of Buffers: 25600
Devices with link up (can not be used with VPP):
0000:08:00.0 enp8s0f0 I350 Gigabit Network Connection
Devices bound to kernel drivers:
0000:90:00.0 enp144s0 VIC Ethernet NIC
0000:8f:00.0 enp143s0 VIC Ethernet NIC
0000:84:00.0 enp132s0f0,enp132s0f0d1 Ethernet Controller XL710 for 40GbE QSFP+
0000:84:00.1 enp132s0f1,enp132s0f1d1 Ethernet Controller XL710 for 40GbE QSFP+
0000:08:00.1 enp8s0f1 I350 Gigabit Network Connection
0000:02:00.0 enp2s0f0 82599ES 10-Gigabit SFI/SFP+ Network Connection
0000:02:00.1 enp2s0f1 82599ES 10-Gigabit SFI/SFP+ Network Connection
Devices bound to DPDK drivers:
0000:86:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection
0000:86:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection
Devices in use by VPP:
Name Socket RXQs RXDescs TXQs TXDescs
TenGigabitEthernet86/0/0 1 2 1024 3 1024
TenGigabitEthernet86/0/1 1 2 1024 3 1024
VPP Service Status:
active (running)
.. toctree::
sysinfo

View File

@ -1,30 +0,0 @@
.. _configutil:
#########################
VPP Configuration Utility
#########################
This guide provides instructions on how to install and use the vpp configuration
utility.
The FD.io VPP Configuration Utility, or vpp-config, allows the user to configure
FD.io VPP in a simple and safe manner. The utility takes input from the user and
creates the configuration files in a dry run directory. The user should then examine
these files for correctness. If the configuration files look correct, the user
can then apply the configuration. Once the configuration is applied the user
should then check the system configuration with the utility and see if it was
applied correctly.
This utility also includes a utility that can be used to install or uninstall FD.io VPP
packages. This should be used to insure the latest tested release is installed.
.. toctree::
installing
usingvppconfig
commandfour
commandone
commandtwo
commandthree
configapplied

View File

@ -1,32 +0,0 @@
.. _installing:
.. toctree::
.. _installing-vpp-config:
*********************
Installing VPP-Config
*********************
The FD.io VPP configuration utility uses the `Python Package Index <https://pypi.org>`__
or "pypi".
To install FD.io vpp-config first install python pip.
For Ubuntu execute:
.. code-block:: console
$ sudo apt-get install python-pip
For Centos execute:
.. code-block:: console
$ sudo yum install install python-pip
Then install the config utility itself.
.. code-block:: console
$ sudo -H pip install vpp-config

View File

@ -1,50 +0,0 @@
.. _sysinfo:
CPU
---
The CPU section of the system information is a summary of the CPU characteristics of the system.
It is important to understand the CPU topology and frequency in order to understand what the VPP
performance characteristics would be.
Threads
-------
It usually is not needed, but VPP can be configured to run on isolated CPUs. In the example shown
VPP is configured with 2 workers. The main thread is also configured to run on a separate CPU. The
stats thread will always run on CPU 0. This utility will put the worker threads on CPUs that are
associated with the ports that are configured.
Grub Command Line
-----------------
In general the Grub command line does not need to be changed. If the system is running many processes
it may be necessary to isolate CPUs for VPP or other processes.
Huge Pages
----------
As default when VPP is configured the number of huge pages that will be configured will be 1024.
This may not be enough. This section will show the total system memory and how many are configured.
Devices
-------
In the devices section we have the "Total Number of Buffers". This utility allocates the correct
number of buffers. The number of buffers are calculated from the number of rx queues.
VPP will not use links that are up. Those devices are shown with this utility.
The devices bound to the kernel are not being used by VPP, but can be.
The devices that are being used by VPP are shown with the interface name be used with VPP. The
socket being used by the VPP port is also shown. Notice in this example the worker thread are
on the correct CPU. The number of RX, TX Descriptors and TX queues are calculated from the number
of RX queues.
VPP Service Status
------------------
The VPP service status, will be installed, not installed, running or not.

View File

@ -1,52 +0,0 @@
.. _usingvppconfig.rst:
*******
Running
*******
The vpp-config utility provides the user with several different menus. This allows the
user to configure ports, some performance characteristics, the number of huge pages
and install/uninstall the released FD.io packages.
It is recommended that the menu command options, noted below as *"x)"*, are run in
this order (command option 4 first, then options 1,2,3):
#. :ref:`4) List/Install/Uninstall VPP <config-command-four>`
#. :ref:`1) Show basic system information <config-command-one>`
#. :ref:`2) Dry Run <config-command-two>`
#. :ref:`3) Full Configuration <config-command-three>`
Once vpp-config is installed as a root user, then run the following code:
.. code-block:: console
$ sudo -H bash
# vpp-config
Welcome to the VPP system configuration utility
These are the files we will modify:
/etc/vpp/startup.conf
/etc/sysctl.d/80-vpp.conf
/etc/default/grub
Before we change them, we'll create working copies in /usr/local/vpp/vpp-config/dryrun
Please inspect them carefully before applying the actual configuration (option 3)!
What would you like to do?
1) Show basic system information
2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)
4) List/Install/Uninstall VPP.
q) Quit
Command:
Default Values
==============
If you do not choose to modify the default for any of the questions prompted by vpp-config, then
you may press the **ENTER** key to select the default options:
* Questions that ask [Y/n], the capital letter Y is the default answer.
* Numbers have their default within brackets, such as in [1024], the 1024 is the default.

View File

@ -21,6 +21,5 @@ section covers the following areas:
.. toctree::
:maxdepth: 2
configutil/index.rst
configuring/index.rst
running/index.rst

View File

@ -113,10 +113,7 @@ For systems without IOMMU only, enable unsafe NOIOMMU mode
$ echo Y | sudo tee /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
To bind interface to vfio-pci first install the :ref:`configutil`. This will
download the dpdk_devbind.py script. It is located in
*/usr/vpp/vpp-config/scripts* with Centos and
*/usr/local/vpp/vpp-config/scripts* with Ubuntu.
To bind interface to vfio-pci first install get the dpdk_devbind.py script.
Bind the driver with the following commands: