Difference between revisions of "VPP"

From fd.io
Jump to: navigation, search
(Start Here)
Line 41: Line 41:
  
 
[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)]
 +
 +
 +
==Getting started with VPP development==
 +
 +
[[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/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/BugReports|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/Troubleshooting/Vagrant|Issues with Vagrant]]
 +
* [[VPP/Troubleshooting/BuildIssues | Build issues]]
  
 
==Dive Deeper==
 
==Dive Deeper==

Revision as of 13:46, 29 March 2017

VPP Facts

Project Lead: Dave Barach
Committers:

  • Dave Barach
  • Keith Burns
  • Florin Coras
  • John Lo
  • Chris Luke
  • Damjan Marion
  • Neale Ranns
  • Ole Troan
  • Dave Wallace
  • Ed Warnicke

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

Get Involved

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

Documentation: master (17.04)

Documentation: 17.01.

VPP design and implementation overview (Powerpoint)


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

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

API Concepts

How to Create A Binary Control-plane API

How To Use The API Trace Tools

How To Use The C API

Python Language Binding

Java Language Binding

YANG model

Reference Material

VPP Command-line Interface (CLI) User Guide

VPP Command-line Arguments and startup configuration

Writing VPP Documentation

Performance Analysis Tools

How to spot missing prefetches

Buffer Opaque Layout

DPOs and Feature Arcs

Per-feature Notes

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 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

VPP Committer Tasks

Pushing and Testing a Tag

Steps for cutting Master to XXYY-rc0

Cutting a Release

VPP 16.09-RC0 cut punchlist

Projects

Simple NAT - 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.

Previous Release Plans