Difference between revisions of "VPP"

From fd.io
Jump to: navigation, search
m (Get Involved)
(Get Involved)
 
(211 intermediate revisions by 31 users not shown)
Line 3: Line 3:
 
|shortname=vpp
 
|shortname=vpp
 
|jiraName=VPP
 
|jiraName=VPP
|projectLead=Dave Barach
+
|projectLead=Damjan Marion
 
|committers=
 
|committers=
 
* Dave Barach
 
* Dave Barach
 +
* Florin Coras
 +
* Benoit Ganne
 +
* Mohammed Hawari
 +
* John Lo
 +
* Chris Luke
 
* Damjan Marion
 
* Damjan Marion
 +
* Neale Ranns
 +
* Matthew Smith
 +
* Ole Trøan
 +
* Paul Vinciguerra
 
* Dave Wallace
 
* Dave Wallace
* John Lo
 
* Ole Troan
 
* Bud Grise
 
 
* Ed Warnicke
 
* Ed Warnicke
* Stefan Kobza
+
* Andrew Yourtchenko
* Chris Luke
+
* Fan Zhang
* Florin Coras
+
* Keith Burns
+
 
}}
 
}}
 +
 +
==Summary==
 +
 +
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform
 +
 +
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.
 +
 +
[[VPP/Features| Feature Summary]] - A list of features included in VPP
  
 
== Get Involved ==
 
== Get Involved ==
  
* [[VPP/Meeting|Weekly VPP Meeting]]
+
* [[VPP/Meeting|VPP Meeting]]
* [https://lists.fd.io/mailman3/lists/vpp-dev.lists.fd.io/ Join the VPP Mailing List]
+
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]
 
* [[IRC | Join fdio-vpp IRC channel]]
 
* [[IRC | Join fdio-vpp IRC channel]]
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | Current Release Plan (16.09)]]
+
* [[Projects/vpp/Release_Plans/Release_Plan_24.06| 24.06 Release Plan]]
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | Next Release Plan (17.01)]]
+
 
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]
 
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]
* [[VPP/Working with the 16.06 Throttle Branch|Working with the 16.06 Throttle Branch]]
+
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]
* [[VPP/Getting_VPP_16.06| Getting the Current Release (16.06)]]
+
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]
* [[VPP/Documentation | How to document vpp code]]
+
 
* [[VPP/CodeStyleConventions | Coding Style]]
 
* [[VPP/CodeStyleConventions | Coding Style]]
 +
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results]
 +
* Gerrit Code Review, see [https://gerrit.fd.io/r/q/project:vpp+is:open Open VPP Gerrit Changes] or [https://github.com/vpp-dev/vpp-gerrit-report Daily VPP Gerrit Report sorted by status]
  
==Start Here==
+
==VPP Documentation==
  
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform
+
VPP is the core technology behind the FD.io Project. The best place to learn how VPP fits in to the larger FD.io project is the [https://fd.io FD.io Main Site].
  
[[VPP/Features| Feature Summary]] - A list of features included in VPP
+
The [https://fd.io/docs/vpp/master VPP User Documents] is the most complete and up to date description of VPP. To get started as a user of VPP look at the '''Getting Started''' section. For developer guidance, look at the '''Developer Documentation''' section. To contribute to the user documents look at the '''Contributing''' section.
 +
 
 +
More VPP related documents:
 +
 
 +
* CSIT Test Reports: [https://fd.io/documentation/csit by VPP version]
 +
 
 +
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]
  
[https://docs.fd.io/vpp/16.12/ Documentation: master]
+
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]
  
[https://docs.fd.io/vpp/16.09/ Documentation: 1609].
+
==Getting started with VPP development==
  
 
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP
 
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP
  
[[VPP/Pulling,_Building,_Running,_Hacking_and_Pushing_VPP_Code| Pulling, Building, Hacking, and Pushing VPP Code]] - Explains how to get up and going with the vpp code base. NOTE: supercedes [[VPP/Setting_Up_Your_Dev_Environment|Setting Up Your Dev Environment]]
+
[[VPP/Pulling,_Building,_Running,_Hacking_and_Pushing_VPP_Code| Pulling, Building, Hacking, and Pushing VPP Code]] - Explains how to get up and going with the vpp code base.
  
 
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package
 
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package
  
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds
+
[[VPP/BuildArtifactRetentionPolicy|VPP CI Build Artifact Retention Policy]] - Retention policy for VPP build artifacts uploaded to [https://packagecloud.io/fdio Packagecloud.io/fdio] by CI jobs
  
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information
+
[https://fd.io/docs/vpp/master/contributing/reportingissues/index.html Reporting Bugs] - Explains how to report a bug, specifically: how to gather the required information
  
VPP Troubleshooting - Various tips/tricks for commonly seen issues
+
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools.
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]
+
* [[VPP/Troubleshooting/BuildIssues | Build issues]]
+
  
 
==Dive Deeper==
 
==Dive Deeper==
 +
 +
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API
 +
 +
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation
  
 
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.
 
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.
Line 73: Line 93:
 
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.
 
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.
  
==The VPP API==
+
==Reference Material==
  
[[VPP/API_Concepts|API Concepts]]
+
[[VPP/Software Architecture | VPP Software Architecture]]
  
[[VPP/How to Create a VPP binary control-plane API| How to Create A Binary Control-plane API]]
+
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP debug Command-line Interface (CLI) User Guide]
  
[[VPP/How To Use The API Trace Tools|How To Use The API Trace Tools]]  
+
[[VPP/Command-line Arguments | VPP debug CLI arguments and startup configuration]]
  
[[VPP/Python API|Python Language Binding]]
+
[[VPP/Documentation | Writing VPP Documentation]]
  
[[VPP/Java API|Java Language Binding]]
+
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]
  
[https://gerrit.fd.io/r/gitweb?p=honeycomb.git;a=blob;f=v3po/api/src/main/yang/v3po.yang;h=5553cf6612d88589542f078324cdb87acede069a;hb=HEAD YANG model]
+
[[VPP/Missing Prefetches | How to spot missing prefetches]]
  
==Reference Material==
+
[[VPP/Feature Arcs | Feature Arc infrastructure]]
  
[[VPP/Command-line Interface (CLI) Guide|VPP Command-line Interface (CLI) User Guide]]
+
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]
  
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]
+
[[VPP/Per-feature Notes|Per-feature Notes]]
  
[[VPP/Documentation | Writing VPP Documentation]]
+
[[VPP/HostStack | VPP Host Stack]]
  
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]
+
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]
  
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]
+
[[VPP/MakeTestFramework | Make Test Framework]]
  
 
==Tutorials==
 
==Tutorials==
  
[[VPP/How To Use The Packet Generator and Packet Tracer|How To Use The Packet Generator and Packet Tracer]]  
+
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)
  
[[VPP/How To Build The Sample Plugin|How To Build The Sample Plugin]]  
+
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).
  
[[VPP/How To Optimize Performance (System Tuning)|How To Optimize Performance (System Tuning)]]
+
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).
  
[[VPP/How To Connect A PCI Interface To VPP| How To Connect A PCI Interface To VPP]]
+
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).
  
[[Honeycomb/VPPJAPI_workflow | Working with Honeycomb - Workflow]]
+
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]
  
[[VPP/Code Walkthrough VoD Topic Index| Code Walkthrough VoD Topic Index and Notes]]
+
==Use Cases==
  
[https://www.youtube.com/watch?v=D4_PBAaVmco Code Walkthrough VoD: Chapter 1 | VPP initialization]
+
[[VPP/Configure VPP As A Router Between Namespaces|Use VPP as a Router Between Namespaces]] - An example configuration of the VPP platform as a router.
  
[https://www.youtube.com/watch?v=IW7_oe1_IJk Code Walkthrough VoD: Chapter 2 | Performance and Measurements]
+
[[VPP/Configure_VPP_TAP_Interfaces_For_Container_Routing|Use VPP with dynamic TAP interfaces as a Router Between Containers]] - Another example of inter-namespace/inter-container routing, using TAP interfaces.
  
[https://www.youtube.com/watch?v=PrTjicYKJS8 Code Walkthrough VoD: Chapter 3 | VPP Bring-up and a simple ping test]
+
[[VPP/Use VPP to connect VMs Using Vhost-User Interface|Use VPP to Connect VMs Using Vhost-User Interface]] - An example of connecting two virtual machines using VPP L2 Bridge and vhost-user interfaces.
  
[https://www.youtube.com/watch?v=6vDnlt58LV8 Code Walkthrough VoD: Chapter 4 | VPP API]
+
[[VPP/Use VPP to Chain VMs Using Vhost-User Interface|Use VPP to Chain VMs Using Vhost-User Interface]] - An example of chaining two virtual machines and connecting to physical interface.
  
[https://www.youtube.com/watch?v=mxg25FUkgII Code Walkthrough VoD: Chapter 5 | Build and Deploy a Plugin]
+
[[VPP/Configure an LW46 (MAP-E) Terminator|Use VPP as an LW46 (MAP-E) Terminator]] - An example configuration of the VPP platform as an lw46 (MAP-E) terminator.
  
[https://www.youtube.com/watch?v=4oxYNv0gOeY Code Walkthrough VoD: Chapter 6 | Deep Dive into a sample plugin]
+
[[VPP/Segment_Routing_for_IPv6|Use VPP for IPv6 Segment Routing]] - An example of how to leverage SRv6 to create an overlay VPN with underlay optimization.
  
[https://www.youtube.com/watch?v=V5XGUUgCtEg Code Walkthrough VoD: Chapter 7 | VPP Binary API]
+
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support..
  
[https://www.youtube.com/watch?v=llkCp7RVvUk Code Walkthrough VoD: Chapter 8 | Detour to explain more of VPP API test program]
+
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast..
  
[https://www.youtube.com/watch?v=WAbjgvygWMw Code Walkthrough VoD: Chapter 9 | Q & A]
+
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER..  
  
[https://www.youtube.com/watch?v=0jBo1CyPefg Code Walkthrough VoD: Chapter 10 | Thread support in VPP]
+
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support..
  
[https://www.youtube.com/watch?v=SqtUMjeAzlI Code Walkthrough VoD: Chapter 11 | Misc Discussions]
+
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging
  
[https://www.youtube.com/watch?v=7V3WVtWdXzE Code Walkthrough VoD: Chapter 12 | DPDK + VPP interaction]
+
[[VPP/Using_mTCP_user_mode_TCP_stack_with_VPP|Use user mode TCP stack with VPP]] - An example to use user mode TCP stack with VPP using netmap virtual interfaces
  
[https://www.youtube.com/watch?v=UZOMGLLctOw Code Walkthrough VoD: Chapter 13 | Discussion on rte_mbuf structure]
+
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway
  
[https://www.youtube.com/watch?v=bzjhtCp6y1Y Code Walkthrough VoD: Chapter 14 | How DPDK is patched and compiled in VPP]
+
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch
  
[https://www.youtube.com/watch?v=W7RyOhPc53c Code Walkthrough VoD: Chapter 15 | Q & A]
+
[[VPP/EC2 instance with SRIOV|VPP on EC2 instance with SR-IOV support]] - An example of how to use VPP on EC2 instance with SR-IOV support
  
[https://www.youtube.com/watch?v=BKCJsu63soQ Code Walkthrough VoD: Chapter 16 | Thank You]
+
[https://wiki.fd.io/view/How_to_deploy_VPP_in_EC2_instance_and_use_it_to_connect_two_different_VPCs How to deploy VPP in an EC2 instance and use it to connect two different VPCs with SR functionalities] - How to deploy VPP in an EC2 instance and how use it as router to connect two different VPCs with SR functionalities
  
[https://www.youtube.com/watch?v=NcNSHYJvNJ0 Video Tutorial: AARCH64_THUNDERX]
+
== VPP Committer Tasks ==
  
[https://www.youtube.com/watch?v=T66BTHnENY8 Video Tutorial: VPP-based vSwitch Performance]
+
=== Release Milestones ===
  
[https://www.youtube.com/watch?v=BlFM5diWRLM Video Tutorial: vppfib walkthrough]
+
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]
  
[https://www.youtube.com/watch?v=Z_8FOddNC6c Video Tutorial: vpp elog walkthrough]
+
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]
  
[https://www.youtube.com/watch?v=TEkanShnsTs Video Tutorial: vppinfra walkthrough]
+
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]
  
[https://www.youtube.com/watch?v=Oe3FTGVEcgQ Video Tutorial: vpp workflow walkthrough]
+
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]
  
[https://www.youtube.com/watch?v=_gpjwQHOGwE&list=PLWHpG2-3ZXXteDBrVaDhaT9w-58Uu33sK Video Playlist: Training/Hackfest 2016-04-07]
+
*[[VPP/CommitterTasks/CutRelease| Formal Release]]
  
[https://www.youtube.com/playlist?list=PLWHpG2-3ZXXuFm0r_TmpxzUV-Rr8L7Uc-  Video Playlist: Training 2016-06-01]
+
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]
  
==Use Cases==
+
=== Miscellaneous ===
  
[[VPP/Configure VPP As A Router Between Namespaces|Use VPP as a Router Between Namespaces]] - An example configuration of the VPP platform as a router.
+
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]
  
[[VPP/Configure_VPP_TAP_Interfaces_For_Container_Routing|Use VPP with dynamic TAP interfaces as a Router Between Containers]] - Another example of inter-namespace/inter-container routing, using TAP interfaces.
+
== Projects ==
 +
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project
  
[[VPP/Configure an LW46 (MAP-E) Terminator|Use VPP as an LW46 (MAP-E) Terminator]] - An example configuration of the VPP platform as an lw46 (MAP-E) terminator.
+
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy
  
[[VPP/Configure IPv6 Segment Routing|Use VPP for IPv6 Segment Routing]] - An example configuration of the VPP platform for IPv6 segment routing.
+
[[VPP/IPFIX]] - IP Flow Information Export
  
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging
+
[[VPP/AArch64]] - VPP on ARM64
  
[[VPP/Using_mTCP_user_mode_TCP_stack_with_VPP|Use user mode TCP stack with VPP]] - An example to use user mode TCP stack with VPP using netmap virtual interfaces
+
[[VPP/DHCPv6]] - DHCPv6
  
== VPP Committer Tasks ==
+
[[VPP/VOM]] - VPP Object Model
 +
 
 +
== Starter Tasks ==
  
[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]
+
If you are looking for tasks to pick up as 'Starter Tasks' to start contributing, we keep a [https://jira.fd.io/issues/?filter=11008 list of those in Jira].
  
[https://docs.google.com/document/d/1PKFUx1cRzEETOPO65PTrkXZf90ixiTpf3K9pkn2mPf8/edit?usp=sharing Steps for cutting Master to XXYY-rc0]
+
== Previous Release Plans ==
 +
* [[Projects/vpp/Release_Plans_Archive | Archived Release Plans]]
  
[[VPP/CommitterTasks/CutRelease| Cutting a Release]]
+
== List of all subpages (used or unused) ==
  
[https://docs.google.com/spreadsheets/d/1hyiGLNEZwM1EW496foW7_SoNWtQQs1a2JFGybUZ97U4/edit?usp=sharing VPP 16.09-RC0 cut punchlist]
+
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}

Latest revision as of 12:41, 24 April 2024

VPP Facts

Project Lead: Damjan Marion
Committers:

  • Dave Barach
  • Florin Coras
  • Benoit Ganne
  • Mohammed Hawari
  • John Lo
  • Chris Luke
  • Damjan Marion
  • Neale Ranns
  • Matthew Smith
  • Ole Trøan
  • Paul Vinciguerra
  • Dave Wallace
  • Ed Warnicke
  • Andrew Yourtchenko
  • Fan Zhang

Repository: git clone https://gerrit.fd.io/r/vpp
Mailing List: vpp-dev@lists.fd.io
Jenkins: jenkins silo
Gerrit Patches: code patches/reviews
Bugs: VPP bugs

Summary

What is VPP? - An introduction to the open-source Vector Packet Processing (VPP) platform

VPP - Working Environments - Environments/distributions, etc... that VPP builds/run on.

Feature Summary - A list of features included in VPP

Get Involved

VPP Documentation

VPP is the core technology behind the FD.io Project. The best place to learn how VPP fits in to the larger FD.io project is the FD.io Main Site.

The VPP User Documents is the most complete and up to date description of VPP. To get started as a user of VPP look at the Getting Started section. For developer guidance, look at the Developer Documentation section. To contribute to the user documents look at the Contributing section.

More VPP related documents:

Getting started with VPP development

Installing VPP binaries from packages - using APT/YUM to install VPP

Pulling, Building, Hacking, and Pushing VPP Code - Explains how to get up and going with the vpp code base.

Building and Installing A VPP Package - Explains how to build, install and test a VPP package

VPP CI Build Artifact Retention Policy - Retention policy for VPP build artifacts uploaded to Packagecloud.io/fdio by CI jobs

Reporting Bugs - Explains how to report a bug, specifically: how to gather the required information

Python Version Policy - Explains the selection and support of Python in use for many of the development tools.

Dive Deeper

The VPP API - design and implementation of the VPP API

API Change Process - Change your production-grade APIs in a compatible way without inhibiting innovation

Build System Deep Dive - A close look at the components of the build system.

Introduction To IP Adjacency - An explanation of the characteristics of IP adjacency and its uses.

Introduction To N-tuple Classifiers - An explanation of classifiers and how to create classifier tables and sessions.

Modifying The Packet Processing Directed Graph - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.

Using VPP In A Multi-thread Model - An explanation of multi-thread modes, configurations, and setup.

Using VPP as a VXLAN Tunnel Terminator - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.

Adding a VPP tunnel encapsulation - How to add a tunnel encapsulation type to vpp.

Using VPP IPSec and IKEv2 - An explanation of IPSec and IKEv2 configuration.

Reference Material

VPP Software Architecture

VPP debug Command-line Interface (CLI) User Guide

VPP debug CLI arguments and startup configuration

Writing VPP Documentation

Performance Analysis Tools

How to spot missing prefetches

Feature Arc infrastructure

DPOs and Feature Arcs

Per-feature Notes

VPP Host Stack

Bounded-index extensible hash infrastructure

Make Test Framework

Tutorials

Deep dive code walkthrough VoDs (recorded at 2016 FD.io pre-launch Event)

VPP video tutorials (collection of short video tutorials).

VPP Howtos (collection of step-by-step howto guides).

VPP training events (videos of VPP training events).

Progressive Tutorial in Using VPP

Use Cases

Use VPP as a Router Between Namespaces - An example configuration of the VPP platform as a router.

Use VPP with dynamic TAP interfaces as a Router Between Containers - Another example of inter-namespace/inter-container routing, using TAP interfaces.

Use VPP to Connect VMs Using Vhost-User Interface - An example of connecting two virtual machines using VPP L2 Bridge and vhost-user interfaces.

Use VPP to Chain VMs Using Vhost-User Interface - An example of chaining two virtual machines and connecting to physical interface.

Use VPP as an LW46 (MAP-E) Terminator - An example configuration of the VPP platform as an lw46 (MAP-E) terminator.

Use VPP for IPv6 Segment Routing - An example of how to leverage SRv6 to create an overlay VPN with underlay optimization.

Use VPP MPLS - Examples for programming VPP for MPLS P/PE support..

Use VPP IP Multicast - Examples for programming VPP for IP Multicast..

Use VPP BIER - Examples for programming VPP for BIER..

Use VPP for Policy Based Routing - Examples for programming VPP for PBR support..

Interconnecting vRouters with VPP - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging

Use user mode TCP stack with VPP - An example to use user mode TCP stack with VPP using netmap virtual interfaces

Use VPP as a Home Gateway - Configure VPP as a classic ipv4 NAT home gateway

Setup Bi-directional Forwarding Detection - An example on how to setup BFD between VPP and a Cisco Nexus switch

VPP on EC2 instance with SR-IOV support - An example of how to use VPP on EC2 instance with SR-IOV support

How to deploy VPP in an EC2 instance and use it to connect two different VPCs with SR functionalities - How to deploy VPP in an EC2 instance and how use it as router to connect two different VPCs with SR functionalities

VPP Committer Tasks

Release Milestones

Miscellaneous

Projects

NAT plugin - VPP CGN, NAT44, stateful NAT64 project

Security Groups - ACLs, Security Groups, Group Based Policy

VPP/IPFIX - IP Flow Information Export

VPP/AArch64 - VPP on ARM64

VPP/DHCPv6 - DHCPv6

VPP/VOM - VPP Object Model

Starter Tasks

If you are looking for tasks to pick up as 'Starter Tasks' to start contributing, we keep a list of those in Jira.

Previous Release Plans

List of all subpages (used or unused)

VPPVPP-16.09 Test Report Performance DataVPP/2022 Make Test Use Case Poll
VPP/AArch64VPP/ABFVPP/API Concepts
VPP/API VersioningVPP/Alternative buildsVPP/ApiChangeProcess
VPP/ArtifactVersioningVPP/BIERVPP/Bihash
VPP/BugReportsVPP/Build, install, and test imagesVPP/BuildArtifactRetentionPolicy
VPP/Build System Deep DiveVPP/CodeStyleConventionsVPP/Code Walkthrough VoD
VPP/Code Walkthrough VoD Topic IndexVPP/Code Walkthrough VoDsVPP/CodingTips
VPP/Command-line ArgumentsVPP/Command-line Interface (CLI) GuideVPP/CommitMessages
VPP/CommitterTasks/ApiFreezeVPP/CommitterTasks/Compare API ChangesVPP/CommitterTasks/CutPointRelease
VPP/CommitterTasks/CutReleaseVPP/CommitterTasks/FinalReleaseCandidateVPP/CommitterTasks/PullThrottleBranch
VPP/CommitterTasks/ReleasePlanVPP/Committers/SMEsVPP/Configuration Tool
VPP/Configure VPP As A Router Between NamespacesVPP/Configure VPP TAP Interfaces For Container RoutingVPP/Configure an LW46 (MAP-E) Terminator
VPP/CoreFileMismatchVPP/CurrentDataVPP/DHCPKit
VPP/DHCPv6VPP/DPOs and Feature ArcsVPP/Documentation
VPP/EC2 instance with SRIOVVPP/FAQVPP/FIB
VPP/Feature ArcsVPP/FeaturesVPP/Features/IPv6
VPP/Getting VPP 16.06VPP/Getting VPP Release BinariesVPP/HostStack
VPP/HostStack/BuiltinEchoClientServerVPP/HostStack/EchoClientServerVPP/HostStack/ExternalEchoClientServer
VPP/HostStack/LDP/iperfVPP/HostStack/LDP/nginxVPP/HostStack/LDP/sshd
VPP/HostStack/SessionLayerArchitectureVPP/HostStack/TLSVPP/HostStack/TestHttpServer
VPP/HostStack/TestProxyVPP/HostStack/VCLVPP/HostStack/VclEchoClientServer
VPP/HostStack/hs-testVPP/HostStack/nginxVPP/Hotplug
VPP/How To Build The Sample PluginVPP/How To Connect A PCI Interface To VPPVPP/How To Optimize Performance (System Tuning)
VPP/How To Use The API Trace ToolsVPP/How To Use The C APIVPP/How To Use The Packet Generator and Packet Tracer
VPP/How to Create a VPP binary control-plane APIVPP/How to add a tunnel encapsulationVPP/Howtos
VPP/IPFIXVPP/IPSecVPP/IPSec and IKEv2
VPP/IP adjacency introductionVPP/IPv6 SR VIRL topology fileVPP/Installing VPP binaries from packages
VPP/Interconnecting vRouters with VPPVPP/Introduction To IP AdjacencyVPP/Introduction To N-tuple Classifiers
VPP/Java APIVPP/Java API/Plugin supportVPP/MFIB
VPP/MPLS FIBVPP/MacswappluginVPP/MakeTestFramework
VPP/MeetingVPP/Missing PrefetchesVPP/Modifying The Packet Processing Directed Graph
VPP/NATVPP/OVNVPP/Per-feature Notes
VPP/Performance Analysis ToolsVPP/Progressive VPP TutorialVPP/Pulling, Building, Running, Hacking and Pushing VPP Code
VPP/Pure L3 Between Namespaces with /32sVPP/Pure L3 Container NetworkingVPP/Pushing and Testing a Tag
VPP/PythonVersionPolicyVPP/Python APIVPP/QuickTrexSetup
VPP/RMVPP/Random Hints and Kinks for KVM usageVPP/STN Testing
VPP/SecurityGroupsVPP/Segment Routing for IPv6VPP/Segment Routing for MPLS
VPP/Setting Up Your Dev EnvironmentVPP/Software ArchitectureVPP/The VPP API
VPP/Training EventsVPP/TroubleshootingVPP/Troubleshooting/BuildIssues
VPP/Troubleshooting/VagrantVPP/Tutorial DPDK and MacSwapVPP/Tutorial Routing and Switching
VPP/TutorialsVPP/Use VPP to Chain VMs Using Vhost-User InterfaceVPP/Use VPP to connect VMs Using Vhost-User Interface
VPP/Using VPP In A Multi-thread ModelVPP/Using VPP as a VXLAN Tunnel TerminatorVPP/Using mTCP user mode TCP stack with VPP
VPP/VOMVPP/VPP/HostStack/BuiltinEchoClientServerVPP/VPPCommunicationsLibrary
VPP/VPPConfigVPP/VPPHostStack/TestHttpServerVPP/VPP BFD Nexus
VPP/VPP Home GatewayVPP/VPP WIKI DEPRECATED CONTENTVPP/What is ODP4VPP?
VPP/What is VPP?VPP/Working with the 16.06 Throttle BranchVPP/c2cpel
VPP/cpelVPP/cpeldumpVPP/elog
VPP/g2VPP/jira workflowVPP/nataas-test
VPP/perftopVPP/project-meeting-minutesVPPHostStack
VPP - Working EnvironmentsVPP 16.06 DPDK PatchsetVPP Sandbox
VPP Sandbox/flowtableVPP Sandbox/mmbVPP Sandbox/router
VPP Sandbox/turbotapVPP Sandbox/vpp-userdemoVPP Usability Track