Difference between revisions of "VPP"
Line 68: | Line 68: | ||
[[VPP/API_Concepts|API Concepts]] | [[VPP/API_Concepts|API Concepts]] | ||
+ | |||
+ | [[VPP/How to Create a VPP binary control-plane API| How to Create A Binary Control-plane API]] | ||
+ | |||
+ | [[VPP/How To Use The API Trace Tools|How To Use The API Trace Tools]] | ||
[[VPP/Python API|Python Language Binding]] | [[VPP/Python API|Python Language Binding]] | ||
Line 90: | Line 94: | ||
[[VPP/How To Build The Sample Plugin|How To Build The Sample Plugin]] | [[VPP/How To Build The Sample Plugin|How To Build The Sample Plugin]] | ||
− | |||
− | |||
[[VPP/How To Optimize Performance (System Tuning)|How To Optimize Performance (System Tuning)]] | [[VPP/How To Optimize Performance (System Tuning)|How To Optimize Performance (System Tuning)]] | ||
[[VPP/How To Connect A PCI Interface To VPP| How To Connect A PCI Interface To VPP]] | [[VPP/How To Connect A PCI Interface To VPP| How To Connect A PCI Interface To VPP]] | ||
− | |||
− | |||
[[Honeycomb/VPPJAPI_workflow | Working with Honeycomb - Workflow]] | [[Honeycomb/VPPJAPI_workflow | Working with Honeycomb - Workflow]] |
Revision as of 08:44, 17 June 2016
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.06)
- Next Release Plan (16.09)
- Committer subject matter expert list - who should I add as a reviewer to review my patch?
- Working with the 16.06 Throttle Branch
Start Here
What is VPP? - An introduction to the open-source Vector Packet Processing (VPP) platform.
Pulling, Building, Hacking, and Pushing VPP Code - Explains how to get up and going with the vpp code base.
Setting Up Your Dev Environment - Explains how to set up your development environment and the requirements for using the build tools. Superceded by the more recent Pulling, Building, Hacking, and Pushing VPP Code
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
Installing VPP binaries from packages - using APT/YUM to install VPP
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.
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
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