Difference between revisions of "VPP/Installing VPP binaries from packages"

From fd.io
< VPP
Jump to: navigation, search
(Debs)
(Package Descriptions)
Line 17: Line 17:
 
** vnet -  network stack library
 
** vnet -  network stack library
 
* '''vpp-plugins''' - Description: Vector Packet Processing--plugin modules
 
* '''vpp-plugins''' - Description: Vector Packet Processing--plugin modules
** acl
+
$ sudo vppctl show plugins       
** dpdk
+
Plugin path is: /usr/lib/x86_64-linux-gnu/vpp_plugins:/usr/lib/vpp_plugins
** flowprobe
+
    Plugin                                  Version                          Description
** gtpu
+
  1. ioam_plugin.so                          19.04-rc2~14-gc0e614c~b34        Inbound OAM
** ixge
+
  2. memif_plugin.so                          19.04-rc2~14-gc0e614c~b34        Packet Memory Interface (experimental)
** kubeproxy
+
  3. perfmon_plugin.so                        19.04-rc2~14-gc0e614c~b34        Performance monitor plugin
** l2e
+
  4. crypto_ipsecmb_plugin.so                19.04-rc2~14-gc0e614c~b34        Intel IPSEC multi-buffer
** lb
+
  5. nsh_plugin.so                            19.04-rc2~14-gc0e614c~b34        Network Service Header
** memif
+
  6. avf_plugin.so                            19.04-rc2~14-gc0e614c~b34        Intel Adaptive Virtual Function (AVF) Device Plugin
** nat
+
  7. pppoe_plugin.so                          19.04-rc2~14-gc0e614c~b34        PPP over Ethernet
** pppoe
+
  8. abf_plugin.so                            19.04-rc2~14-gc0e614c~b34        ACL based Forwarding
** sixrd
+
  9. srv6am_plugin.so                        19.04-rc2~14-gc0e614c~b34        Masquerading SRv6 proxy
** stn
+
10. ila_plugin.so                            19.04-rc2~14-gc0e614c~b34        Identifier-locator addressing for IPv6
 +
11. l2e_plugin.so                            19.04-rc2~14-gc0e614c~b34        L2 Emulation
 +
12. tlsopenssl_plugin.so                    19.04-rc2~14-gc0e614c~b34        openssl based TLS Engine
 +
13. gtpu_plugin.so                          19.04-rc2~14-gc0e614c~b34        GTPv1-U
 +
14. map_plugin.so                            19.04-rc2~14-gc0e614c~b34        Mapping of address and port (MAP)
 +
15. dpdk_plugin.so                          19.04-rc2~14-gc0e614c~b34        Data Plane Development Kit (DPDK)
 +
16. stn_plugin.so                            19.04-rc2~14-gc0e614c~b34        VPP Steals the NIC for Container integration
 +
17. acl_plugin.so                            19.04-rc2~14-gc0e614c~b34        Access Control Lists
 +
18. crypto_openssl_plugin.so                19.04-rc2~14-gc0e614c~b34        OpenSSL Crypto Engine Plugin
 +
19. tlsmbedtls_plugin.so                    19.04-rc2~14-gc0e614c~b34        mbedtls based TLS Engine
 +
20. ikev2_plugin.so                          19.04-rc2~14-gc0e614c~b34        IKEv2
 +
21. ct6_plugin.so                            19.04-rc2~14-gc0e614c~b34        ipv6 connection tracker
 +
22. cdp_plugin.so                            19.04-rc2~14-gc0e614c~b34        Cisco Discovery Protocol
 +
23. lacp_plugin.so                          19.04-rc2~14-gc0e614c~b34        Link Aggregation Control Protocol
 +
24. flowprobe_plugin.so                      19.04-rc2~14-gc0e614c~b34        Flow per Packet
 +
25. svs_plugin.so                            19.04-rc2~14-gc0e614c~b34        Source VRF Select
 +
26. nsim_plugin.so                          19.04-rc2~14-gc0e614c~b34        network delay simulator plugin
 +
27. mactime_plugin.so                        19.04-rc2~14-gc0e614c~b34        Time-based MAC source-address filter
 +
28. lb_plugin.so                            19.04-rc2~14-gc0e614c~b34        Load Balancer
 +
29. quic_plugin.so                          19.04-rc2~14-gc0e614c~b34        Quic transport protocol
 +
30. crypto_ia32_plugin.so                    19.04-rc2~14-gc0e614c~b34        Intel AESNI Software Crypto Backend Plugin
 +
31. srv6as_plugin.so                        19.04-rc2~14-gc0e614c~b34        Static SRv6 proxy
 +
32. srv6ad_plugin.so                        19.04-rc2~14-gc0e614c~b34        Dynamic SRv6 proxy
 +
33. rdma_plugin.so                          19.04-rc2~14-gc0e614c~b34        RDMA (ibverb) Device Plugin
 +
34. vmxnet3_plugin.so                        19.04-rc2~14-gc0e614c~b34        VMWare Vmxnet3 Device Plugin
 +
35. gbp_plugin.so                            19.04-rc2~14-gc0e614c~b34        Group Based Policy
 +
36. igmp_plugin.so                          19.04-rc2~14-gc0e614c~b34        IGMP messaging
 +
37. nat_plugin.so                            19.04-rc2~14-gc0e614c~b34        Network Address Translation
 +
 
 
* '''vpp-dbg''' - Description: Vector Packet Processing--debug symbols
 
* '''vpp-dbg''' - Description: Vector Packet Processing--debug symbols
 
* '''vpp-dev''' - Description: Vector Packet Processing--development support. This package contains development support files for the VPP libraries
 
* '''vpp-dev''' - Description: Vector Packet Processing--development support. This package contains development support files for the VPP libraries

Revision as of 18:15, 23 April 2019

Intro

If you are simply using vpp, it can be convenient to simply install the packages. The instructions below will pull the latest freshest package build from the master branch (updated on every merge).

Package Descriptions

  • vpp - Description: Vector Packet Processing--executables. This package provides VPP executables: vpp, vpp_api_test, vpp_json_test
    • vpp - the vector packet engine
    • vpp_api_test - vector packet engine API test tool
    • vpp_json_test - vector packet engine JSON test tool
  • vpp-lib - Description: Vector Packet Processing--runtime libraries. This package contains the VPP shared libraries, including:
    • vppinfra - foundation library supporting vectors, hashes, bitmaps, pools, and string formatting.
    • svm - vm library
    • vlib - vector processing library
    • vlib-api - binary API library
    • vnet - network stack library
  • vpp-plugins - Description: Vector Packet Processing--plugin modules
$ sudo vppctl show plugins        
Plugin path is: /usr/lib/x86_64-linux-gnu/vpp_plugins:/usr/lib/vpp_plugins
    Plugin                                   Version                          Description
 1. ioam_plugin.so                           19.04-rc2~14-gc0e614c~b34        Inbound OAM
 2. memif_plugin.so                          19.04-rc2~14-gc0e614c~b34        Packet Memory Interface (experimental)
 3. perfmon_plugin.so                        19.04-rc2~14-gc0e614c~b34        Performance monitor plugin
 4. crypto_ipsecmb_plugin.so                 19.04-rc2~14-gc0e614c~b34        Intel IPSEC multi-buffer
 5. nsh_plugin.so                            19.04-rc2~14-gc0e614c~b34        Network Service Header
 6. avf_plugin.so                            19.04-rc2~14-gc0e614c~b34        Intel Adaptive Virtual Function (AVF) Device Plugin
 7. pppoe_plugin.so                          19.04-rc2~14-gc0e614c~b34        PPP over Ethernet
 8. abf_plugin.so                            19.04-rc2~14-gc0e614c~b34        ACL based Forwarding
 9. srv6am_plugin.so                         19.04-rc2~14-gc0e614c~b34        Masquerading SRv6 proxy
10. ila_plugin.so                            19.04-rc2~14-gc0e614c~b34        Identifier-locator addressing for IPv6
11. l2e_plugin.so                            19.04-rc2~14-gc0e614c~b34        L2 Emulation
12. tlsopenssl_plugin.so                     19.04-rc2~14-gc0e614c~b34        openssl based TLS Engine
13. gtpu_plugin.so                           19.04-rc2~14-gc0e614c~b34        GTPv1-U
14. map_plugin.so                            19.04-rc2~14-gc0e614c~b34        Mapping of address and port (MAP)
15. dpdk_plugin.so                           19.04-rc2~14-gc0e614c~b34        Data Plane Development Kit (DPDK)
16. stn_plugin.so                            19.04-rc2~14-gc0e614c~b34        VPP Steals the NIC for Container integration
17. acl_plugin.so                            19.04-rc2~14-gc0e614c~b34        Access Control Lists
18. crypto_openssl_plugin.so                 19.04-rc2~14-gc0e614c~b34        OpenSSL Crypto Engine Plugin
19. tlsmbedtls_plugin.so                     19.04-rc2~14-gc0e614c~b34        mbedtls based TLS Engine
20. ikev2_plugin.so                          19.04-rc2~14-gc0e614c~b34        IKEv2
21. ct6_plugin.so                            19.04-rc2~14-gc0e614c~b34        ipv6 connection tracker
22. cdp_plugin.so                            19.04-rc2~14-gc0e614c~b34        Cisco Discovery Protocol
23. lacp_plugin.so                           19.04-rc2~14-gc0e614c~b34        Link Aggregation Control Protocol
24. flowprobe_plugin.so                      19.04-rc2~14-gc0e614c~b34        Flow per Packet
25. svs_plugin.so                            19.04-rc2~14-gc0e614c~b34        Source VRF Select
26. nsim_plugin.so                           19.04-rc2~14-gc0e614c~b34        network delay simulator plugin
27. mactime_plugin.so                        19.04-rc2~14-gc0e614c~b34        Time-based MAC source-address filter
28. lb_plugin.so                             19.04-rc2~14-gc0e614c~b34        Load Balancer
29. quic_plugin.so                           19.04-rc2~14-gc0e614c~b34        Quic transport protocol
30. crypto_ia32_plugin.so                    19.04-rc2~14-gc0e614c~b34        Intel AESNI Software Crypto Backend Plugin
31. srv6as_plugin.so                         19.04-rc2~14-gc0e614c~b34        Static SRv6 proxy
32. srv6ad_plugin.so                         19.04-rc2~14-gc0e614c~b34        Dynamic SRv6 proxy
33. rdma_plugin.so                           19.04-rc2~14-gc0e614c~b34        RDMA (ibverb) Device Plugin
34. vmxnet3_plugin.so                        19.04-rc2~14-gc0e614c~b34        VMWare Vmxnet3 Device Plugin
35. gbp_plugin.so                            19.04-rc2~14-gc0e614c~b34        Group Based Policy
36. igmp_plugin.so                           19.04-rc2~14-gc0e614c~b34        IGMP messaging
37. nat_plugin.so                            19.04-rc2~14-gc0e614c~b34        Network Address Translation
  • vpp-dbg - Description: Vector Packet Processing--debug symbols
  • vpp-dev - Description: Vector Packet Processing--development support. This package contains development support files for the VPP libraries
  • vpp-api-java - Description: JAVA binding for the VPP Binary API.
  • vpp-api-python - Description: Python binding for the VPP Binary API.
  • vpp-api-lua - Description: Lua binding for the VPP Binary API.

Ubuntu/Debian/Centos

Packages are published for both the amd64 (Intel) and aarch64 (ARM) architectures. The packages are stored in the same repository so no special action is required to select your architecture.

Add fd.io repo

VPP release packages are available at: https://packagecloud.io/fdio/release

Note to VPP Committers: Pre-release packages are staged for final verification at: https://packagecloud.io/fdio/staging

If you follow that link you should see a screen presenting buttons to click to get instructions for installing Debian/Rpm packages. Click on the appropriate link for instructions, and those should work for Ubuntu 16.04, 18.04, or Centos7. What to expect when following the link to https://packagecloud.io/fdio/release is in the image below: Packagecloud repo install

If you wish to install the merge-by-merge packages for the vpp master branch or the vpp stable/YYMM branches, the instructions are the same but use instead:

Install Packages

Debs

Once you have installed the repo:

sudo apt-get update
sudo apt-get install vpp
  • Optional Debs
sudo apt-get install vpp-plugins vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua
  • Install all VPP packages
sudo apt-get install vpp*

Note: vpp-plugins contains the dpdk-plugin needed to use dpdk drivers for hardware interfaces.

  • Uninstalling Debs
sudo apt-get remove --purge vpp*
sudo apt autoremove

RPMs

Note: Circa 19.04-rc0 some dependencies were introduced for Centos7 packages are required to install VPP:

--> Finished Dependency Resolution
Error: Package: vpp-plugins-19.04-rc1~b4.x86_64 (fdio_1904)
           Requires: libmbedtls.so.10()(64bit)
Error: Package: vpp-devel-19.04-rc1~b4.x86_64 (fdio_1904)
           Requires: /usr/bin/python3
Error: Package: vpp-19.04-rc1~b4.x86_64 (fdio_1904)
           Requires: /usr/bin/python3
Error: Package: vpp-plugins-19.04-rc1~b4.x86_64 (fdio_1904)
           Requires: libmbedx509.so.0()(64bit)
Error: Package: vpp-plugins-19.04-rc1~b4.x86_64 (fdio_1904)
           Requires: libmbedcrypto.so.2()(64bit)

Installing the following packages on Centos7 resolves these dependency issues:

sudo yum install epel-release mbedtls python36

Once you have installed the repo:

sudo yum install vpp
  • Optional RPMs
sudo yum install vpp-plugins vpp-devel vpp-api-python vpp-api-lua vpp-api-java
  • Install all vpp packages
sudo yum install vpp*

Note: vpp-plugins contains the dpdk-plugin needed to use dpdk drivers for hardware interfaces.

  • Start VPP
sudo systemctl restart vpp

Uninstalling VPP RPMs

sudo yum autoremove vpp*

openSUSE

Blog-post: https://www.suse.com/communities/blog/vector-packet-processing-vpp-opensuse/

Install from official repositories

openSUSE Tumbleweed (rolling release)

sudo zypper install vpp vpp-plugins

openSUSE Leap 42.3

sudo zypper addrepo --name network https://download.opensuse.org/repositories/network/openSUSE_Leap_42.3/network.repo
sudo zypper install vpp vpp-plugins

Install from FD.io repositories

If the version of VPP you require has not yet made it in to the official repository you can elect to use the FD.io release repository.

openSUSE Leap 42.3

This repository is available since VPP 18.04.

sudo zypper addrepo --type rpm-md --name "FD.io release" https://nexus.fd.io/content/repositories/fd.io.osleap423/ fdio-leap423
sudo zypper install vpp vpp-plugins

openSUSE Leap 15

This repository is available since VPP 18.10.

If you are interested in cutting-edge master branch then:

sudo curl -s https://packagecloud.io/install/repositories/fdio/master/script.rpm.sh | sudo bash
sudo zypper install vpp vpp-plugins

If instead you are looking for a stable release, the latest and greatest available is 18.10

sudo curl -s https://packagecloud.io/install/repositories/fdio/1810/script.rpm.sh | sudo bash
sudo zypper install vpp vpp-plugins

Uninstall

openSUSE Tumbleweed (rolling release)

sudo zypper remove -u vpp vpp-plugins

openSUSE Leap 42.3

sudo zypper remove -u vpp vpp-plugins

Optionally also remove the repository:

sudo zypper removerepo network

or

sudo zypper removerepo fdio-leap423

Arch Linux

Available in the Arch User Repository (AUR): https://aur.archlinux.org/packages/vpp/

(Currently the bin packages do not work).


Getting jvpp jar

Directly downloading jvpp.jar

vpp provides java bindings which can be downloaded

Getting jvpp via maven

Add the following to the repositories section in your ~/.m2/settings.xml to pick up the fd.io maven repo:

<repository>
  <id>fd.io-release</id>
  <name>fd.io-release</name>
  <url>https://nexus.fd.io/content/repositories/fd.io.release/</url>
  <releases>
    <enabled>false</enabled>
  </releases>
  <snapshots>
    <enabled>true</enabled>
  </snapshots>
</repository>

More information on setting up maven repositories in settings.xml.

Then you can get jvpp by putting in the dependencies section of your pom.xml file:

<dependency>
  <groupId>io.fd.vpp</groupId>
  <artifactId>jvpp-core</artifactId>
  <version>18.04</version>
</dependency>

More information on maven dependency managment

Old Nexus Apt/Yum repo instructions

If you wish to access the old Nexus Apt/Yum repo instructions there are available here.