Difference between revisions of "VPP"
(→Use Cases) |
|||
Line 16: | Line 16: | ||
* Ed Warnicke | * Ed Warnicke | ||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Start Here== | ==Start Here== | ||
Line 38: | Line 24: | ||
[https://docs.google.com/document/d/1zqYN7qMavgbdkPWIJIrsPXlxNOZ_GhEveHQxpYr3qrg/edit?usp=sharing Quick Start Guide] | [https://docs.google.com/document/d/1zqYN7qMavgbdkPWIJIrsPXlxNOZ_GhEveHQxpYr3qrg/edit?usp=sharing Quick Start Guide] | ||
+ | |||
+ | [[VPP/Configuration Tool|VPP Configuration Tool]] - A tool the configures VPP in a simple and safe manner | ||
[https://docs.fd.io/vpp/17.10/ Documentation: master (17.10)] | [https://docs.fd.io/vpp/17.10/ Documentation: master (17.10)] | ||
Line 44: | Line 32: | ||
[https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)] | [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)] | ||
+ | |||
+ | == Get Involved == | ||
+ | |||
+ | * [[VPP/Meeting|Weekly VPP Meeting]] | ||
+ | * [https://lists.fd.io/mailman3/lists/vpp-dev.lists.fd.io/ Join the VPP Mailing List] | ||
+ | * [[IRC | Join fdio-vpp IRC channel]] | ||
+ | * [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]] | ||
+ | * [[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/Getting_VPP_Release Binaries | Getting the Current Release (17.07)]] | ||
+ | * [[VPP/Documentation | How to document vpp code]] | ||
+ | * [[VPP/CodeStyleConventions | Coding Style]] | ||
+ | * Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] | ||
+ | * [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP] | ||
==Getting started with VPP development== | ==Getting started with VPP development== |
Revision as of 17:48, 2 November 2017
VPP Facts |
Project Lead: Dave Barach
Repository: git clone https://gerrit.fd.io/r/vpp |
Contents
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
VPP Configuration Tool - A tool the configures VPP in a simple and safe manner
VPP design and implementation overview (Powerpoint)
Get Involved
- Weekly VPP Meeting
- Join the VPP Mailing List
- Join fdio-vpp IRC channel
- 17.10 Release Plan
- 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 (17.07)
- How to document vpp code
- Coding Style
- Static Analysis, see Latest Coverity Run Results
- OpenGrok for VPP
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. 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
The VPP API - design and implementation of the VPP API
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 Command-line Interface (CLI) User Guide
VPP Command-line Arguments and startup configuration
How to spot missing prefetches
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 with VCL for high-speed container networking - iPerf3 in Docker at 100Gbps+
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.
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 Committer Tasks
Steps for cutting Master to XXYY-rc0
Projects
NAT plugin - VPP CGN, NAT44, stateful NAT64 project
Security Groups - ACLs, Security Groups, Group Based Policy
VPP/IPFIX - IP Flow Information Export
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.