diff options
author | John DeNisco <jdenisco@cisco.com> | 2018-08-16 13:50:02 -0400 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2018-08-17 17:28:28 +0000 |
commit | c4c72d28352f74be5e3c78521e73ff64bbb78ea0 (patch) | |
tree | 2cb26ebd5206a6b8bb31eb3703f1ae8bbab6f6fc /docs/guides/progressivevpp | |
parent | a60c3ed14b2cd2f63a1262b8935b823e081aeef7 (diff) |
docs: Rework the VPP progressive Tutorial.
Change-Id: If5b0d07ea90d978c6b1f11210a661876b7929653
Signed-off-by: John DeNisco <jdenisco@cisco.com>
Diffstat (limited to 'docs/guides/progressivevpp')
-rw-r--r-- | docs/guides/progressivevpp/index.rst | 176 | ||||
-rw-r--r-- | docs/guides/progressivevpp/interface.rst | 126 | ||||
-rw-r--r-- | docs/guides/progressivevpp/removedpdkplugin.rst | 18 | ||||
-rw-r--r-- | docs/guides/progressivevpp/routing.rst | 71 | ||||
-rw-r--r-- | docs/guides/progressivevpp/settingupenvironment.rst | 21 | ||||
-rw-r--r-- | docs/guides/progressivevpp/sourceNAT.rst | 159 | ||||
-rw-r--r-- | docs/guides/progressivevpp/switching.rst | 188 | ||||
-rw-r--r-- | docs/guides/progressivevpp/traces.rst | 499 | ||||
-rw-r--r-- | docs/guides/progressivevpp/twovppinstances.rst | 114 |
9 files changed, 0 insertions, 1372 deletions
diff --git a/docs/guides/progressivevpp/index.rst b/docs/guides/progressivevpp/index.rst deleted file mode 100644 index 8be904dc911..00000000000 --- a/docs/guides/progressivevpp/index.rst +++ /dev/null @@ -1,176 +0,0 @@ -.. _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:: - - sourceNAT.rst diff --git a/docs/guides/progressivevpp/interface.rst b/docs/guides/progressivevpp/interface.rst deleted file mode 100644 index 619216d5f42..00000000000 --- a/docs/guides/progressivevpp/interface.rst +++ /dev/null @@ -1,126 +0,0 @@ -.. _interface: - -.. toctree:: - -Interface -========= - -VPP command learned in this exercise -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -#. `create host-interface <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_devices_af_packet.html#clicmd_create_host-interface>`_ -#. `set int state <https://docs.fd.io/vpp/17.04/clicmd_src_vnet.html#clicmd_set_interface_state>`_ -#. `set int ip address <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_ip.html#clicmd_set_interface_ip_address>`_ -#. `show hardware <https://docs.fd.io/vpp/17.04/clicmd_src_vnet.html#clicmd_show_hardware-interfaces>`_ -#. `show int <https://docs.fd.io/vpp/17.04/clicmd_src_vnet.html#clicmd_show_interfaces>`_ -#. `show int addr <https://docs.fd.io/vpp/17.04/clicmd_src_vnet.html#clicmd_show_interfaces>`_ -#. `trace add <https://docs.fd.io/vpp/17.04/clicmd_src_vlib.html#clicmd_trace_add>`_ -#. `clear trace <https://docs.fd.io/vpp/17.04/clicmd_src_vlib.html#clicmd_clear_trace>`_ -#. `ping <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_ip.html#clicmd_ping>`_ -#. `show ip arp <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_ethernet.html#clicmd_show_ip_arp>`_ -#. `show ip fib <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_fib.html#clicmd_show_ip_fib>`_ - -Topology -~~~~~~~~ - -.. figure:: /_images/Create_Interface_Topology.jpg - :alt: Figure: Create Interface Topology - - Figure: Create Interface Topology - -Initial State -~~~~~~~~~~~~~ - -The initial state here is presumed to be the final state from the -exercise `VPP Basics <VPP/Progressive_VPP_Tutorial#Exercise:_vpp_basics>`__ - -Create veth interfaces on host -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In Linux, there is a type of interface call 'veth'. Think of a 'veth' -interface as being an interface that has two ends to it (rather than -one). - -Create a veth interface with one end named **vpp1out** and the other -named **vpp1host** - -.. code-block:: console - - $ sudo ip link add name vpp1out type veth peer name vpp1host - -Turn up both ends: - -.. code-block:: console - - $ sudo ip link set dev vpp1out up - $ sudo ip link set dev vpp1host up - -Assign an IP address -~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: console - - $ sudo ip addr add 10.10.1.1/24 dev vpp1host - -Display the result: - -.. code-block:: console - - $ sudo ip addr show vpp1host - 5: vpp1host@vpp1out: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 - link/ether e2:0f:1e:59:ec:f7 brd ff:ff:ff:ff:ff:ff - inet 10.10.1.1/24 scope global vpp1host - valid_lft forever preferred_lft forever - inet6 fe80::e00f:1eff:fe59:ecf7/64 scope link - valid_lft forever preferred_lft forever - -Create vpp host-interface -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Create a host interface attached to **vpp1out**. - -.. code-block:: console - - vpp# create host-interface name vpp1out - host-vpp1out - -Confirm the interface: - -.. code-block:: console - - vpp# show hardware - Name Idx Link Hardware - host-vpp1out 1 up host-vpp1out - Ethernet address 02:fe:d9:75:d5:b4 - Linux PACKET socket interface - local0 0 down local0 - local - -Turn up the interface: - -.. code-block:: console - - vpp# set int state host-vpp1out up - -Confirm the interface is up: - -.. code-block:: console - - vpp# show int - Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count - host-vpp1out 1 up 9000/0/0/0 - local0 0 down 0/0/0/0 - -Assign ip address 10.10.1.2/24 - -.. code-block:: console - - vpp# set int ip address host-vpp1out 10.10.1.2/24 - -Confirm the ip address is assigned: - -.. code-block:: console - - vpp# show int addr - host-vpp1out (up): - L3 10.10.1.2/24 - local0 (dn): diff --git a/docs/guides/progressivevpp/removedpdkplugin.rst b/docs/guides/progressivevpp/removedpdkplugin.rst deleted file mode 100644 index b64e1f0d197..00000000000 --- a/docs/guides/progressivevpp/removedpdkplugin.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. _removedpdkplugin: - -.. toctree:: - -Removing the DPDK Plugin ------------------------- - -For the purposes of this tutorial, the dpdk plugin will be removed. -To do this edit the *startup.conf* file with the following, -your *startup.conf* file may already have this line commented, and may just need to -uncomment it: - -.. code-block:: console - - plugins - { - plugin dpdk_plugin.so { disable } - }
\ No newline at end of file diff --git a/docs/guides/progressivevpp/routing.rst b/docs/guides/progressivevpp/routing.rst deleted file mode 100644 index b5766c03865..00000000000 --- a/docs/guides/progressivevpp/routing.rst +++ /dev/null @@ -1,71 +0,0 @@ -.. _routing: - -.. toctree:: - -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 - -FD.io VPP command learned in this exercise -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. `ip route - add <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_ip.html#clicmd_ip_route>`__ - -Topology -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. figure:: /_images/Connecting_two_vpp_instances_with_memif.png - :alt: Connect two FD.io VPP topology - - Connect two FD.io VPP topology - -Initial State -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The initial state here is presumed to be the final state from the -exercise `Connecting two FD.io VPP -instances <VPP/Progressive_VPP_Tutorial#Connecting_two_vpp_instances>`__ - -Setup host route -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: console - - $ sudo ip route add 10.10.2.0/24 via 10.10.1.2 - $ ip route - default via 10.0.2.2 dev enp0s3 - 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 - 10.10.1.0/24 dev vpp1host proto kernel scope link src 10.10.1.1 - 10.10.2.0/24 via 10.10.1.2 dev vpp1host - -Setup return route on vpp2 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: console - - vpp# ip route add 10.10.1.0/24 via 10.10.2.1 - -Ping from host through vpp1 to vpp2 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. Setup a trace on vpp1 and vpp2 -#. Ping 10.10.2.2 from the host -#. Examine the trace on vpp1 and vpp2 -#. Clear the trace on vpp1 and vpp2 diff --git a/docs/guides/progressivevpp/settingupenvironment.rst b/docs/guides/progressivevpp/settingupenvironment.rst deleted file mode 100644 index a1ffc997b02..00000000000 --- a/docs/guides/progressivevpp/settingupenvironment.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. _settingupenvironment: - -.. toctree:: - -Setting up FD.io VPP environment with Vagrant ---------------------------------------------- - -Refer to :ref:`this guide<installingVboxVagrant>` for setting up a Virtual Box with Vagrant - -After setting up Vagrant, use these commands on your Vagrant directory to boot the VM: - -.. code-block:: console - - # vagrant up - -.. code-block:: console - - # vagrant ssh - -Afterwards, configure FD.io VPP on the Vagrant system following the steps on the :ref:`configutil` guide. - diff --git a/docs/guides/progressivevpp/sourceNAT.rst b/docs/guides/progressivevpp/sourceNAT.rst deleted file mode 100644 index f51a4ad9039..00000000000 --- a/docs/guides/progressivevpp/sourceNAT.rst +++ /dev/null @@ -1,159 +0,0 @@ -.. _sourceNAT: - -.. toctree:: - -Source NAT -========== - -Skills to be Learned -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. Abusing networks namespaces for fun and profit -#. Configuring snat address -#. Configuring snat inside and outside interfaces - -FD.io VPP command learned in this exercise -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. `snat add interface - address <https://docs.fd.io/vpp/17.04/clicmd_src_plugins_snat.html#clicmd_snat_add_interface_address>`__ -#. `set interface - snat <https://docs.fd.io/vpp/17.04/clicmd_src_plugins_snat.html#clicmd_set_interface_snat>`__ - -Topology -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. figure:: /_images/SNAT_Topology.jpg - :alt: SNAT Topology - - SNAT Topology - -Initial state -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Unlike previous exercises, for this one you want to start tabula rasa. - -Note: You will lose all your existing config in your FD.io VPP instances! - -To clear existing config from previous exercises run: - -.. code-block:: console - - ps -ef | grep vpp | awk '{print $2}'| xargs sudo kill - $ sudo ip link del dev vpp1host - $ sudo ip link del dev vpp1vpp2 - -Install vpp-plugins -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Snat is supported by a plugin, so vpp-plugins need to be installed - -.. code-block:: console - - $ sudo apt-get install vpp-plugins - -Create FD.io VPP instance -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Create one FD.io VPP instance named vpp1. - -Confirm snat plugin is present: - -.. code-block:: console - - vpp# show plugins - Plugin path is: /usr/lib/vpp_plugins - Plugins loaded: - 1.ioam_plugin.so - 2.ila_plugin.so - 3.acl_plugin.so - 4.flowperpkt_plugin.so - 5.snat_plugin.so - 6.libsixrd_plugin.so - 7.lb_plugin.so - -Create veth interfaces -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. Create a veth interface with one end named vpp1outside and the other - named vpp1outsidehost -#. Assign IP address 10.10.1.1/24 to vpp1outsidehost -#. Create a veth interface with one end named vpp1inside and the other - named vpp1insidehost -#. Assign IP address 10.10.2.1/24 to vpp1outsidehost - -Because we'd like to be able to route \*via\* our vpp instance to an -interface on the same host, we are going to put vpp1insidehost into a -network namespace - -Create a new network namespace 'inside' - -.. code-block:: console - - $ sudo ip netns add inside - -Move interface vpp1inside into the 'inside' namespace: - -.. code-block:: console - - $ sudo ip link set dev vpp1insidehost up netns inside - -Assign an ip address to vpp1insidehost - -.. code-block:: console - - $ sudo ip netns exec inside ip addr add 10.10.2.1/24 dev vpp1insidehost - -Create a route inside the netns: - -.. code-block:: console - - $ sudo ip netns exec inside ip route add 10.10.1.0/24 via 10.10.2.2 - -Configure vpp outside interface -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. Create a vpp host interface connected to vpp1outside -#. Assign ip address 10.10.1.2/24 -#. Create a vpp host interface connected to vpp1inside -#. Assign ip address 10.10.2.2/24 - -Configure snat -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Configure snat to use the address of host-vpp1outside - -.. code-block:: console - - vpp# snat add interface address host-vpp1outside - -Configure snat inside and outside interfaces - -.. code-block:: console - - vpp# set interface snat in host-vpp1inside out host-vpp1outside - -Prepare to Observe Snat -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Observing snat in this configuration is interesting. To do so, vagrant -ssh a second time into your VM and run: - -.. code-block:: console - - $ sudo tcpdump -s 0 -i vpp1outsidehost - -Also enable tracing on vpp1 - -Ping via snat -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: console - - $ sudo ip netns exec inside ping -c 1 10.10.1.1 - -Confirm snat -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Examine the tcpdump output and vpp1 trace to confirm snat occurred. - diff --git a/docs/guides/progressivevpp/switching.rst b/docs/guides/progressivevpp/switching.rst deleted file mode 100644 index aede969f42f..00000000000 --- a/docs/guides/progressivevpp/switching.rst +++ /dev/null @@ -1,188 +0,0 @@ -.. _switching: - -.. toctree:: - -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 - -FD.io VPP command learned in this exercise -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. `show - bridge <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_l2.html#clicmd_show_bridge-domain>`__ -#. `show bridge - detail <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_l2.html#clicmd_show_bridge-domain>`__ -#. `set int l2 - bridge <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_l2.html#clicmd_set_interface_l2_bridge>`__ -#. `show l2fib - verbose <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_l2.html#clicmd_show_l2fib>`__ - -Topology -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. figure:: /_images/Switching_Topology.jpg - :alt: Switching Topology - - Switching Topology - -Initial state -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Unlike previous exercises, for this one you want to start tabula rasa. - -Note: You will lose all your existing config in your FD.io VPP instances! - -To clear existing config from previous exercises run: - -.. code-block:: console - - $ ps -ef | grep vpp | awk '{print $2}'| xargs sudo kill - $ sudo ip link del dev vpp1host - $ sudo ip link del dev vpp1vpp2 - -Run FD.io VPP instances -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. Run a vpp instance named **vpp1** -#. Run a vpp instance named **vpp2** - -Connect vpp1 to host -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. Create a veth with one end named vpp1host and the other named - vpp1out. -#. Connect vpp1out to vpp1 -#. Add ip address 10.10.1.1/24 on vpp1host - -Connect vpp1 to vpp2 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. Create a veth with one end named vpp1vpp2 and the other named - vpp2vpp1. -#. Connect vpp1vpp2 to vpp1. -#. Connect vpp2vpp1 to vpp2. - -Configure Bridge Domain on vpp1 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Check to see what bridge domains already exist, and select the first -bridge domain number not in use: - -.. code-block:: console - - vpp# show bridge-domain - ID Index Learning U-Forwrd UU-Flood Flooding ARP-Term BVI-Intf - 0 0 off off off off off local0 - -In the example above, there is bridge domain ID '0' already. Even though -sometimes we might get feedback as below: - -.. code-block:: console - - no bridge-domains in use - -the bridge domain ID '0' still exists, where no operations are -supported. For instance, if we try to add host-vpp1out and host-vpp1vpp2 -to bridge domain ID 0, we will get nothing setup. - -.. code-block:: console - - vpp# set int l2 bridge host-vpp1out 0 - vpp# set int l2 bridge host-vpp1vpp2 0 - vpp# show bridge-domain 0 detail - show bridge-domain: No operations on the default bridge domain are supported - -So we will create bridge domain 1 instead of playing with the default -bridge domain ID 0. - -Add host-vpp1out to bridge domain ID 1 - -.. code-block:: console - - vpp# set int l2 bridge host-vpp1out 1 - -Add host-vpp1vpp2 to bridge domain ID1 - -.. code-block:: console - - vpp# set int l2 bridge host-vpp1vpp2 1 - -Examine bridge domain 1: - -.. code-block:: console - - vpp# show bridge-domain 1 detail - BD-ID Index BSN Age(min) Learning U-Forwrd UU-Flood Flooding ARP-Term BVI-Intf - 1 1 0 off on on on on off N/A - - Interface If-idx ISN SHG BVI TxFlood VLAN-Tag-Rewrite - host-vpp1out 1 1 0 - * none - host-vpp1vpp2 2 1 0 - * none - -Configure loopback interface on vpp2 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: console - - vpp# create loopback interface - loop0 - -Add the ip address 10.10.1.2/24 to vpp2 interface loop0. Set the state -of interface loop0 on vpp2 to 'up' - -Configure bridge domain on vpp2 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Check to see the first available bridge domain ID (it will be 1 in this -case) - -Add interface loop0 as a bridge virtual interface (bvi) to bridge domain -1 - -.. code-block:: console - - vpp# set int l2 bridge loop0 1 bvi - -Add interface vpp2vpp1 to bridge domain 1 - -.. code-block:: console - - vpp# set int l2 bridge host-vpp2vpp1 1 - -Examine the bridge domain and interfaces. - -Ping from host to vpp and vpp to host -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -#. Add trace on vpp1 and vpp2 -#. ping from host to 10.10.1.2 -#. Examine and clear trace on vpp1 and vpp2 -#. ping from vpp2 to 10.10.1.1 -#. Examine and clear trace on vpp1 and vpp2 - -Examine l2 fib -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: console - - vpp# show l2fib verbose - Mac Address BD Idx Interface Index static filter bvi Mac Age (min) - de:ad:00:00:00:00 1 host-vpp1vpp2 2 0 0 0 disabled - c2:f6:88:31:7b:8e 1 host-vpp1out 1 0 0 0 disabled - 2 l2fib entries - -.. code-block:: console - - vpp# show l2fib verbose - Mac Address BD Idx Interface Index static filter bvi Mac Age (min) - de:ad:00:00:00:00 1 loop0 2 1 0 1 disabled - c2:f6:88:31:7b:8e 1 host-vpp2vpp1 1 0 0 0 disabled - 2 l2fib entries diff --git a/docs/guides/progressivevpp/traces.rst b/docs/guides/progressivevpp/traces.rst deleted file mode 100644 index 076e2fa57b8..00000000000 --- a/docs/guides/progressivevpp/traces.rst +++ /dev/null @@ -1,499 +0,0 @@ -.. _traces: - -.. toctree:: - -Traces -====== - -Basic Trace Commands -~~~~~~~~~~~~~~~~~~~~ - -Show trace buffer [max COUNT]. - -.. code-block:: console - - vpp# show trace - - -Clear trace buffer and free memory. - -.. code-block:: console - - vpp# clear trace - -filter trace output - include NODE COUNT | exclude NODE COUNT | none. - -.. code-block:: console - - vpp# trace filter <include NODE COUNT | exclude NODE COUNT | none> - -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 - -Add Trace -~~~~~~~~~ - -.. code-block:: console - - vpp# trace add af-packet-input 10 - -Ping from Host to FD.io VPP -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: console - - vpp# q - $ ping -c 1 10.10.1.2 - PING 10.10.1.2 (10.10.1.2) 56(84) bytes of data. - 64 bytes from 10.10.1.2: icmp_seq=1 ttl=64 time=0.283 ms - - --- 10.10.1.2 ping statistics --- - 1 packets transmitted, 1 received, 0% packet loss, time 0ms - rtt min/avg/max/mdev = 0.283/0.283/0.283/0.000 ms - -Examine Trace of ping from host to FD.io VPP -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: console - - # vppctl - vpp# show trace - ------------------- Start of thread 0 vpp_main ------------------- - Packet 1 - - 00:17:04:099260: af-packet-input - af_packet: hw_if_index 1 next-index 4 - tpacket2_hdr: - status 0x20000001 len 98 snaplen 98 mac 66 net 80 - sec 0x5b60e370 nsec 0x3af2736f vlan 0 vlan_tpid 0 - 00:17:04:099269: ethernet-input - IP4: e2:0f:1e:59:ec:f7 -> 02:fe:d9:75:d5:b4 - 00:17:04:099285: ip4-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099290: ip4-lookup - fib 0 dpo-idx 5 flow hash: 0x00000000 - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099296: ip4-local - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099300: ip4-icmp-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099301: ip4-icmp-echo-request - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099303: ip4-load-balance - fib 0 dpo-idx 13 flow hash: 0x00000000 - ICMP: 10.10.1.2 -> 10.10.1.1 - tos 0x00, ttl 64, length 84, checksum 0x4437 - fragment id 0xe05b, flags DONT_FRAGMENT - ICMP echo_reply checksum 0xc843 - 00:17:04:099305: ip4-rewrite - tx_sw_if_index 1 dpo-idx 1 : ipv4 via 10.10.1.1 host-vpp1out: mtu:9000 e20f1e59ecf702fed975d5b40800 flow hash: 0x00000000 - 00000000: e20f1e59ecf702fed975d5b4080045000054e05b4000400144370a0a01020a0a - 00000020: 01010000c8437c92000170e3605b000000001c170f00000000001011 - 00:17:04:099307: host-vpp1out-output - host-vpp1out - IP4: 02:fe:d9:75:d5:b4 -> e2:0f:1e:59:ec:f7 - ICMP: 10.10.1.2 -> 10.10.1.1 - tos 0x00, ttl 64, length 84, checksum 0x4437 - fragment id 0xe05b, flags DONT_FRAGMENT - ICMP echo_reply checksum 0xc843 - -Clear trace buffer -~~~~~~~~~~~~~~~~~~ - -.. code-block:: console - - vpp# clear trace - -Ping from FD.io VPP to Host -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: console - - vpp# ping 10.10.1.1 - 64 bytes from 10.10.1.1: icmp_seq=1 ttl=64 time=.0789 ms - 64 bytes from 10.10.1.1: icmp_seq=2 ttl=64 time=.0619 ms - 64 bytes from 10.10.1.1: icmp_seq=3 ttl=64 time=.0519 ms - 64 bytes from 10.10.1.1: icmp_seq=4 ttl=64 time=.0514 ms - 64 bytes from 10.10.1.1: icmp_seq=5 ttl=64 time=.0526 ms - - Statistics: 5 sent, 5 received, 0% packet loss - -Examine Trace of ping from FD.io VPP to host -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The output will demonstrate FD.io VPP's trace of ping for all packets. - -.. code-block:: console - - vpp# show trace - ------------------- Start of thread 0 vpp_main ------------------- - Packet 1 - - 00:17:04:099260: af-packet-input - af_packet: hw_if_index 1 next-index 4 - tpacket2_hdr: - status 0x20000001 len 98 snaplen 98 mac 66 net 80 - sec 0x5b60e370 nsec 0x3af2736f vlan 0 vlan_tpid 0 - 00:17:04:099269: ethernet-input - IP4: e2:0f:1e:59:ec:f7 -> 02:fe:d9:75:d5:b4 - 00:17:04:099285: ip4-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099290: ip4-lookup - fib 0 dpo-idx 5 flow hash: 0x00000000 - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099296: ip4-local - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099300: ip4-icmp-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099301: ip4-icmp-echo-request - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f7c - fragment id 0xe516, flags DONT_FRAGMENT - ICMP echo_request checksum 0xc043 - 00:17:04:099303: ip4-load-balance - fib 0 dpo-idx 13 flow hash: 0x00000000 - ICMP: 10.10.1.2 -> 10.10.1.1 - tos 0x00, ttl 64, length 84, checksum 0x4437 - fragment id 0xe05b, flags DONT_FRAGMENT - ICMP echo_reply checksum 0xc843 - 00:17:04:099305: ip4-rewrite - tx_sw_if_index 1 dpo-idx 1 : ipv4 via 10.10.1.1 host-vpp1out: mtu:9000 e20f1e59ecf702fed975d5b40800 flow hash: 0x00000000 - 00000000: e20f1e59ecf702fed975d5b4080045000054e05b4000400144370a0a01020a0a - 00000020: 01010000c8437c92000170e3605b000000001c170f00000000001011 - 00:17:04:099307: host-vpp1out-output - host-vpp1out - IP4: 02:fe:d9:75:d5:b4 -> e2:0f:1e:59:ec:f7 - ICMP: 10.10.1.2 -> 10.10.1.1 - tos 0x00, ttl 64, length 84, checksum 0x4437 - fragment id 0xe05b, flags DONT_FRAGMENT - ICMP echo_reply checksum 0xc843 - - Packet 2 - - 00:17:09:113964: af-packet-input - af_packet: hw_if_index 1 next-index 4 - tpacket2_hdr: - status 0x20000001 len 42 snaplen 42 mac 66 net 80 - sec 0x5b60e375 nsec 0x3b3bd57d vlan 0 vlan_tpid 0 - 00:17:09:113974: ethernet-input - ARP: e2:0f:1e:59:ec:f7 -> 02:fe:d9:75:d5:b4 - 00:17:09:113986: arp-input - request, type ethernet/IP4, address size 6/4 - e2:0f:1e:59:ec:f7/10.10.1.1 -> 00:00:00:00:00:00/10.10.1.2 - 00:17:09:114003: host-vpp1out-output - host-vpp1out - ARP: 02:fe:d9:75:d5:b4 -> e2:0f:1e:59:ec:f7 - reply, type ethernet/IP4, address size 6/4 - 02:fe:d9:75:d5:b4/10.10.1.2 -> e2:0f:1e:59:ec:f7/10.10.1.1 - - Packet 3 - - 00:18:16:407079: af-packet-input - af_packet: hw_if_index 1 next-index 4 - tpacket2_hdr: - status 0x20000001 len 98 snaplen 98 mac 66 net 80 - sec 0x5b60e3b9 nsec 0x90b7566 vlan 0 vlan_tpid 0 - 00:18:16:407085: ethernet-input - IP4: e2:0f:1e:59:ec:f7 -> 02:fe:d9:75:d5:b4 - 00:18:16:407090: ip4-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3fe8 - fragment id 0x24ab - ICMP echo_reply checksum 0x37eb - 00:18:16:407094: ip4-lookup - fib 0 dpo-idx 5 flow hash: 0x00000000 - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3fe8 - fragment id 0x24ab - ICMP echo_reply checksum 0x37eb - 00:18:16:407097: ip4-local - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3fe8 - fragment id 0x24ab - ICMP echo_reply checksum 0x37eb - 00:18:16:407101: ip4-icmp-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3fe8 - fragment id 0x24ab - ICMP echo_reply checksum 0x37eb - 00:18:16:407104: ip4-icmp-echo-reply - ICMP echo id 7531 seq 1 - 00:18:16:407108: ip4-drop - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3fe8 - fragment id 0x24ab - ICMP echo_reply checksum 0x37eb - 00:18:16:407111: error-drop - ip4-icmp-input: unknown type - - Packet 4 - - 00:18:17:409084: af-packet-input - af_packet: hw_if_index 1 next-index 4 - tpacket2_hdr: - status 0x20000001 len 98 snaplen 98 mac 66 net 80 - sec 0x5b60e3ba nsec 0x90b539f vlan 0 vlan_tpid 0 - 00:18:17:409088: ethernet-input - IP4: e2:0f:1e:59:ec:f7 -> 02:fe:d9:75:d5:b4 - 00:18:17:409092: ip4-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f40 - fragment id 0x2553 - ICMP echo_reply checksum 0xcc6d - 00:18:17:409095: ip4-lookup - fib 0 dpo-idx 5 flow hash: 0x00000000 - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f40 - fragment id 0x2553 - ICMP echo_reply checksum 0xcc6d - 00:18:17:409097: ip4-local - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f40 - fragment id 0x2553 - ICMP echo_reply checksum 0xcc6d - 00:18:17:409099: ip4-icmp-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f40 - fragment id 0x2553 - ICMP echo_reply checksum 0xcc6d - 00:18:17:409101: ip4-icmp-echo-reply - ICMP echo id 7531 seq 2 - 00:18:17:409104: ip4-drop - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3f40 - fragment id 0x2553 - ICMP echo_reply checksum 0xcc6d - 00:18:17:409104: error-drop - ip4-icmp-input: unknown type - - Packet 5 - - 00:18:18:409082: af-packet-input - af_packet: hw_if_index 1 next-index 4 - tpacket2_hdr: - status 0x20000001 len 98 snaplen 98 mac 66 net 80 - sec 0x5b60e3bb nsec 0x8ecad24 vlan 0 vlan_tpid 0 - 00:18:18:409087: ethernet-input - IP4: e2:0f:1e:59:ec:f7 -> 02:fe:d9:75:d5:b4 - 00:18:18:409091: ip4-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e66 - fragment id 0x262d - ICMP echo_reply checksum 0x8e59 - 00:18:18:409093: ip4-lookup - fib 0 dpo-idx 5 flow hash: 0x00000000 - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e66 - fragment id 0x262d - ICMP echo_reply checksum 0x8e59 - 00:18:18:409096: ip4-local - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e66 - fragment id 0x262d - ICMP echo_reply checksum 0x8e59 - 00:18:18:409098: ip4-icmp-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e66 - fragment id 0x262d - ICMP echo_reply checksum 0x8e59 - 00:18:18:409099: ip4-icmp-echo-reply - ICMP echo id 7531 seq 3 - 00:18:18:409102: ip4-drop - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e66 - fragment id 0x262d - ICMP echo_reply checksum 0x8e59 - 00:18:18:409102: error-drop - ip4-icmp-input: unknown type - - Packet 6 - - 00:18:19:414750: af-packet-input - af_packet: hw_if_index 1 next-index 4 - tpacket2_hdr: - status 0x20000001 len 98 snaplen 98 mac 66 net 80 - sec 0x5b60e3bc nsec 0x92450f2 vlan 0 vlan_tpid 0 - 00:18:19:414754: ethernet-input - IP4: e2:0f:1e:59:ec:f7 -> 02:fe:d9:75:d5:b4 - 00:18:19:414757: ip4-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e52 - fragment id 0x2641 - ICMP echo_reply checksum 0x9888 - 00:18:19:414760: ip4-lookup - fib 0 dpo-idx 5 flow hash: 0x00000000 - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e52 - fragment id 0x2641 - ICMP echo_reply checksum 0x9888 - 00:18:19:414762: ip4-local - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e52 - fragment id 0x2641 - ICMP echo_reply checksum 0x9888 - 00:18:19:414764: ip4-icmp-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e52 - fragment id 0x2641 - ICMP echo_reply checksum 0x9888 - 00:18:19:414765: ip4-icmp-echo-reply - ICMP echo id 7531 seq 4 - 00:18:19:414768: ip4-drop - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e52 - fragment id 0x2641 - ICMP echo_reply checksum 0x9888 - 00:18:19:414769: error-drop - ip4-icmp-input: unknown type - - Packet 7 - - 00:18:20:418038: af-packet-input - af_packet: hw_if_index 1 next-index 4 - tpacket2_hdr: - status 0x20000001 len 98 snaplen 98 mac 66 net 80 - sec 0x5b60e3bd nsec 0x937bcc2 vlan 0 vlan_tpid 0 - 00:18:20:418042: ethernet-input - IP4: e2:0f:1e:59:ec:f7 -> 02:fe:d9:75:d5:b4 - 00:18:20:418045: ip4-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e47 - fragment id 0x264c - ICMP echo_reply checksum 0xc0e8 - 00:18:20:418048: ip4-lookup - fib 0 dpo-idx 5 flow hash: 0x00000000 - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e47 - fragment id 0x264c - ICMP echo_reply checksum 0xc0e8 - 00:18:20:418049: ip4-local - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e47 - fragment id 0x264c - ICMP echo_reply checksum 0xc0e8 - 00:18:20:418054: ip4-icmp-input - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e47 - fragment id 0x264c - ICMP echo_reply checksum 0xc0e8 - 00:18:20:418054: ip4-icmp-echo-reply - ICMP echo id 7531 seq 5 - 00:18:20:418057: ip4-drop - ICMP: 10.10.1.1 -> 10.10.1.2 - tos 0x00, ttl 64, length 84, checksum 0x3e47 - fragment id 0x264c - ICMP echo_reply checksum 0xc0e8 - 00:18:20:418058: error-drop - ip4-icmp-input: unknown type - - Packet 8 - - 00:18:21:419208: af-packet-input - af_packet: hw_if_index 1 next-index 4 - tpacket2_hdr: - status 0x20000001 len 42 snaplen 42 mac 66 net 80 - sec 0x5b60e3be nsec 0x92a9429 vlan 0 vlan_tpid 0 - 00:18:21:419876: ethernet-input - ARP: e2:0f:1e:59:ec:f7 -> 02:fe:d9:75:d5:b4 - 00:18:21:419881: arp-input - request, type ethernet/IP4, address size 6/4 - e2:0f:1e:59:ec:f7/10.10.1.1 -> 00:00:00:00:00:00/10.10.1.2 - 00:18:21:419896: host-vpp1out-output - host-vpp1out - ARP: 02:fe:d9:75:d5:b4 -> e2:0f:1e:59:ec:f7 - reply, type ethernet/IP4, address size 6/4 - 02:fe:d9:75:d5:b4/10.10.1.2 -> e2:0f:1e:59:ec:f7/10.10.1.1 - -After examining the trace, clear it again using vpp# clear trace. - -Examine arp tables -~~~~~~~~~~~~~~~~~~ - -.. code-block:: console - - vpp# show ip arp - Time IP4 Flags Ethernet Interface - 1101.5636 10.10.1.1 D e2:0f:1e:59:ec:f7 host-vpp1out - -Examine routing tables -~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: console - - vpp# show ip fib - ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] locks:[src:plugin-hi:2, src:adjacency:1, src:default-route:1, ] - 0.0.0.0/0 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:1 buckets:1 uRPF:0 to:[0:0]] - [0] [@0]: dpo-drop ip4 - 0.0.0.0/32 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:2 buckets:1 uRPF:1 to:[0:0]] - [0] [@0]: dpo-drop ip4 - 10.10.1.0/32 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:9 to:[0:0]] - [0] [@0]: dpo-drop ip4 - 10.10.1.1/32 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:13 buckets:1 uRPF:12 to:[5:420] via:[2:168]] - [0] [@5]: ipv4 via 10.10.1.1 host-vpp1out: mtu:9000 e20f1e59ecf702fed975d5b40800 - 10.10.1.0/24 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:8 to:[0:0]] - [0] [@4]: ipv4-glean: host-vpp1out: mtu:9000 ffffffffffff02fed975d5b40806 - 10.10.1.2/32 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:12 buckets:1 uRPF:13 to:[7:588]] - [0] [@2]: dpo-receive: 10.10.1.2 on host-vpp1out - 10.10.1.255/32 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:11 buckets:1 uRPF:11 to:[0:0]] - [0] [@0]: dpo-drop ip4 - 224.0.0.0/4 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:4 buckets:1 uRPF:3 to:[0:0]] - [0] [@0]: dpo-drop ip4 - 240.0.0.0/4 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:3 buckets:1 uRPF:2 to:[0:0]] - [0] [@0]: dpo-drop ip4 - 255.255.255.255/32 - unicast-ip4-chain - [@0]: dpo-load-balance: [proto:ip4 index:5 buckets:1 uRPF:4 to:[0:0]] - [0] [@0]: dpo-drop ip4 diff --git a/docs/guides/progressivevpp/twovppinstances.rst b/docs/guides/progressivevpp/twovppinstances.rst deleted file mode 100644 index 13447b5ea8b..00000000000 --- a/docs/guides/progressivevpp/twovppinstances.rst +++ /dev/null @@ -1,114 +0,0 @@ -.. _twovppinstances: - -.. toctree:: - -Connecting two FD.io VPP Instances ----------------------------------- - -.. _background-1: - -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-1: - -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 - -.. _topology-1: - -Topology -^^^^^^^^ - -.. figure:: /_images/Connecting_two_vpp_instances_with_memif.png - :alt: Connect two FD.io VPP topology - - Connect two FD.io VPP topology - -.. _initial-state-1: - -Initial state -^^^^^^^^^^^^^ - -The initial state here is presumed to be the final state from the -exercise `Create an -Interface <VPP/Progressive_VPP_Tutorial#Exercise:_Create_an_Interface>`__ - -.. _action-running-a-second-vpp-instances-1: - -Running a second FD.io VPP instances -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -You should already have a FD.io VPP instance running named: vpp1. - -Run a second FD.io VPP instance named: vpp2. - -.. _action-create-memif-interface-on-vpp1-1: - -Create memif interface on vpp1 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Create a memif interface on vpp1: - -.. code-block:: console - - vpp# create interface memif id 0 master - -This will create an interface on vpp1 memif0/0 using /run/vpp/memif as -its socket file. The role of vpp1 for this memif inteface is 'master'. - -Use your previously used skills to: - -#. Set the memif0/0 state to up. -#. Assign IP address 10.10.2.1/24 to memif0/0 -#. Examine memif0/0 via show commands - -.. _action-create-memif-interface-on-vpp2-1: - -Create memif interface on vpp2 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -We want vpp2 to pick up the 'slave' role using the same -run/vpp/memif-vpp1vpp2 socket file - -.. code-block:: console - - vpp# create interface memif id 0 slave - -This will create an interface on vpp2 memif0/0 using /run/vpp/memif as -its socket file. The role of vpp1 for this memif inteface is 'slave'. - -Use your previously used skills to: - -#. Set the memif0/0 state to up. -#. Assign IP address 10.10.2.2/24 to memif0/0 -#. Examine memif0/0 via show commands - -.. _action-ping-from-vpp1-to-vpp2-1: - -Ping from vpp1 to vpp2 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Ping 10.10.2.2 from vpp1 - -.. code-block:: console - - $ ping 10.10.2.2 - -Ping 10.10.2.1 from vpp2 - -.. code-block:: console - - $ ping 10.10.2.1
\ No newline at end of file |