From c8e7f419fed65f2a9d055a5c9850e5fb213d9152 Mon Sep 17 00:00:00 2001 From: John DeNisco Date: Fri, 3 Aug 2018 11:02:24 -0400 Subject: Added missing file docs: Incorporate Javier's progressive VPP tutorial Change-Id: Iecee041039c7ed81713bc0530fc536e989c71497 Signed-off-by: John DeNisco --- docs/guides/progressivevpp/index.rst | 173 ++++++++++++++++++++++++++++++++++- 1 file changed, 170 insertions(+), 3 deletions(-) (limited to 'docs/guides/progressivevpp/index.rst') diff --git a/docs/guides/progressivevpp/index.rst b/docs/guides/progressivevpp/index.rst index ef8e85591e2..8be904dc911 100644 --- a/docs/guides/progressivevpp/index.rst +++ b/docs/guides/progressivevpp/index.rst @@ -1,9 +1,176 @@ .. _progressivevpp: -========================================= +.. toctree:: + +######################## Progressive VPP Tutorial -========================================= +######################## + +Overview +======== + +Learn to run FD.io VPP on a single Ubuntu 16.04 VM using Vagrant with this walkthrough +covering basic FD.io VPP senarios. Useful FD.io VPP commands will be used, and +will discuss basic operations, and the state of a running FD.io VPP on a system. + +.. note:: + + This is *not* intended to be a 'How to Run in a Production Environment' set of instructions. + +.. _introduction-to-vpp-vagrant: + +Setting up your environment +=========================== + +All of these exercises are designed to be performed on an Ubuntu 16.04 (Xenial) box. + +* If you have an Ubuntu 16.04 box on which you have sudo or root access, you can feel free to use that. +* If you do not, a Vagrantfile is provided to setup a basic Ubuntu 16.04 box for you in the the steps below. + +Running Vagrant +=============== + +FD.io 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 FD.io 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, FD.io VPP supports this. + +When running multiple FD.io VPP instances, each instance needs to have specified a 'name' or 'prefix'. In the example below, the 'name' or 'prefix' is "vpp1". Note that only one instance can use the dpdk plugin, since this plugin is trying to acquire a lock on a file. + +.. toctree:: + + settingupenvironment.rst + +The DPDK Plugin will be disabled for this section. The link below demonstrates how this is done. + +.. toctree:: + + removedpdkplugin.rst + +Start a FD.io VPP shell using vppctl +==================================== + +The command *$ sudo vppctl* will launch a FD.io VPP shell with which you can run multiple FD.io VPP commands interactively by running: + +.. code-block:: console + + $ sudo vppctl + _______ _ _ _____ ___ + __/ __/ _ \ (_)__ | | / / _ \/ _ \ + _/ _// // / / / _ \ | |/ / ___/ ___/ + /_/ /____(_)_/\___/ |___/_/ /_/ + vpp# show ver + vpp v18.07-release built by root on c469eba2a593 at Mon Jul 30 23:27:03 UTC 2018 + +Create an Interface +=================== + +Skills to be Learned +^^^^^^^^^^^^^^^^^^^^ + +#. Create a veth interface in Linux host +#. Assign an IP address to one end of the veth interface in the Linux host +#. Create a vpp host-interface that connected to one end of a veth interface via AF_PACKET +#. Add an ip address to a vpp interface + +.. toctree:: + + interface.rst + +Traces +====== + +Skills to be Learned +^^^^^^^^^^^^^^^^^^^^ + +#. Setup a 'trace' +#. View a 'trace' +#. Clear a 'trace' +#. Verify using ping from host +#. Ping from vpp +#. Examine Arp Table +#. Examine ip fib + +.. toctree:: + + traces.rst + +Routing +======= + +Skills to be Learned +^^^^^^^^^^^^^^^^^^^^ + +In this exercise you will learn these new skills: + +#. Add route to Linux Host routing table +#. Add route to FD.io VPP routing table + +And revisit the old ones: + +#. Examine FD.io VPP routing table +#. Enable trace on vpp1 and vpp2 +#. ping from host to FD.io VPP +#. Examine and clear trace on vpp1 and vpp2 +#. ping from FD.io VPP to host +#. Examine and clear trace on vpp1 and vpp2 + + +.. toctree:: + + routing.rst + +Connecting Two FD.io VPP Instances +================================== + +memif is a very high performance, direct memory interface type which can +be used between FD.io VPP instances to form a topology. It uses a file socket +for a control channel to set up that shared memory. + +Skills to be Learned +^^^^^^^^^^^^^^^^^^^^ + +You will learn the following new skill in this exercise: + +#. Create a memif interface between two FD.io VPP instances + +You should be able to perform this exercise with the following skills +learned in previous exercises: + +#. Run a second FD.io VPP instance +#. Add an ip address to a FD.io VPP interface +#. Ping from FD.io VPP + +.. toctree:: + + twovppinstances.rst + +Switching +========= + +Skills to be Learned +^^^^^^^^^^^^^^^^^^^^ + +#. Associate an interface with a bridge domain +#. Create a loopback interaface +#. Create a BVI (Bridge Virtual Interface) for a bridge domain +#. Examine a bridge domain + +.. toctree:: + + switching.rst + +Source NAT +========== + +Skills to be Learned +^^^^^^^^^^^^^^^^^^^^ + +#. Abusing networks namespaces for fun and profit +#. Configuring snat address +#. Configuring snat inside and outside interfaces .. toctree:: - vagrant \ No newline at end of file + sourceNAT.rst -- cgit 1.2.3-korg