.. _runningvpp:

Running VPP
===========

Using the files we create in :ref`settingupenvironment` we will now start and
run VPP.

VPP runs in userspace. In a production environment you will often run it
with DPDK to connect to real NICs or vhost to connect to VMs. In those
circumstances you usually run a single instance of VPP.

For purposes of this tutorial, it is going to be extremely useful to run
multiple instances of VPP, and connect them to each other to form a
topology. Fortunately, VPP supports this.


Using the files we created in setup we will start VPP.

.. code-block:: console

   $ sudo /usr/bin/vpp -c startup1.conf
   vlib_plugin_early_init:361: plugin path /usr/lib/vpp_plugins:/usr/lib64/vpp_plugins
   load_one_plugin:189: Loaded plugin: abf_plugin.so (ACL based Forwarding)
   load_one_plugin:189: Loaded plugin: acl_plugin.so (Access Control Lists)
   load_one_plugin:189: Loaded plugin: avf_plugin.so (Intel Adaptive Virtual Function (AVF) Device Plugin)
   .........
   $

If VPP does not start you can try adding **nodaemon** to the startup.conf file in the
**unix** section. This should provide more information in the output.

startup.conf example with nodaemon:

.. code-block:: console

   unix {nodaemon cli-listen /run/vpp/cli-vpp1.sock}
   api-segment { prefix vpp1 }
   plugins { plugin dpdk_plugin.so { disable } }

The command **vppctl** will launch a VPP shell with which you can run
VPP commands interactively.

We should now be able to execute the VPP shell and show the version.

.. code-block:: console

   $ sudo vppctl -s /run/vpp/cli-vpp1.sock
       _______    _        _   _____  ___
    __/ __/ _ \  (_)__    | | / / _ \/ _ \
    _/ _// // / / / _ \   | |/ / ___/ ___/
    /_/ /____(_)_/\___/   |___/_/  /_/
   
   vpp# show version
   vpp v18.07-release built by root on c469eba2a593 at Mon Jul 30 23:27:03 UTC 2018
   vpp#

.. note::

   Use ctrl-d or q to exit from the VPP shell.

If you are going to run several instances of VPP this way be sure to kill them
when you are finished.

You can use something like the following:

.. code-block:: console

    $ ps -eaf | grep vpp
    root      2067     1  2 05:12 ?        00:00:00 /usr/bin/vpp -c startup1.conf
    vagrant   2070   903  0 05:12 pts/0    00:00:00 grep --color=auto vpp
    $ kill -9 2067
    $ ps -eaf | grep vpp
    vagrant   2074   903  0 05:13 pts/0    00:00:00 grep --color=auto vpp
