.. _vppinazure:

.. toctree::

VPP in Azure
___________________




Before starting, a few notes:

* in our configuration we use only DPDK 18.02, since with the newer versions, such as DPDK 18.05, we obtained several problems during VPP installation (mostly related with MLX4 PMD Drivers). 

* Some of the commands are taken from `Azure’s DPDK page <https://docs.microsoft.com/en-us/azure/virtual-network/setup-dpdk>`_.

To bring DPDK inside Azure, we perform the following procedure:

Firstly, we install the DPDK dependencies:

.. code-block:: console

 $ sudo add-apt-repository ppa:canonical-server/dpdk-azure –y
 $ sudo apt-get update
 $ sudo apt-get install -y librdmacm-dev librdmacm1 build-essential libnuma-dev libmnl-dev

Then, we download DPDK 18.02:

.. code-block:: console

 $ sudo wget https://fast.dpdk.org/rel/dpdk-18.02.2.tar.xz
 $ tar -xvf dpdk-18.02.2.tar.xz

Finally, we build DPDK, modifying first its configuration files in order to make VPP compatible with MLX4 drivers:

Inside config/common_base, modify:

.. code-block:: console

  CONFIG_RTE_BUILD_SHARED_LIB=n
  CONFIG_RTE_LIBRTE_MLX4_PMD=y
  CONFIG_RTE_LIBRTE_MLX4_DLOPEN_DEPS=y
  CONFIG_RTE_LIBRTE_TAP_PMD=y
  CONFIG_RTE_LIBRTE_FAILSAFE_PMD=y

and then:

.. code-block:: console

 $ make config T=x86_64-native-linuxapp-gcc
 $ sed -ri 's,(MLX._PMD=)n,\1y,' build/.config
 $ make

Finally we build DPDK:

.. code-block:: console

 $ make install T=x86_64-native-linuxapp-gcc DESTDIR=/home/ciscotest/test EXTRA_CFLAGS='-fPIC -pie'

And we reboot the instance:

.. code-block:: console

 $ reboot instance

After the reboot, we type these commands:

.. code-block:: console

 $ echo 1024 | sudo tee /sys/devices/system/node/node*/hugepages/hugepages-2048kB/nr_hugepages
 $ mkdir /mnt/huge
 $ sudo mount -t hugetlbfs nodev /mnt/huge
 $ grep Huge /proc/meminfo
 $ modprobe -a ib_uverbs
 $ cd x86_64-native-linuxapp-gcc/
 $ ls
 $ cd lib/
 $ ls
 $ sudo cp librte_pmd_mlx4_glue.so.18.02.0 /usr/lib

**Now we focus on VPP installation:**

In our configuration we use VPP 18.07.

We perform this procedure in order to install VPP 18.07 with an external DPDK configuration inside Azure.

Firstly, we download VPP

.. code-block:: console

 $ git clone https://gerrit.fd.io/r/vpp
 $ git checkout v18.07

Then, we build VPP, using the external DPDK configuration we previously made:

We modify the path inside the vpp.mk file:

.. code-block:: console

 $ build-data/platforms/vpp.mk
 $ vpp_uses_external_dpdk = yes
 $ vpp_dpdk_inc_dir = <PATH_TO_DESTDIR_NAME_FROM_ABOVE>/include/dpdk/
 $ vpp_dpdk_lib_dir =<PATH_TO_DESTDIR_NAME_FROM_ABOVE>/lib

<PATH_TO_DESTDIR_NAME_FROM_ABOVE> is whatever the path used when compiling DPDK above. These paths have to be absolute path in order for it to work.

we modify build-data/platforms/vpp.mk to use

.. code-block:: console

 vpp_uses_dpdk_mlx4_pmd = yes

.. code-block:: console

 $ make build
 $ cd build-root/
 $ make V=0 PLATFORM=vpp TAG=vpp install-deb
 $ sudo dpkg -i *.deb

Finally, we modify the startup.conf file:

.. code-block:: console

 $ cd /etc/vpp
 $ sudo nano startup.conf

Inside the DPDK block, the following commands:

.. code-block:: console


 ## Whitelist specific interface by specifying PCI address
 dev 000X:00:0X.0
 dev 000X:00:0X.0
 
 # Running failsafe
 vdev net_vdev_netvsc0,iface=eth1
 vdev net_vdev_netvsc1,iface=eth2

*Please refer to Azure DPDK document to pick the right iface to use for failsafe vdev.*


and finally:

.. code-block:: console

 $ sudo service vpp stop
 $ sudo service vpp start
 $ sudo service vpp status
 $ sudo vppctl

Now VPP will work inside Azure!








