VPP
VPP Facts |
Project Lead: Dave Barach
Repository: git clone https://gerrit.fd.io/r/vpp |
Contents
Get Involved
- Weekly VPP Meeting
- Join the VPP Mailing List
- Join fdio-vpp IRC channel
- Current Release Plan (16.09)
- Next Release Plan (17.01)
- Committer subject matter expert list - who should I add as a reviewer to review my patch?
- Working with the 16.06 Throttle Branch
- Getting the Current Release (16.06)
- How to document vpp code
- Coding Style
Start Here
What is VPP? - An introduction to the open-source Vector Packet Processing (VPP) platform
Feature Summary - A list of features included in VPP
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. NOTE: supercedes Setting Up Your Dev Environment
Building and Installing A VPP Package - Explains how to build, install and test a VPP package
Alternative builds - various platform and feature specific VPP builds
Reporting Bugs - Explains how to report a bug, specifically: how to gather the required information
VPP Troubleshooting - Various tips/tricks for commonly seen issues
Dive Deeper
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.
The VPP API
How to Create A Binary Control-plane API
How To Use The API Trace Tools
Reference Material
VPP Command-line Interface (CLI) User Guide
VPP Command-line Arguments and startup configuration
Tutorials
How To Use The Packet Generator and Packet Tracer
How To Build The Sample Plugin
How To Optimize Performance (System Tuning)
How To Connect A PCI Interface To VPP
Working with Honeycomb - Workflow
Code Walkthrough VoD Topic Index and Notes
Code Walkthrough VoD: Chapter 1 | VPP initialization
Code Walkthrough VoD: Chapter 2 | Performance and Measurements
Code Walkthrough VoD: Chapter 3 | VPP Bring-up and a simple ping test
Code Walkthrough VoD: Chapter 4 | VPP API
Code Walkthrough VoD: Chapter 5 | Build and Deploy a Plugin
Code Walkthrough VoD: Chapter 6 | Deep Dive into a sample plugin
Code Walkthrough VoD: Chapter 7 | VPP Binary API
Code Walkthrough VoD: Chapter 8 | Detour to explain more of VPP API test program
Code Walkthrough VoD: Chapter 9 | Q & A
Code Walkthrough VoD: Chapter 10 | Thread support in VPP
Code Walkthrough VoD: Chapter 11 | Misc Discussions
Code Walkthrough VoD: Chapter 12 | DPDK + VPP interaction
Code Walkthrough VoD: Chapter 13 | Discussion on rte_mbuf structure
Code Walkthrough VoD: Chapter 14 | How DPDK is patched and compiled in VPP
Code Walkthrough VoD: Chapter 15 | Q & A
Code Walkthrough VoD: Chapter 16 | Thank You
Video Tutorial: AARCH64_THUNDERX
Video Tutorial: VPP-based vSwitch Performance
Video Tutorial: vppfib walkthrough
Video Tutorial: vpp elog walkthrough
Video Tutorial: vppinfra walkthrough
Video Tutorial: vpp workflow walkthrough
Video Playlist: Training/Hackfest 2016-04-07
Video Playlist: Training 2016-06-01
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 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 configuration of the VPP platform for IPv6 segment routing.
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
VPP Committer Tasks
Steps for cutting Master to XXYY-rc0
Projects
Simple NAT - VPP CGN, NAT44, stateful NAT64 project
Security Groups - ACLs, Security Groups, Group Based Policy