-Summary:\r
-\r
-The purpose of the VPP configuration utility is to allow the user to configure\r
-VPP in a simple and safe manner. The utility takes input from the user and\r
-then modifies the key configuration files. The user can then examine these files\r
-to be sure they are correct and then actually apply the configuration. The user\r
-can also install a released and stable version of VPP. This is currently\r
-released with release 17.10.\r
-\r
-Use:\r
-\r
-The installation and executing of the VPP configuration utility is simple. First\r
-install the python pip module. Using pip install, then pip install vpp-config.\r
-Then simply type Òvpp-configÓ and answer the questions. If you are not sure what\r
-to answer choose the default. For yes or no questions the capital letter\r
-designates the default. For example, for a question that shows [Y/n] Y is the\r
-default. For numbers the default is within the brackets for example for a\r
-question that shows [1024]. 1024 is the default. \r
-\r
-The flow of the utility is to inspect the system, if VPP is not install it,\r
-create dry run configurations, inspect the files created during the dry run,\r
-apply the configuration and then inspect the system again and then repeat. \r
-\r
-Caveats:\r
-\r
-- Supports Ubuntu, centos7, RedHat is coming shortly.\r
-\r
-For Developers:\r
-\r
-Modifying the code is reasonable simple. The process would be edit and debug the\r
-code from the root directory. In order to do this, we need a script that will copy\r
-or data files to the proper place. This is where they end up with pip install. For\r
-Ubuntu, this is /usr/local/vpp/vpp-config. I have provided a script that will copy\r
-the relevant files correctly. I have also provided a script that will clean the\r
-environment so you can start from scratch. These are the steps to run the utility\r
-in this environment. The scripts are meant to be run from the root directory.\r
-\r
- ./scripts/clean.sh\r
- ./scripts/cp-data.sh \r
- ./vpp_config.py \r
-\r
-When the utility is installed with pip the wrapper scripts/vpp-config is written to\r
-/usr/local/bin. However, the starting point when debugging this script locally is\r
-./vpp_config.py. Run the utility by executing ./vpp_config.py from the root directory. \r
-\r
-The start point in the code is in vpp_config.py. However, most of the work is done in\r
-the files in ./vpplib\r
-\r
-Uploading to PyPi:\r
-\r
-To upload this utility to PpPi simple do the following. Currently, I have my own account\r
-when we want everyone to contribute we will need to change that.\r
-\r
- sudo ÐH bash\r
- cd vpp_config\r
- python setup.py sdist bdist_wheel\r
- twine upload dist/*\r
-\r
-Example Run:\r
-\r
-# pip install vpp-config\r
-# vpp-config\r
-\r
-Welcome to the VPP system configuration utility\r
-\r
-These are the files we will modify:\r
- /etc/vpp/startup.conf\r
- /etc/sysctl.d/80-vpp.conf\r
- /etc/default/grub\r
-\r
-Before we change them, we'll create working copies in /usr/local/vpp/vpp-config/dryrun\r
-Please inspect them carefully before applying the actual configuration (option 3)!\r
-\r
-What would you like to do?\r
-\r
-1) Show basic system information\r
-2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)\r
- and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml\r
-3) Full configuration (WARNING: This will change the system configuration)\r
-4) Install/Uninstall VPP.\r
-5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).\r
-6) Install QEMU patch (Needed when running openstack).\r
-9 or q) Quit\r
-\r
-Command: 1\r
-\r
-==============================\r
-NODE: DUT1\r
-\r
-CPU:\r
- Model name: Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz\r
- CPU(s): 32\r
- Thread(s) per core: 2\r
- Core(s) per socket: 8\r
- Socket(s): 2\r
- NUMA node0 CPU(s): 0-7,16-23\r
- NUMA node1 CPU(s): 8-15,24-31\r
- CPU max MHz: 3600.0000\r
- CPU min MHz: 1200.0000\r
- SMT: Enabled\r
-\r
-VPP Threads: (Name: Cpu Number)\r
-\r
-Grub Command Line:\r
- Current: BOOT_IMAGE=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro\r
- Configured: GRUB_CMDLINE_LINUX_DEFAULT=""\r
-\r
-Huge Pages:\r
- Total System Memory : 65863484 kB\r
- Total Free Memory : 41325924 kB\r
- Actual Huge Page Total : 8192\r
- Configured Huge Page Total : 1024\r
- Huge Pages Free : 8192\r
- Huge Page Size : 2048 kB\r
-\r
-Devices:\r
-\r
-Status:\r
- Not Installed\r
-\r
-==============================\r
-\r
-What would you like to do?\r
-\r
-1) Show basic system information\r
-2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)\r
- and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml\r
-3) Full configuration (WARNING: This will change the system configuration)\r
-4) Install/Uninstall VPP.\r
-5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).\r
-6) Install QEMU patch (Needed when running openstack).\r
-9 or q) Quit\r
-\r
-Command: 4\r
-\r
-There are no VPP packages on node localhost.\r
-Do you want to install VPP [Y/n]? \r
-INFO:root: Local Command: ls /etc/apt/sources.list.d/99fd.io.list.orig\r
-INFO:root: /etc/apt/sources.list.d/99fd.io.list.orig\r
-ÉÉ..\r
-\r
-What would you like to do?\r
-\r
-1) Show basic system information\r
-2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)\r
- and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml\r
-3) Full configuration (WARNING: This will change the system configuration)\r
-4) Install/Uninstall VPP.\r
-5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).\r
-6) Install QEMU patch (Needed when running openstack).\r
-9 or q) Quit\r
-\r
-Command: 1\r
-\r
-==============================\r
-NODE: DUT1\r
-\r
-CPU:\r
- Model name: Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz\r
- CPU(s): 32\r
- Thread(s) per core: 2\r
- Core(s) per socket: 8\r
- Socket(s): 2\r
- NUMA node0 CPU(s): 0-7,16-23\r
- NUMA node1 CPU(s): 8-15,24-31\r
- CPU max MHz: 3600.0000\r
- CPU min MHz: 1200.0000\r
- SMT: Enabled\r
-\r
-VPP Threads: (Name: Cpu Number)\r
- vpp_main : 0 \r
- vpp_stats : 0 \r
-\r
-Grub Command Line:\r
- Current: BOOT_IMAGE=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro\r
- Configured: GRUB_CMDLINE_LINUX_DEFAULT=""\r
-\r
-Huge Pages:\r
- Total System Memory : 65863484 kB\r
- Total Free Memory : 55877364 kB\r
- Actual Huge Page Total : 1024\r
- Configured Huge Page Total : 1024\r
- Huge Pages Free : 1024\r
- Huge Page Size : 2048 kB\r
-\r
-Devices:\r
-Name Socket RXQs RXDescs TXQs TXDescs\r
-\r
-Status:\r
- active (running)\r
-\r
-==============================\r
-\r
-What would you like to do?\r
-\r
-1) Show basic system information\r
-2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)\r
- and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml\r
-3) Full configuration (WARNING: This will change the system configuration)\r
-4) Install/Uninstall VPP.\r
-5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).\r
-6) Install QEMU patch (Needed when running openstack).\r
-9 or q) Quit\r
-\r
-Command: 2\r
-\r
-These device(s) are currently NOT being used by VPP or the OS.\r
-\r
-PCI ID Description \r
-----------------------------------------------------------------\r
-0000:02:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:02:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-\r
-Would you like to give any of these devices back to the OS [y/N]? y\r
-Would you like to use device 0000:02:00.0 for the OS [y/N]? y\r
-Would you like to use device 0000:02:00.1 for the OS [y/N]? y\r
-\r
-These devices have kernel interfaces, but appear to be safe to use with VPP.\r
-\r
-PCI ID Kernel Interface(s) Description \r
-------------------------------------------------------------------------------------------\r
-0000:90:00.0 enp144s0 VIC Ethernet NIC \r
-0000:8f:00.0 enp143s0 VIC Ethernet NIC \r
-0000:84:00.0 enp132s0f0,enp132s0f0d1 Ethernet Controller XL710 for 40GbE QSFP+ \r
-0000:84:00.1 enp132s0f1,enp132s0f1d1 Ethernet Controller XL710 for 40GbE QSFP+ \r
-0000:08:00.1 enp8s0f1 I350 Gigabit Network Connection \r
-0000:02:00.0 enp2s0f0 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:02:00.1 enp2s0f1 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:86:00.0 enp134s0f0 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:86:00.1 enp134s0f1 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-\r
-Would you like to use any of these device(s) for VPP [y/N]? y\r
-Would you like to use device 0000:90:00.0 for VPP [y/N]? \r
-Would you like to use device 0000:8f:00.0 for VPP [y/N]? \r
-Would you like to use device 0000:84:00.0 for VPP [y/N]? \r
-Would you like to use device 0000:84:00.1 for VPP [y/N]? \r
-Would you like to use device 0000:08:00.1 for VPP [y/N]? \r
-Would you like to use device 0000:02:00.0 for VPP [y/N]? y\r
-Would you like to use device 0000:02:00.1 for VPP [y/N]? y\r
-Would you like to use device 0000:86:00.0 for VPP [y/N]? y\r
-Would you like to use device 0000:86:00.1 for VPP [y/N]? y\r
-\r
-These device(s) will be used by VPP.\r
-\r
-PCI ID Description \r
-----------------------------------------------------------------\r
-0000:86:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:86:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:02:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:02:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-\r
-Would you like to remove any of these device(s) [y/N]? \r
-\r
-These device(s) will be used by VPP, please rerun this option if this is incorrect.\r
-\r
-PCI ID Description \r
-----------------------------------------------------------------\r
-0000:86:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:86:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:02:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-0000:02:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection \r
-\r
-Your system has 32 core(s) and 2 Numa Nodes.\r
-To begin, we suggest not reserving any cores for VPP or other processes.\r
-Then to improve performance try reserving cores as needed. \r
-\r
-How many core(s) do you want to reserve for processes other than VPP? [0-16][0]? 4\r
-How many core(s) shall we reserve for VPP workers[0-4][0]? 2\r
-Should we reserve 1 core for the VPP Main thread? [Y/n]? \r
-\r
-There currently 1024 2048 kB huge pages free.\r
-Do you want to reconfigure the number of huge pages [y/N]? y\r
-\r
-There currently a total of 1024 huge pages.\r
-How many huge pages do you want [1024 - 22511][1024]? 8192\r
-\r
-What would you like to do?\r
-\r
-1) Show basic system information\r
-2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)\r
- and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml\r
-3) Full configuration (WARNING: This will change the system configuration)\r
-4) Install/Uninstall VPP.\r
-5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).\r
-6) Install QEMU patch (Needed when running openstack).\r
-9 or q) Quit\r
-\r
-Command: 3\r
-\r
-We are now going to configure your system(s).\r
-\r
-Are you sure you want to do this [Y/n]? \r
-These are the changes we will apply to\r
-the huge page file (/etc/sysctl.d/80-vpp.conf).\r
-\r
-1,2d0\r
-< # Number of 2MB hugepages desired\r
-< vm.nr_hugepages=1024\r
-4,7c2,3\r
-< # Must be greater than or equal to (2 * vm.nr_hugepages).\r
-< vm.max_map_count=3096\r
-< \r
-< # All groups allowed to access hugepages\r
----\r
-> vm.nr_hugepages=8192\r
-> vm.max_map_count=17408\r
-8a5\r
-> kernel.shmmax=17179869184\r
-10,15d6\r
-< # Shared Memory Max must be greator or equal to the total size of hugepages.\r
-< # For 2MB pages, TotalHugepageSize = vm.nr_hugepages * 2 * 1024 * 1024\r
-< # If the existing kernel.shmmax setting (cat /sys/proc/kernel/shmmax)\r
-< # is greater than the calculated TotalHugepageSize then set this parameter\r
-< # to current shmmax value.\r
-< kernel.shmmax=2147483648\r
-\r
-\r
-Are you sure you want to apply these changes [Y/n]? \r
-These are the changes we will apply to\r
-the VPP startup file (/etc/vpp/startup.conf).\r
-\r
-3c3\r
-< nodaemon\r
----\r
-> interactive\r
-5a6\r
-> cli-listen /run/vpp/cli.sock\r
-17c18,25\r
-< ## In the VPP there is one main thread and optionally the user can create worker(s)\r
----\r
-> \r
-> main-core 8\r
-> corelist-workers 9-10,5-6\r
-> \r
-> scheduler-policy fifo\r
-> scheduler-priority 50\r
-> \r
-> ## In the VPP there is one main thread and optionally the user can create worker(s)\r
-52,53c60,76\r
-< # dpdk {\r
-< ## Change default settings for all intefaces\r
----\r
-> dpdk {\r
-> \r
-> dev 0000:86:00.0 { \r
-> num-rx-queues 2\r
-> }\r
-> dev 0000:86:00.1 { \r
-> num-rx-queues 2\r
-> }\r
-> dev 0000:02:00.0 { \r
-> num-rx-queues 2\r
-> }\r
-> dev 0000:02:00.1 { \r
-> num-rx-queues 2\r
-> }\r
-> num-mbufs 71680\r
-> \r
-> ## Change default settings for all intefaces\r
-82a106,115\r
-> ## Specify bonded interface and its slaves via PCI addresses\r
-> ## \r
-> ## Bonded interface in XOR load balance mode (mode 2) with L3 and L4 headers \r
-> # vdev eth_bond0,mode=2,slave=0000:02:00.0,slave=0000:03:00.0,xmit_policy=l34\r
-> # vdev eth_bond1,mode=2,slave=0000:02:00.1,slave=0000:03:00.1,xmit_policy=l34\r
-> ##\r
-> ## Bonded interface in Active-Back up mode (mode 1)\r
-> # vdev eth_bond0,mode=1,slave=0000:02:00.0,slave=0000:03:00.0\r
-> # vdev eth_bond1,mode=1,slave=0000:02:00.1,slave=0000:03:00.1\r
-> \r
-99c132\r
-< # }\r
----\r
-> }\r
-108a142\r
-> \r
-\r
-\r
-Are you sure you want to apply these changes [Y/n]? \r
-\r
-The configured grub cmdline looks like this:\r
-GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable isolcpus=1-4,8,9-10,5-6 nohz_full=1-4,8,9-10,5-6 rcu_nocbs=1-4,8,9-10,5-6"\r
-\r
-The current boot cmdline looks like this:\r
-BOOT_IMAGE=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro\r
-\r
-Do you want to keep the current boot cmdline [Y/n]? \r
-\r
-What would you like to do?\r
-\r
-1) Show basic system information\r
-2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)\r
- and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml\r
-3) Full configuration (WARNING: This will change the system configuration)\r
-4) Install/Uninstall VPP.\r
-5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).\r
-6) Install QEMU patch (Needed when running openstack).\r
-9 or q) Quit\r
-\r
-Command: 1\r
-\r
-==============================\r
-NODE: DUT1\r
-\r
-CPU:\r
- Model name: Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz\r
- CPU(s): 32\r
- Thread(s) per core: 2\r
- Core(s) per socket: 8\r
- Socket(s): 2\r
- NUMA node0 CPU(s): 0-7,16-23\r
- NUMA node1 CPU(s): 8-15,24-31\r
- CPU max MHz: 3600.0000\r
- CPU min MHz: 1200.0000\r
- SMT: Enabled\r
-\r
-VPP Threads: (Name: Cpu Number)\r
-\r
-Grub Command Line:\r
- Current: BOOT_IMAGE=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro\r
- Configured: GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable isolcpus=1-4,8,9-10,5-6 nohz_full=1-4,8,9-10,5-6 rcu_nocbs=1-4,8,9-10,5-6"\r
-\r
-Huge Pages:\r
- Total System Memory : 65863484 kB\r
- Total Free Memory : 41163916 kB\r
- Actual Huge Page Total : 8192\r
- Configured Huge Page Total : 8192\r
- Huge Pages Free : 3108\r
- Huge Page Size : 2048 kB\r
-\r
-Devices:\r
-Total Number of Buffers: 71680\r
-\r
-Status:\r
- active (running)\r
- Sep 27 12:49:59 tf-ucs-3 vpp[13671]: EAL: No free hugepages reported in hugepages-1048576kB\r
-\r
-==============================\r
-\r
-What would you like to do?\r
-\r
-1) Show basic system information\r
-2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)\r
- and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml\r
-3) Full configuration (WARNING: This will change the system configuration)\r
-4) Install/Uninstall VPP.\r
-5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).\r
-6) Install QEMU patch (Needed when running openstack).\r
-9 or q) Quit\r
-\r
-Command: 1\r
-\r
-==============================\r
-NODE: DUT1\r
-\r
-CPU:\r
- Model name: Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz\r
- CPU(s): 32\r
- Thread(s) per core: 2\r
- Core(s) per socket: 8\r
- Socket(s): 2\r
- NUMA node0 CPU(s): 0-7,16-23\r
- NUMA node1 CPU(s): 8-15,24-31\r
- CPU max MHz: 3600.0000\r
- CPU min MHz: 1200.0000\r
- SMT: Enabled\r
-\r
-VPP Threads: (Name: Cpu Number)\r
- vpp_stats : 0 \r
- vpp_wk_2 : 9 \r
- vpp_wk_3 : 10 \r
- vpp_wk_0 : 5 \r
- vpp_wk_1 : 6 \r
- vpp_main : 8 \r
-\r
-Grub Command Line:\r
- Current: BOOT_IMAGE=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro\r
- Configured: GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable isolcpus=1-4,8,9-10,5-6 nohz_full=1-4,8,9-10,5-6 rcu_nocbs=1-4,8,9-10,5-6"\r
-\r
-Huge Pages:\r
- Total System Memory : 65863484 kB\r
- Total Free Memory : 41170684 kB\r
- Actual Huge Page Total : 8192\r
- Configured Huge Page Total : 8192\r
- Huge Pages Free : 7936\r
- Huge Page Size : 2048 kB\r
-\r
-Devices:\r
-Total Number of Buffers: 71680\r
-Name Socket RXQs RXDescs TXQs TXDescs\r
-TenGigabitEthernet2/0/0 0 2 1024 5 1024\r
-TenGigabitEthernet2/0/1 0 2 1024 5 1024\r
-TenGigabitEthernet86/0/0 1 2 1024 5 1024\r
-TenGigabitEthernet86/0/1 1 2 1024 5 1024\r
-\r
-Status:\r
- active (running)\r
-\r
-==============================\r
-\r
-What would you like to do?\r
-\r
-1) Show basic system information\r
-2) Dry Run (Will save the configuration files in /usr/local/vpp/vpp-config/dryrun for inspection)\r
- and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml\r
-3) Full configuration (WARNING: This will change the system configuration)\r
-4) Install/Uninstall VPP.\r
-5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).\r
-6) Install QEMU patch (Needed when running openstack).\r
-9 or q) Quit\r
-\r
-Command: q\r
-# \r
+VPP configuration utility
+=========================
+
+The purpose of the VPP configuration utility is to allow the user to configure
+VPP in a simple and safe manner. The utility takes input from the user and
+then modifies the key configuration files. The user can then examine these files
+to be sure they are correct and then actually apply the configuration. The user
+can also install a released and stable version of VPP. This is currently
+released with release 17.10.
+
+VPP config Usage
+----------------
+
+The installation and executing of the VPP configuration utility is simple. First
+install the python pip module. Using pip install, then pip install vpp-config.
+Then simply type ``vpp-config`` and answer the questions. If you are not sure what
+to answer choose the default. For yes or no questions the capital letter
+designates the default. For example, for a question that shows [Y/n] Y is the
+default. For numbers the default is within the brackets for example for a
+question that shows [1024]. 1024 is the default.
+
+The flow of the utility is to inspect the system, if VPP is not install it,
+create dry run configurations, inspect the files created during the dry run,
+apply the configuration and then inspect the system again and then repeat.
+
+Caveats
+-------
+
+- Supports Ubuntu, centos7, RedHat is coming shortly.
+
+For Developers:
+
+Modifying the code is reasonable simple. The process would be edit and debug the
+code from the root directory. In order to do this, we need a script that will copy
+or data files to the proper place. This is where they end up with pip install. For
+Ubuntu, this is ``/usr/local/vpp/vpp-config``. I have provided a script that will copy
+the relevant files correctly. I have also provided a script that will clean the
+environment so you can start from scratch. These are the steps to run the utility
+in this environment. The scripts are meant to be run from the root directory.
+
+.. code-block:: console
+
+ ./scripts/clean.sh
+ ./scripts/cp-data.sh
+ ./vpp-config
+
+When the utility is installed with pip the wrapper ``scripts/vpp-config`` is written to
+``/usr/local/bin``. However, the starting point when debugging this script locally is
+vpp-config. Run the utility by executing vpp-config.
+
+The start point in the code is in vpp_config.py. However, most of the work is
+done in the files in ``./vpplib``
+
+Uploading to PyPi
+-----------------
+
+To upload this utility to PpPi simple do the following. Currently, I have my own account
+when we want everyone to contribute we will need to change that.
+
+
+.. code-block:: console
+
+ sudo bash
+ cd vpp_config
+ python setup.py sdist bdist_wheel
+ twine upload dist/*
+
+Example Run:
+
+.. code-block:: console
+
+ # pip install vpp-config
+ # 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)
+ and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml
+ 3) Full configuration (WARNING: This will change the system configuration)
+ 4) Install/Uninstall VPP.
+ 5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).
+ 6) Install QEMU patch (Needed when running openstack).
+ 9 or 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=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro
+ Configured: GRUB_CMDLINE_LINUX_DEFAULT=""
+
+ Huge Pages:
+ Total System Memory : 65863484 kB
+ Total Free Memory : 41325924 kB
+ Actual Huge Page Total : 8192
+ Configured Huge Page Total : 1024
+ Huge Pages Free : 8192
+ Huge Page Size : 2048 kB
+
+ Devices:
+
+ Status:
+ Not Installed
+
+ 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)
+ and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml
+ 3) Full configuration (WARNING: This will change the system configuration)
+ 4) Install/Uninstall VPP.
+ 5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).
+ 6) Install QEMU patch (Needed when running openstack).
+ 9 or q) Quit
+
+ Command: 4
+
+ There are no VPP packages on node localhost.
+ Do you want to install VPP [Y/n]?
+ 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)
+ and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml
+ 3) Full configuration (WARNING: This will change the system configuration)
+ 4) Install/Uninstall VPP.
+ 5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).
+ 6) Install QEMU patch (Needed when running openstack).
+ 9 or 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 : 0
+ vpp_stats : 0
+
+ Grub Command Line:
+ Current: BOOT_IMAGE=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro
+ Configured: GRUB_CMDLINE_LINUX_DEFAULT=""
+
+ Huge Pages:
+ Total System Memory : 65863484 kB
+ Total Free Memory : 55877364 kB
+ Actual Huge Page Total : 1024
+ Configured Huge Page Total : 1024
+ Huge Pages Free : 1024
+ Huge Page Size : 2048 kB
+
+ Devices:
+ Name Socket RXQs RXDescs TXQs TXDescs
+
+ Status:
+ active (running)
+
+ ==============================
+
+ 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)
+ and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml
+ 3) Full configuration (WARNING: This will change the system configuration)
+ 4) Install/Uninstall VPP.
+ 5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).
+ 6) Install QEMU patch (Needed when running openstack).
+ 9 or q) Quit
+
+ Command: 2
+
+ These device(s) are currently NOT being used by VPP or the OS.
+
+ PCI ID Description
+ ----------------------------------------------------------------
+ 0000:02:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection
+ 0000:02:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection
+
+ Would you like to give any of these devices back to the OS [y/N]? y
+ Would you like to use device 0000:02:00.0 for the OS [y/N]? y
+ Would you like to use device 0000:02:00.1 for the OS [y/N]? y
+
+ These devices have kernel interfaces, but appear to be safe to use with VPP.
+
+ PCI ID Kernel Interface(s) Description
+ ------------------------------------------------------------------------------------------
+ 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
+ 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:90:00.0 for VPP [y/N]?
+ 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]? y
+ Would you like to use device 0000:02:00.1 for VPP [y/N]? y
+ 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
+
+ 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:02:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection
+ 0000:02:00.1 82599ES 10-Gigabit SFI/SFP+ Network Connection
+
+ Would you like to remove any of these device(s) [y/N]?
+
+ 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
+ 0000:02:00.0 82599ES 10-Gigabit SFI/SFP+ Network Connection
+ 0000:02: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 try reserving cores as needed.
+
+ How many core(s) do you want to reserve for processes other than VPP? [0-16][0]? 4
+ How many core(s) shall we reserve for VPP workers[0-4][0]? 2
+ Should we reserve 1 core for the VPP Main thread? [Y/n]?
+
+ There currently 1024 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 - 22511][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)
+ and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml
+ 3) Full configuration (WARNING: This will change the system configuration)
+ 4) Install/Uninstall VPP.
+ 5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).
+ 6) Install QEMU patch (Needed when running openstack).
+ 9 or q) Quit
+
+ Command: 3
+
+ We are now going to configure your system(s).
+
+ Are you sure you want to do this [Y/n]?
+ These are the changes we will apply to
+ the huge page file (/etc/sysctl.d/80-vpp.conf).
+
+ 1,2d0
+ < # Number of 2MB hugepages desired
+ < vm.nr_hugepages=1024
+ 4,7c2,3
+ < # Must be greater than or equal to (2 * vm.nr_hugepages).
+ < vm.max_map_count=3096
+ <
+ < # All groups allowed to access hugepages
+ ---
+ > vm.nr_hugepages=8192
+ > vm.max_map_count=17408
+ 8a5
+ > kernel.shmmax=17179869184
+ 10,15d6
+ < # Shared Memory Max must be greator or equal to the total size of hugepages.
+ < # For 2MB pages, TotalHugepageSize = vm.nr_hugepages * 2 * 1024 * 1024
+ < # If the existing kernel.shmmax setting (cat /sys/proc/kernel/shmmax)
+ < # is greater than the calculated TotalHugepageSize then set this parameter
+ < # to current shmmax value.
+ < 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).
+
+ 3c3
+ < nodaemon
+ ---
+ > interactive
+ 5a6
+ > cli-listen /run/vpp/cli.sock
+ 17c18,25
+ < ## In the VPP there is one main thread and optionally the user can create worker(s)
+ ---
+ >
+ > main-core 8
+ > corelist-workers 9-10,5-6
+ >
+ > scheduler-policy fifo
+ > scheduler-priority 50
+ >
+ > ## In the VPP there is one main thread and optionally the user can create worker(s)
+ 52,53c60,76
+ < # dpdk {
+ < ## Change default settings for all intefaces
+ ---
+ > dpdk {
+ >
+ > dev 0000:86:00.0 {
+ > num-rx-queues 2
+ > }
+ > dev 0000:86:00.1 {
+ > num-rx-queues 2
+ > }
+ > dev 0000:02:00.0 {
+ > num-rx-queues 2
+ > }
+ > dev 0000:02:00.1 {
+ > num-rx-queues 2
+ > }
+ > num-mbufs 71680
+ >
+ > ## Change default settings for all intefaces
+ 82a106,115
+ > ## Specify bonded interface and its slaves via PCI addresses
+ > ##
+ > ## Bonded interface in XOR load balance mode (mode 2) with L3 and L4 headers
+ > # vdev eth_bond0,mode=2,slave=0000:02:00.0,slave=0000:03:00.0,xmit_policy=l34
+ > # vdev eth_bond1,mode=2,slave=0000:02:00.1,slave=0000:03:00.1,xmit_policy=l34
+ > ##
+ > ## Bonded interface in Active-Back up mode (mode 1)
+ > # vdev eth_bond0,mode=1,slave=0000:02:00.0,slave=0000:03:00.0
+ > # vdev eth_bond1,mode=1,slave=0000:02:00.1,slave=0000:03:00.1
+ >
+ 99c132
+ < # }
+ ---
+ > }
+ 108a142
+ >
+
+ Are you sure you want to apply these changes [Y/n]?
+
+ The configured grub cmdline looks like this:
+ GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable isolcpus=1-4,8,9-10,5-6 nohz_full=1-4,8,9-10,5-6 rcu_nocbs=1-4,8,9-10,5-6"
+
+ The current boot cmdline looks like this:
+ BOOT_IMAGE=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro
+
+ Do you want to keep the current boot cmdline [Y/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)
+ and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml
+ 3) Full configuration (WARNING: This will change the system configuration)
+ 4) Install/Uninstall VPP.
+ 5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).
+ 6) Install QEMU patch (Needed when running openstack).
+ 9 or 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=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro
+ Configured: GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable isolcpus=1-4,8,9-10,5-6 nohz_full=1-4,8,9-10,5-6 rcu_nocbs=1-4,8,9-10,5-6"
+
+ Huge Pages:
+ Total System Memory : 65863484 kB
+ Total Free Memory : 41163916 kB
+ Actual Huge Page Total : 8192
+ Configured Huge Page Total : 8192
+ Huge Pages Free : 3108
+ Huge Page Size : 2048 kB
+
+ Devices:
+ Total Number of Buffers: 71680
+
+ Status:
+ active (running)
+ Sep 27 12:49:59 tf-ucs-3 vpp[13671]: EAL: No free hugepages reported in hugepages-1048576kB
+
+ ==============================
+
+ 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)
+ and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml
+ 3) Full configuration (WARNING: This will change the system configuration)
+ 4) Install/Uninstall VPP.
+ 5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).
+ 6) Install QEMU patch (Needed when running openstack).
+ 9 or 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_stats : 0
+ vpp_wk_2 : 9
+ vpp_wk_3 : 10
+ vpp_wk_0 : 5
+ vpp_wk_1 : 6
+ vpp_main : 8
+
+ Grub Command Line:
+ Current: BOOT_IMAGE=/boot/vmlinuz-4.4.0-96-generic root=UUID=d760b82f-f37b-47e2-9815-db8d479a3557 ro
+ Configured: GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable isolcpus=1-4,8,9-10,5-6 nohz_full=1-4,8,9-10,5-6 rcu_nocbs=1-4,8,9-10,5-6"
+
+ Huge Pages:
+ Total System Memory : 65863484 kB
+ Total Free Memory : 41170684 kB
+ Actual Huge Page Total : 8192
+ Configured Huge Page Total : 8192
+ Huge Pages Free : 7936
+ Huge Page Size : 2048 kB
+
+ Devices:
+ Total Number of Buffers: 71680
+ Name Socket RXQs RXDescs TXQs TXDescs
+ TenGigabitEthernet2/0/0 0 2 1024 5 1024
+ TenGigabitEthernet2/0/1 0 2 1024 5 1024
+ TenGigabitEthernet86/0/0 1 2 1024 5 1024
+ TenGigabitEthernet86/0/1 1 2 1024 5 1024
+
+ Status:
+ active (running)
+
+ ==============================
+
+ 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)
+ and user input in /usr/local/vpp/vpp-config/configs/auto-config.yaml
+ 3) Full configuration (WARNING: This will change the system configuration)
+ 4) Install/Uninstall VPP.
+ 5) Dry Run from /usr/local/vpp/vpp-config/auto-config.yaml (will not ask questions).
+ 6) Install QEMU patch (Needed when running openstack).
+ 9 or q) Quit
+
+ Command: q
+ #