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

From fd.io
< VPP
Jump to: navigation, search
(Add fd.io repo)
(Remove obsolete instructions)
 
(25 intermediate revisions by 5 users not shown)
Line 16: Line 16:
 
** vlib-api - binary API library
 
** vlib-api - binary API library
 
** vnet -  network stack library
 
** vnet -  network stack library
* '''vpp-plugins''' - Description: Vector Packet Processing--plugin modules
+
* '''vpp-plugin-core & vpp-plugin-dpdk''' - 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
+
** gtpu
+
    Plugin                                  Version                          Description
** ixge
+
  1. ioam_plugin.so                          19.08-rc0~170-g3e9b7a219        Inbound Operations, Administration, and Maintenance (OAM)
** kubeproxy
+
  2. memif_plugin.so                          19.08-rc0~170-g3e9b7a219        Packet Memory Interface (memif) -- Experimental
** l2e
+
  3. perfmon_plugin.so                        19.08-rc0~170-g3e9b7a219        Performance Monitor
** lb
+
  4. crypto_ipsecmb_plugin.so                19.08-rc0~170-g3e9b7a219        Intel IPSEC Multi-buffer Crypto Engine
** memif
+
  5. nsh_plugin.so                            19.08-rc0~170-g3e9b7a219        Network Service Header (NSH)
** nat
+
  6. avf_plugin.so                            19.08-rc0~170-g3e9b7a219        Intel Adaptive Virtual Function (AVF) Device Driver
** pppoe
+
  7. pppoe_plugin.so                          19.08-rc0~170-g3e9b7a219        PPP over Ethernet (PPPoE)
** sixrd
+
  8. abf_plugin.so                            19.08-rc0~170-g3e9b7a219        Access Control List (ACL) Based Forwarding
** stn
+
  9. srv6am_plugin.so                        19.08-rc0~170-g3e9b7a219        Masquerading Segment Routing for IPv6 (SRv6) Proxy
 +
10. ila_plugin.so                            19.08-rc0~170-g3e9b7a219        Identifier Locator Addressing (ILA) for IPv6
 +
11. l2e_plugin.so                            19.08-rc0~170-g3e9b7a219        Layer 2 (L2) Emulation
 +
12. tlsopenssl_plugin.so                    19.08-rc0~170-g3e9b7a219        Transport Layer Security (TLS) Engine, OpenSSL Based
 +
13. gtpu_plugin.so                          19.08-rc0~170-g3e9b7a219        GPRS Tunnelling Protocol, User Data (GTPv1-U)
 +
14. map_plugin.so                            19.08-rc0~170-g3e9b7a219        Mapping of Address and Port (MAP)
 +
15. dpdk_plugin.so                          19.08-rc0~170-g3e9b7a219        Data Plane Development Kit (DPDK)
 +
16. stn_plugin.so                            19.08-rc0~170-g3e9b7a219        VPP Steals the NIC (STN) for Container Integration
 +
17. http_static_plugin.so                    19.08-rc0~170-g3e9b7a219        HTTP Static Server
 +
18. acl_plugin.so                            19.08-rc0~170-g3e9b7a219        Access Control Lists (ACL)
 +
19. crypto_openssl_plugin.so                19.08-rc0~170-g3e9b7a219        OpenSSL Crypto Engine
 +
20. tlsmbedtls_plugin.so                    19.08-rc0~170-g3e9b7a219        Transport Layer Security (TLS) Engine, Mbedtls Based
 +
21. ikev2_plugin.so                          19.08-rc0~170-g3e9b7a219        Internet Key Exchange (IKEv2) Protocol
 +
22. ct6_plugin.so                            19.08-rc0~170-g3e9b7a219        IPv6 Connection Tracker
 +
23. cdp_plugin.so                            19.08-rc0~170-g3e9b7a219        Cisco Discovery Protocol (CDP)
 +
24. lacp_plugin.so                          19.08-rc0~170-g3e9b7a219        Link Aggregation Control Protocol (LACP)
 +
25. flowprobe_plugin.so                      19.08-rc0~170-g3e9b7a219        Flow per Packet
 +
26. svs_plugin.so                            19.08-rc0~170-g3e9b7a219        Source Virtual Routing and Fowarding (VRF) Select
 +
27. nsim_plugin.so                          19.08-rc0~170-g3e9b7a219        Network Delay Simulator
 +
28. mactime_plugin.so                        19.08-rc0~170-g3e9b7a219        Time-based MAC Source Address Filter
 +
29. lb_plugin.so                            19.08-rc0~170-g3e9b7a219        Load Balancer (LB)
 +
30. quic_plugin.so                          19.08-rc0~170-g3e9b7a219        Quic transport protocol
 +
31. crypto_ia32_plugin.so                    19.08-rc0~170-g3e9b7a219        Intel IA32 Software Crypto Engine
 +
32. srv6as_plugin.so                        19.08-rc0~170-g3e9b7a219        Static Segment Routing for IPv6 (SRv6) Proxy
 +
33. srv6ad_plugin.so                        19.08-rc0~170-g3e9b7a219        Dynamic Segment Routing for IPv6 (SRv6) Proxy
 +
34. rdma_plugin.so                          19.08-rc0~170-g3e9b7a219        RDMA IBverbs Device Driver
 +
35. vmxnet3_plugin.so                        19.08-rc0~170-g3e9b7a219        VMWare Vmxnet3 Device Driver
 +
36. gbp_plugin.so                            19.08-rc0~170-g3e9b7a219        Group Based Policy (GBP)
 +
37. igmp_plugin.so                          19.08-rc0~170-g3e9b7a219        Internet Group Management Protocol (IGMP)
 +
38. nat_plugin.so                            19.08-rc0~170-g3e9b7a219        Network Address Translation (NAT)
 +
 
 
* '''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
Line 36: Line 66:
 
* '''vpp-api-lua''' - Description: Lua binding for the VPP Binary API.
 
* '''vpp-api-lua''' - Description: Lua binding for the VPP Binary API.
  
== Ubuntu/Debian ==
+
== Ubuntu/Debian/Centos ==
  
Beginning with the VPP 18.04 release, 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.
+
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 ===
 
=== Add fd.io repo ===
  
1. Pick Ubuntu version:
+
VPP release packages are available at: https://packagecloud.io/fdio/release
* Ubuntu 16.04 - Xenial
+
  export UBUNTU="xenial"
+
  
2. Pick VPP version:
+
Note to VPP Release Managers:
* Latest VPP Release
+
Pre-release packages are staged for final verification at: https://packagecloud.io/fdio/staging
  unset -v RELEASE
+
* Latest VPP 18.07 Throttle Branch
+
  export RELEASE=".stable.1807"
+
* Latest VPP 18.04 Throttle Branch
+
  export RELEASE=".stable.1804"
+
* Latest VPP 18.01 Throttle Branch
+
  export RELEASE=".stable.1801"
+
* MASTER (in development)
+
  export RELEASE=".master"
+
  
3. Then run:
+
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
  sudo rm /etc/apt/sources.list.d/99fd.io.list
+
for Ubuntu 16.04, 18.04, or Centos7What to expect when following the link to https://packagecloud.io/fdio/release is in the image below:
   echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list
+
[[File:Packagecloud repo install.png|500px|Packagecloud repo install]]
  sudo apt-get update
+
  sudo apt-get install vpp vpp-lib
+
  
* Optional packages:
+
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:
  sudo apt-get install vpp-plugins vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua
+
  
=== Uninstalling VPP Packages ===
+
* https://packagecloud.io/fdio/master - for the master branch
 +
* https://packagecloud.io/fdio/1904 - for the stable/1904 branch.
 +
* https://packagecloud.io/fdio/1901 - for the stable/1901 branch.
  
  sudo apt-get remove --purge vpp*
+
=== Install Packages ===
  
== Centos ==
+
==== Debs ====  
  
=== Add fd.io repo ===
+
Once you have installed the repo:
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
+
sudo apt-get update
 +
sudo apt-get install vpp
  
==== CentOS 7.3 - VPP Release RPMs (Latest) ====
+
* Optional Debs
<div class="mw-collapsible-content">
+
  
Create a file /etc/yum.repos.d/fdio-release.repo with contents:
+
sudo apt-get install vpp vpp-plugin-core vpp-plugin-dpdk vpp-dbg vpp-dev vpp-ext-deps vpp-api-python vpp-api-java
 +
Note to Release Managers:
 +
As of 19.04, vpp-api-java is produced by the JVPP project which has a delayed release cycle. Do not include vpp-api-java when verifying release packages.
  
<pre>
+
Prior to 19.04,
[fdio-release]
+
name=fd.io release branch latest merge
+
baseurl=https://nexus.fd.io/content/repositories/fd.io.centos7/
+
enabled=1
+
gpgcheck=0
+
</pre>
+
</div>
+
</div>
+
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
+
sudo apt-get install vpp vpp-plugins vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua
  
==== CentOS 7.3 - VPP stable/1807 branch RPMs ====
+
Note:
<div class="mw-collapsible-content">
+
Prior to 19.04, vpp-plugins contained the dpdk-plugin needed to use dpdk drivers for hardware interfaces. Starting with 19.04, the dpdk drivers are contained in vpp-plugin-dpdk
  
Create a file /etc/yum.repos.d/fdio-stable-1807.repo with contents:
+
* Installing a specific package version
  
<pre>
+
export VPP_VER=19.01.2-release
[fdio-stable-1807]
+
sudo apt-get install vpp=$VPP_VER vpp-lib=$VPP_VER
name=fd.io stable/1807 branch latest merge
+
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1804.centos7/
+
enabled=1
+
gpgcheck=0
+
</pre>
+
</div>
+
</div>
+
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
+
* Uninstalling Debs
  
==== CentOS 7.3 - VPP stable/1804 branch RPMs ====
+
sudo apt-get remove --purge vpp*
<div class="mw-collapsible-content">
+
sudo apt autoremove
  
Create a file /etc/yum.repos.d/fdio-stable-1804.repo with contents:
+
==== RPMs ====
 +
Note:
 +
Circa 19.04-rc0 some dependencies were introduced for Centos7 packages are required to install VPP:
  
<pre>
+
--> Finished Dependency Resolution
[fdio-stable-1804]
+
Error: Package: vpp-plugins-19.04-rc1~b4.x86_64 (fdio_1904)
name=fd.io stable/1804 branch latest merge
+
            Requires: libmbedtls.so.10()(64bit)
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1804.centos7/
+
Error: Package: vpp-devel-19.04-rc1~b4.x86_64 (fdio_1904)
enabled=1
+
            Requires: /usr/bin/python3
gpgcheck=0
+
Error: Package: vpp-19.04-rc1~b4.x86_64 (fdio_1904)
</pre>
+
            Requires: /usr/bin/python3
</div>
+
Error: Package: vpp-plugins-19.04-rc1~b4.x86_64 (fdio_1904)
</div>
+
            Requires: libmbedx509.so.0()(64bit)
 +
Error: Package: vpp-plugins-19.04-rc1~b4.x86_64 (fdio_1904)
 +
            Requires: libmbedcrypto.so.2()(64bit)
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
+
Installing the following packages on Centos7 resolves these dependency issues:
  
 +
sudo yum install epel-release mbedtls python36
  
==== CentOS 7.3 - VPP stable/1801 branch RPMs ====
+
Once you have installed the repo:
<div class="mw-collapsible-content">
+
  
Create a file /etc/yum.repos.d/fdio-stable-1801.repo with contents:
+
sudo yum install vpp
  
<pre>
+
* Optional RPMs
[fdio-stable-1801]
+
name=fd.io stable/1801 branch latest merge
+
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1801.centos7/
+
enabled=1
+
gpgcheck=0
+
</pre>
+
</div>
+
</div>
+
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
+
sudo yum install vpp vpp-plugins vpp-devel vpp-debuginfo vpp-ext-deps vpp-api-python vpp-api-lua vpp-api-java
  
==== CentOS 7.3 - VPP stable/1710 branch RPMs ====
+
Note:
<div class="mw-collapsible-content">
+
vpp-plugins contains the dpdk-plugin needed to use dpdk drivers for hardware interfaces.
  
Create a file /etc/yum.repos.d/fdio-stable-1710.repo with contents:
+
Note to VPP Release Managers:
 +
As of 19.04, vpp-api-java is produced by the JVPP project which has a delayed release cycle. Do not include vpp-api-java when verifying VPP release packages.
  
<pre>
+
* List all vpp packages
[fdio-stable-1710]
+
  yum list vpp*
name=fd.io stable/1710 branch latest merge
+
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1710.centos7/
+
enabled=1
+
gpgcheck=0
+
</pre>
+
</div>
+
</div>
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
+
 
+
==== CentOS 7.3 - VPP stable/1707 branch RPMs ====
+
<div class="mw-collapsible-content">
+
 
+
Create a file /etc/yum.repos.d/fdio-stable-1707.repo with contents:
+
 
+
<pre>
+
[fdio-stable-1707]
+
name=fd.io stable/1707 branch latest merge
+
baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1707.centos7/
+
enabled=1
+
gpgcheck=0
+
</pre>
+
</div>
+
</div>
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
+
 
+
==== CentOS 7.3 - VPP master branch RPMs (in development) ====
+
<div class="mw-collapsible-content">
+
 
+
Create a file /etc/yum.repos.d/fdio-master.repo with contents:
+
 
+
<pre>
+
[fdio-master]
+
name=fd.io master branch latest merge
+
baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/
+
enabled=1
+
gpgcheck=0
+
</pre>
+
</div>
+
</div>
+
 
+
=== Install VPP RPMs ===
+
 
+
  sudo yum install vpp
+
 
+
* Optional RPMs
+
 
+
sudo yum install vpp-plugins vpp-devel vpp-api-python vpp-api-lua vpp-api-java
+
  
 
* Start VPP
 
* Start VPP
Line 210: Line 163:
  
 
  sudo yum autoremove vpp*
 
  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) ====
 
<pre>
 
sudo zypper install vpp vpp-plugins
 
</pre>
 
 
==== openSUSE Leap 42.3 ====
 
<pre>
 
sudo zypper addrepo --name network https://download.opensuse.org/repositories/network/openSUSE_Leap_42.3/network.repo
 
sudo zypper install vpp vpp-plugins
 
</pre>
 
 
=== 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.
 
 
<pre>
 
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
 
</pre>
 
 
=== Uninstall ===
 
==== openSUSE Tumbleweed (rolling release) ====
 
<pre>
 
sudo zypper remove -u vpp vpp-plugins
 
</pre>
 
 
==== openSUSE Leap 42.3 ====
 
<pre>
 
sudo zypper remove -u vpp vpp-plugins
 
</pre>
 
 
Optionally also remove the repository:
 
<pre>
 
sudo zypper removerepo network
 
</pre>
 
or
 
<pre>
 
sudo zypper removerepo fdio-leap423
 
</pre>
 
 
= Getting jvpp jar =
 
 
== Directly downloading jvpp.jar ==
 
vpp provides java bindings which can be [https://nexus.fd.io/content/repositories/fd.io.release/io/fd/vpp/jvpp-core/18.01/jvpp-core-18.01.jar 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>
 
 
[https://maven.apache.org/guides/mini/guide-multiple-repositories.html 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>
 
 
[https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html More information on maven dependency managment]
 

Latest revision as of 13:57, 16 February 2021

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-plugin-core & vpp-plugin-dpdk - 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.08-rc0~170-g3e9b7a219         Inbound Operations, Administration, and Maintenance (OAM)
 2. memif_plugin.so                          19.08-rc0~170-g3e9b7a219         Packet Memory Interface (memif) -- Experimental
 3. perfmon_plugin.so                        19.08-rc0~170-g3e9b7a219         Performance Monitor
 4. crypto_ipsecmb_plugin.so                 19.08-rc0~170-g3e9b7a219         Intel IPSEC Multi-buffer Crypto Engine
 5. nsh_plugin.so                            19.08-rc0~170-g3e9b7a219         Network Service Header (NSH)
 6. avf_plugin.so                            19.08-rc0~170-g3e9b7a219         Intel Adaptive Virtual Function (AVF) Device Driver
 7. pppoe_plugin.so                          19.08-rc0~170-g3e9b7a219         PPP over Ethernet (PPPoE)
 8. abf_plugin.so                            19.08-rc0~170-g3e9b7a219         Access Control List (ACL) Based Forwarding
 9. srv6am_plugin.so                         19.08-rc0~170-g3e9b7a219         Masquerading Segment Routing for IPv6 (SRv6) Proxy
10. ila_plugin.so                            19.08-rc0~170-g3e9b7a219         Identifier Locator Addressing (ILA) for IPv6
11. l2e_plugin.so                            19.08-rc0~170-g3e9b7a219         Layer 2 (L2) Emulation
12. tlsopenssl_plugin.so                     19.08-rc0~170-g3e9b7a219         Transport Layer Security (TLS) Engine, OpenSSL Based
13. gtpu_plugin.so                           19.08-rc0~170-g3e9b7a219         GPRS Tunnelling Protocol, User Data (GTPv1-U)
14. map_plugin.so                            19.08-rc0~170-g3e9b7a219         Mapping of Address and Port (MAP)
15. dpdk_plugin.so                           19.08-rc0~170-g3e9b7a219         Data Plane Development Kit (DPDK)
16. stn_plugin.so                            19.08-rc0~170-g3e9b7a219         VPP Steals the NIC (STN) for Container Integration
17. http_static_plugin.so                    19.08-rc0~170-g3e9b7a219         HTTP Static Server
18. acl_plugin.so                            19.08-rc0~170-g3e9b7a219         Access Control Lists (ACL)
19. crypto_openssl_plugin.so                 19.08-rc0~170-g3e9b7a219         OpenSSL Crypto Engine
20. tlsmbedtls_plugin.so                     19.08-rc0~170-g3e9b7a219         Transport Layer Security (TLS) Engine, Mbedtls Based
21. ikev2_plugin.so                          19.08-rc0~170-g3e9b7a219         Internet Key Exchange (IKEv2) Protocol
22. ct6_plugin.so                            19.08-rc0~170-g3e9b7a219         IPv6 Connection Tracker
23. cdp_plugin.so                            19.08-rc0~170-g3e9b7a219         Cisco Discovery Protocol (CDP)
24. lacp_plugin.so                           19.08-rc0~170-g3e9b7a219         Link Aggregation Control Protocol (LACP)
25. flowprobe_plugin.so                      19.08-rc0~170-g3e9b7a219         Flow per Packet
26. svs_plugin.so                            19.08-rc0~170-g3e9b7a219         Source Virtual Routing and Fowarding (VRF) Select
27. nsim_plugin.so                           19.08-rc0~170-g3e9b7a219         Network Delay Simulator
28. mactime_plugin.so                        19.08-rc0~170-g3e9b7a219         Time-based MAC Source Address Filter
29. lb_plugin.so                             19.08-rc0~170-g3e9b7a219         Load Balancer (LB)
30. quic_plugin.so                           19.08-rc0~170-g3e9b7a219         Quic transport protocol
31. crypto_ia32_plugin.so                    19.08-rc0~170-g3e9b7a219         Intel IA32 Software Crypto Engine
32. srv6as_plugin.so                         19.08-rc0~170-g3e9b7a219         Static Segment Routing for IPv6 (SRv6) Proxy
33. srv6ad_plugin.so                         19.08-rc0~170-g3e9b7a219         Dynamic Segment Routing for IPv6 (SRv6) Proxy
34. rdma_plugin.so                           19.08-rc0~170-g3e9b7a219         RDMA IBverbs Device Driver
35. vmxnet3_plugin.so                        19.08-rc0~170-g3e9b7a219         VMWare Vmxnet3 Device Driver
36. gbp_plugin.so                            19.08-rc0~170-g3e9b7a219         Group Based Policy (GBP)
37. igmp_plugin.so                           19.08-rc0~170-g3e9b7a219         Internet Group Management Protocol (IGMP)
38. nat_plugin.so                            19.08-rc0~170-g3e9b7a219         Network Address Translation (NAT)
  • 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 Release Managers: 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 vpp-plugin-core vpp-plugin-dpdk vpp-dbg vpp-dev vpp-ext-deps vpp-api-python vpp-api-java

Note to Release Managers: As of 19.04, vpp-api-java is produced by the JVPP project which has a delayed release cycle. Do not include vpp-api-java when verifying release packages.

Prior to 19.04,

sudo apt-get install vpp vpp-plugins vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua

Note: Prior to 19.04, vpp-plugins contained the dpdk-plugin needed to use dpdk drivers for hardware interfaces. Starting with 19.04, the dpdk drivers are contained in vpp-plugin-dpdk

  • Installing a specific package version
export VPP_VER=19.01.2-release
sudo apt-get install vpp=$VPP_VER vpp-lib=$VPP_VER
  • 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 vpp-plugins vpp-devel vpp-debuginfo vpp-ext-deps vpp-api-python vpp-api-lua vpp-api-java

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

Note to VPP Release Managers: As of 19.04, vpp-api-java is produced by the JVPP project which has a delayed release cycle. Do not include vpp-api-java when verifying VPP release packages.

  • List all vpp packages
yum list vpp*
  • Start VPP
sudo systemctl restart vpp

Uninstalling VPP RPMs

sudo yum autoremove vpp*