Difference between revisions of "VPP/Installing VPP binaries from packages"
(→Add fd.io repo) |
(Remove obsolete instructions) |
||
(26 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- | + | * '''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-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 == |
− | + | 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 === | ||
− | + | 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: | |
− | + | [[File:Packagecloud repo install.png|500px|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: | |
− | + | ||
− | + | * 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. | ||
− | + | === 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 | * Start VPP | ||
Line 210: | Line 163: | ||
sudo yum autoremove vpp* | sudo yum autoremove vpp* | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 13:57, 16 February 2021
Contents
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:
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:
- 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.
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*