https://wiki.fd.io/api.php?action=feedcontributions&user=Ayourtch&feedformat=atomfd.io - User contributions [en]2024-03-28T10:03:27ZUser contributionsMediaWiki 1.23.15https://wiki.fd.io/view/VPPVPP2024-03-26T10:04:54Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* Mohammed Hawari<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
* Fan Zhang<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_24.06| 24.06 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* 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]<br />
<br />
==VPP Documentation==<br />
<br />
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].<br />
<br />
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.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://fd.io/documentation/csit by VPP version]<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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.<br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[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<br />
<br />
[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<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools.<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP debug Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP debug CLI arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
[[VPP/MakeTestFramework | Make Test Framework]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans_Archive | Archived Release Plans]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_24.06Projects/vpp/Release Plans/Release Plan 24.062024-03-26T10:04:27Z<p>Ayourtch: /* Release Milestones */</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 24.06<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 28 Nov 2023.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE.</span> <br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2024-05-22<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2024-06-12 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Formal Release<br />
| 2024-06-26 (RC2+14)<br />
| 24.06 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 24.06 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_24.06Projects/vpp/Release Plans/Release Plan 24.062024-03-26T10:04:14Z<p>Ayourtch: Created page with "== Introduction == This page tracks release information for 24.06 == Release Deliverables == See https://github.com/vpp-dev/vpp-release-notes for information. == Release Mi..."</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 24.06<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 28 Nov 2023.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE.</span> <br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2024-05-22<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2024-06-12 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Formal Release<br />
| 2024-06-26 (RC2+14)<br />
| 24.06 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 24.06 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans_ArchiveProjects/vpp/Release Plans Archive2024-03-26T10:01:26Z<p>Ayourtch: </p>
<hr />
<div>* [[Projects/vpp/Release_Plans/Release_Plan_24.02 | 24.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_23.10 | 23.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_23.02 | 23.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.10 | 22.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.06 | 22.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.02 | 22.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_24.02Projects/vpp/Release Plans/Release Plan 24.022023-11-28T16:15:06Z<p>Ayourtch: /* Once we've pulled the 24.02 release throttle */</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 24.02<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 28 Nov 2023.</span><br />
<!-- <span style="font-size:120%">The schedule below is TENTATIVE.</span> --><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2024-01-24<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2024-02-14 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Formal Release<br />
| 2024-02-28 (RC2+14)<br />
| 24.02 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 24.02 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_24.02Projects/vpp/Release Plans/Release Plan 24.022023-11-28T16:14:50Z<p>Ayourtch: /* Release Milestones */</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 24.02<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 28 Nov 2023.</span><br />
<!-- <span style="font-size:120%">The schedule below is TENTATIVE.</span> --><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2024-01-24<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2024-02-14 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Formal Release<br />
| 2024-02-28 (RC2+14)<br />
| 24.02 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 24.02 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2023-11-28T14:35:25Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* Mohammed Hawari<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
* Fan Zhang<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_24.02| 24.02 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* 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]<br />
<br />
==VPP Documentation==<br />
<br />
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].<br />
<br />
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.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://fd.io/documentation/csit by VPP version]<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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.<br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[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<br />
<br />
[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<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools.<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP debug Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP debug CLI arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
[[VPP/MakeTestFramework | Make Test Framework]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans_Archive | Archived Release Plans]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans_ArchiveProjects/vpp/Release Plans Archive2023-11-28T14:35:02Z<p>Ayourtch: </p>
<hr />
<div>* [[Projects/vpp/Release_Plans/Release_Plan_23.10 | 23.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_23.02 | 23.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.10 | 22.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.06 | 22.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.02 | 22.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_24.02Projects/vpp/Release Plans/Release Plan 24.022023-11-28T14:33:57Z<p>Ayourtch: Created page with "== Introduction == This page tracks release information for 24.02 == Release Deliverables == See https://github.com/vpp-dev/vpp-release-notes for information. == Release Mi..."</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 24.02<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 8 Aug 2023.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE.</span> <br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2024-01-24<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2024-02-14 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Formal Release<br />
| 2024-02-28 (RC2+14)<br />
| 24.02 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 24.02 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_23.10Projects/vpp/Release Plans/Release Plan 23.102023-08-09T11:55:59Z<p>Ayourtch: /* Release Milestones */</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 23.10<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 8 Aug 2023.</span><br />
<!-- <span style="font-size:120%">The schedule below is TENTATIVE.</span> --><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2023-09-20<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2023-10-11 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Formal Release<br />
| 2023-10-25 (RC2+14)<br />
| 23.10 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 23.10 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2023-08-01T11:22:41Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* Mohammed Hawari<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
* Fan Zhang<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_23.10| 23.10 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* 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]<br />
<br />
==VPP Documentation==<br />
<br />
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].<br />
<br />
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.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://fd.io/documentation/csit by VPP version]<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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.<br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[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<br />
<br />
[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<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools.<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP debug Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP debug CLI arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
[[VPP/MakeTestFramework | Make Test Framework]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans_Archive | Archived Release Plans]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_23.10Projects/vpp/Release Plans/Release Plan 23.102023-08-01T11:21:55Z<p>Ayourtch: Created page with "== Introduction == This page tracks release information for 23.10 == Release Deliverables == See https://github.com/vpp-dev/vpp-release-notes for information. == Release Mi..."</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 23.10<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE.</span><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2023-09-20<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2023-10-11 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Formal Release<br />
| 2023-10-25 (RC2+14)<br />
| 23.10 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 23.10 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_23.06Projects/vpp/Release Plans/Release Plan 23.062023-03-29T14:17:09Z<p>Ayourtch: /* Release Milestones */</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 23.06<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<span style="font-size:120%">The schedule below is FINAL.</span><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2023-05-24<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2023-06-14 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Formal Release<br />
| 2023-06-28 (RC2+14)<br />
| 23.06 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 23.06 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans_ArchiveProjects/vpp/Release Plans Archive2023-03-14T12:40:24Z<p>Ayourtch: </p>
<hr />
<div>* [[Projects/vpp/Release_Plans/Release_Plan_23.02 | 23.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.10 | 22.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.06 | 22.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.02 | 22.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2023-03-14T12:19:41Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
* Fan Zhang<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_23.06| 23.06 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* 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]<br />
<br />
==VPP Documentation==<br />
<br />
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].<br />
<br />
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.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://fd.io/documentation/csit by VPP version]<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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.<br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[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<br />
<br />
[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<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools.<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP debug Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP debug CLI arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
[[VPP/MakeTestFramework | Make Test Framework]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans_Archive | Archived Release Plans]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_23.06Projects/vpp/Release Plans/Release Plan 23.062023-03-06T12:25:58Z<p>Ayourtch: Created page with "== Introduction == This page tracks release information for 23.06 == Release Deliverables == See https://github.com/vpp-dev/vpp-release-notes for information. == Release Mi..."</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 23.06<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE, to be confirmed at the next VPP community meeting.</span><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2023-05-24<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2023-06-14 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Formal Release<br />
| 2023-06-28 (RC2+14)<br />
| 23.06 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 23.06 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans_ArchiveProjects/vpp/Release Plans Archive2022-11-14T15:17:21Z<p>Ayourtch: </p>
<hr />
<div>* [[Projects/vpp/Release_Plans/Release_Plan_22.10 | 22.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.06 | 22.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.02 | 22.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2022-11-14T15:16:11Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
* Fan Zhang<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_23.02| 23.02 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* 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]<br />
<br />
==VPP Documentation==<br />
<br />
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].<br />
<br />
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.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://fd.io/documentation/csit by VPP version]<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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.<br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[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<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP debug Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP debug CLI arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
[[VPP/MakeTestFramework | Make Test Framework]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans_Archive | Archived Release Plans]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_23.02Projects/vpp/Release Plans/Release Plan 23.022022-11-14T15:15:06Z<p>Ayourtch: </p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 23.02<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE, to be confirmed at the next VPP community meeting.</span><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2023-01-18<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2023-02-08 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Release gate<br />
| 2023-02-15 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release<br />
| 2023-02-22 (RC2+14)<br />
| 23.02 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 23.02 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_23.02Projects/vpp/Release Plans/Release Plan 23.022022-11-14T15:13:56Z<p>Ayourtch: Created page with "== Introduction == This page tracks release information for 23.02 == Release Deliverables == See https://github.com/vpp-dev/vpp-release-notes for information. == Release Mi..."</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 23.02<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE, to be confirmed at the next VPP community meeting.</span><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2023-01-18<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2023-02-08 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Release gate<br />
| 2023-02-15 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release<br />
| 2023-02-22 (RC2+14)<br />
| 23.02 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 22.10 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2022-07-12T12:10:52Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
* Fan Zhang<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.10| 22.10 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
<br />
==VPP Documentation==<br />
<br />
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].<br />
<br />
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.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://fd.io/documentation/csit by VPP version]<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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.<br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[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<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP debug Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP debug CLI arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
[[VPP/MakeTestFramework | Make Test Framework]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans_Archive | Archived Release Plans]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans_ArchiveProjects/vpp/Release Plans Archive2022-07-12T12:10:17Z<p>Ayourtch: </p>
<hr />
<div>* [[Projects/vpp/Release_Plans/Release_Plan_22.06 | 22.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.02 | 22.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_22.10Projects/vpp/Release Plans/Release Plan 22.102022-07-12T12:09:43Z<p>Ayourtch: Created page with "== Introduction == This page tracks release information for 22.10 == Release Deliverables == See https://github.com/vpp-dev/vpp-release-notes for information. == Release Mi..."</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 22.10<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE, to be confirmed at the next VPP community meeting.</span><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2022-09-21<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2022-10-12 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Release gate<br />
| 2022-10-19 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release<br />
| 2022-10-26 (RC2+14)<br />
| 22.10 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 22.10 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/VPP/CommitterTasks/CutReleaseVPP/CommitterTasks/CutRelease2022-06-28T08:57:23Z<p>Ayourtch: /* Prerequisites */</p>
<hr />
<div>__TOC__<br />
<br />
== Instructions for vpp release manager ==<br />
It is strongly recommended you do the prerequisites the week prior to the FR Milestone and start the release process a day or two prior to release.<br />
<br />
== Prerequisites ==<br />
1. Update Wiki - Edit the following wiki pages and add/revise references for new release<br />
:[[VPP|VPP main page]]<br />
:[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]]<br />
<br />
2. Review docs.fd.io<br />
:a. On the release throttle branch (e.g. stable/1801), add release specific links to .../vpp/doxygen/test_framework_doc.md<br />
:b. <b>pre-22.02</b> From workspace root, build doxygen output<br />
::<pre>make bootstrap-doxygen doxygen</pre><br />
:b. <b>post-22.02</b> From workspace root, build docs<br />
::<pre>make docs</pre><br />
:c. Check documentation output by opening the document index file in a browser:<br />
::file:///<path to workspace root>/build-root/docs/html/index.html<br />
:d. Clean up any formatting issues found.<br />
:e. Submit patch. <br />
:f. After patch is merged, cherry-pick it to master.<br />
<br />
3. Update .../vpp/extras/scripts/list_api_changes.py with current release rc0 tag (if necessary)<br />
<br />
4. Update release notes<br />
:a. Edit .../vpp/RELEASE.md and add section for the current release<br />
:b. Add number of commits by running the following command on the throttle branch (e.g. 18.01 <release rc0 tag> == v18.01-rc0)<br />
::<pre>git rev-list <release rc0 tag>..HEAD | wc -l</pre><br />
:c. Add Features section from the Release Plan & git log (Hint: gitk is your friend, jira not so much)<br />
:d. [[VPP/CommitterTasks/Compare_API_Changes|Add list of API changes generated using VPP]]<br />
:e. Add list of patches that changed api files by running the updated list_api_changes.py script<br />
<br />
5. Submit release notes patch (e.g. "18.01 Release Notes")<br />
<br />
6. Send email to vpp-dev@lists.fd.io asking for feedback on the release notes patch.<br />
<br />
7. Merge release notes patch (which should be the patch where the release label is created).<br />
<br />
8. Verify that all merge jobs (including docs) have completed successfully.<br />
<br />
9. Cherry-pick release notes patch to master.<br />
<br />
10. Review patches to the previous stable/XXXX release branch to ensure that all bug fixes in the previous release<br />
are contained in the new release.<br />
<br />
== Recipe to Generate the Release ==<br />
WARNING: If you push the release tag before the merge jobs have completed from the release note patch, then the merge jobs will fail when you do the "remerge" step below because nexus does not allow overwriting artifacts that already exist. If this does happen, then you need to open a [https://support.linuxfoundation.org helpdesk ticket] asking for all of the nexus release artifacts to be purged. You can also encounter this issue if the "remerge" jobs fail (keep your fingers crossed ;)<br />
<br />
1. Send an email reminder to the VPP Committers to NOT MERGE ANY PATCHES onto the stable branch until after the completion of the release has been announced on vpp-dev@lists.fd.io.<br />
<br />
2. Lay tag for “v18.01” on patch that is “last patch in series" (see [[VPP/Pushing_and_Testing_a_Tag| Pushing and Testing a Tag]] but note '''NO -rc<#>''' suffix!!!)<br />
<br />
3. “remerge” patch on that commit - so it creates various artifacts.<br />
:* Do remerge as per this [https://www.dropbox.com/s/3xs09a9lnliv1za/Screenshot%202016-09-07%2009.25.56.png?dl=0 picture]<br />
<br />
4. Once remerge jobs have successfully completed open case with LF staff to move artifacts to release repo<br />
:* Open a [https://support.linuxfoundation.org helpdesk ticket] using the template below, substituting ${release number} with the release number (like 18.01) and ${release number without '.'} with the release number without '.' (like 1801).<br />
<br />
5. Wait for LF infra staff to indicate they have completed the case<br />
<br />
6. Test install behaviour on currently supported platforms (ie Centos7.2, Ubuntu Xenial) - use instructions for [[VPP/Installing_VPP_binaries_from_packages| here]] to install 'release' packages and make sure you get a runnable version for ${release number} using release artifacts<br />
:a. Review the packages on PackageCloud.io (change release number in the search bar as necessary):<br />
:: [https://packagecloud.io/app/fdio/release/search?q=19.04.1-release&filter=all&dist=el%2F7 VPP 19.04.1 Centos7 Release packages ]<br />
:: [https://packagecloud.io/app/fdio/release/search?q=19.04.1-release&filter=all&filter=all&dist=ubuntu%2Fxenial VPP 19.04.1 Ubuntu 16.04 (xenial) Release packages ]<br />
:: [https://packagecloud.io/app/fdio/release/search?q=19.04.1-release_amd&filter=all&filter=all&dist=ubuntu%2Fbionic VPP 19.04.1 Ubuntu 18.04 (bionic) X86_64 Release packages]<br />
:: [https://packagecloud.io/app/fdio/release/search?q=19.04.1-release_arm&filter=all&filter=all&dist=ubuntu%2Fbionic VPP 19.04.1 Ubuntu 18.04 (bionic) ARM64 Release packages]<br />
:: [https://packagecloud.io/app/fdio/release/search?q=vpp-ext-dep&filter=all&filter=all&dist= VPP External Dependencies packages]<br />
:b. Install binary packages and verify VPP starts on supported VMs without any prior VPP installed<br />
<br />
7. Release the version in Jira<br />
<br />
VPP committers should have admin access to Jira. From https://jira.fd.io/plugins/servlet/project-config/VPP/summary navigate to ''Releases'' (Or ''Versions'', same thing) and under ''Actions'' for the release, select ''Release''.<br />
<br />
Tell Jira to move all still-open issues into the next release and set the release date appropriately.<br />
<br />
8. Declare Victory!<br />
:* Email [mailto:vpp-dev@lists.fd.io vpp-dev] and [mailto:csit-dev@lists.fd.io csit-dev] to announce the availability of the release artifacts on nexus.fd.io.<br />
<br />
== helpdesk template ==<br />
<pre><br />
Subject: Please publish VPP ${release number} Release Artifacts<br />
<br />
Dear Helpdesk@fd.io,<br />
<br />
The VPP artifacts for release ${release number} are now available on packagecloud.io and are ready to be copied into the release directories.<br />
<br />
Please let me know when they have been published so I can test the VPP ${release number} packages from packagecloud.io/fdio/release.<br />
<br />
Thanks,<br />
<Your Friendly VPP Release Manager><br />
</pre><br />
<br />
== Post Release Tasks ==<br />
<br />
1. Rebuild the docs<br />
make docs-venv docs<br />
<br />
2. Submit the patch containing the updated docs about release version file .../docs/about.rst<br />
* For example, [https://gerrit.fd.io/r/c/vpp/+/23047 VPP 19.04.3 docs build info]<br />
<br />
3. Create the tag for the next maintenance release “v19.04.4-rc0” on the patch (see [[VPP/Pushing_and_Testing_a_Tag| Pushing and Testing a Tag]]).<br />
This tag is required to ensure that the latest artifacts pushed to packagecloud.io/1904 get retrieved when pulling from the repo using apt or yum.<br />
<br />
4. Merge the patch [Verified +1, Code Review +2]</div>Ayourtchhttps://wiki.fd.io/view/VPP/CommitterTasks/PullThrottleBranchVPP/CommitterTasks/PullThrottleBranch2022-06-28T08:54:47Z<p>Ayourtch: /* Jira versions */</p>
<hr />
<div>__TOC__<br />
== VPP RC1 pre-Milestone Tasklist ==<br />
<br />
1. At least a week prior to the RC1 date, email a reminder to vpp-dev@lists.fd.io about VPP RC1 Milestone. See [https://lists.fd.io/g/vpp-dev/message/7780 an example email] or [https://lists.fd.io/g/vpp-dev/topic/rc1_branch_in_one_week/16305776 another example email].<br />
<br />
2. To be done before RC1: <br />
<br />
:a. Follow-up that ci-management change below is merged<br />
:b. Verify that packagecloud.io repository fdio/YYMM (as corresponding to the branch stable/YYMM that is being created) exists and follow up with Ed Warnicke to ensure it is created and has "lf-fdio" added as a collaborator.<br />
:c. Prepare "first commit of rc0 of next release" commit on master branch so it is ready for merge + tagging at the time of the RC1.<br />
<br />
3. Resend reminder about (1) a day or two prior to the RC1 date.<br />
<br />
== Jira versions ==<br />
<br />
RC1 milestone involves a fair bit of watching the paint dry, so it is a good use of part of this time to create the next version in Jira. VPP committers should have admin access to Jira.<br />
<br />
From https://jira.fd.io/plugins/servlet/project-config/VPP/summary navigate to ''Releases'' (or ''Versions'', same thing) and fill in the empty boxes labelled ''Version name'' and ''start date'' (which should be the date that RC1 of the current release is created). Then select ''Add''.<br />
<br />
Additionally, if the previous version was not released (because the previous release manager forgot to), now is a good time to do so. Choose the ''Release'' action for the version and then move still-open issues to the current release. Set the release date for the previous release appropriately.<br />
<br />
Finally, check that the dates for the current release are accurate; it is likely the release date is empty. By this point we should know the anticipated release date, so it is worth filling it in.<br />
<br />
== Pulling a VPP Throttle Branch ==<br />
<br />
'''NOTE''': Steps 3 and 4 can be done any time prior to RC1 branch day. At the very least, discuss the requirements with the individuals ahead of time to set the correct expectations.<br />
<br />
3. nexus - no longer needed.<br />
<br />
4. Request Ed Warnicke create the package cloud repos. Send and email to Ed Warnicke (eaw@cisco.com and/or hagbard@gmail.com) reminding him to create the package cloud repositories for the new release, and have lf-fdio as a collaborator.<br />
Since 21.01RC1 the verify/merge jobs do not require the packages to be present in the deb repos.<br />
<br />
5. '''Jenkins''': (can be done and merged some days <b>before</b> the date of pulling the branch) - In the ci-management Git repo, edit <code>jjb/vpp/vpp.yaml</code>:<br />
<br />
:a. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n49<br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1801'':<br />
- '1801':<br />
branch: 'stable/1801’'<br />
repo-stream-part: 'stable.1801'<br />
<br />
:b. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n87<br />
::likewise add a new stream here. Exactly the same idea as the previous step.<br />
<br />
:c. '''Example:''' https://gerrit.fd.io/r/9934/<br />
<br />
:d. Similarly, edit <code>jjb/vpp/docs.yaml</code><br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1904'':<br />
- '1904':<br />
branch: 'stable/1904’'<br />
repo-stream-part: 'stable.1904'<br />
<br />
:e. '''Example:''' https://gerrit.fd.io/r/#/c/18982/<br />
<br />
<br />
6. (since 22.02) On master branch, edit docs/aboutvpp/releasenotes/index.rst and remove the oldest version designator. Add this same version designator at the top of the docs/aboutvpp/releasenotes/past.rst file. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/c/vpp/+/34967<br />
<br />
<strike>6. (before 22.02) On master branch, edit vpp/RELEASE.md and add a placeholder for the next release and merge the patch on master and edit vpp/doxygen/test_framework_doc.md and add a new link to the next release's test framework documentation. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/#/c/18803/1/RELEASE.md<br />
::https://gerrit.fd.io/r/#/c/19292/1/doxygen/test_framework_doc.md<br />
</strike><br />
<br />
7. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] for the next release RC0 (e.g. <code>1804-rc0</code>) on master, using the hash of the above commit as an explicit argument for tagging.<br />
<br />
:a. Verify that the tag shows up by looking for it at https://git.fd.io/vpp/log/ - it usually takes a few minutes. <br />
:b. Remerge the last merged patch on master - you can see the "to be" version in the build logs for the merge jobs.<br />
:c. When the remerge of the last patch on master is complete, go look for package with the correct versions at packagecloud.io/fdio/master<br />
:d. Follow instructions on [[VPP/Installing_VPP_binaries_from_packages]] and verify that packages with the new versions are installed on packagecloud.io<br />
<br />
There may be existing patches from others waiting to be merged on master - then instead of a remerge of the patch from step (6), if that patch is being merged, it can be used for sanity check instead of patch from step (6).<br />
<br />
8. Create a new branch ''stable/YYMM'' (example: ''stable/1801'') in the Gerrit web UI and specify the hash of the commit JUST BEFORE the one you merged in step 6.<br />
<br />
:a. https://gerrit.fd.io/r/#/admin/projects/vpp,branches<br />
<br />
9. On the new ''stable/YYMM'' branch (example: ''stable/1801'') prepare a commit which updates the <code>.gitreview</code> to reflect the correct branch. (You will need a "git pull" in your local repo to see the ref for the newly created branch).<br />
<br />
:a. Examples: <br />
::https://gerrit.fd.io/r/c/vpp/+/34968<br />
::https://gerrit.fd.io/r/#/c/1157/1/.gitreview<br />
::https://gerrit.fd.io/r/#/c/9937/<br />
<br />
:b. Merge patch onto the new stable branch<br />
<br />
'''NOTE''': Verify that this patch is in fact on the new stable branch, and not on master!<br />
<br />
10. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] (<code>v18.01-rc1</code>) on ''stable/1801'' at the point of the patch you just merged.<br />
<br />
'''NOTE:''' If the verification steps in 11 & 12 don't happen by the end of the day, it is best to send an email re-opening master to commits.<br />
<br />
11. Verify that the packagecloud.io repos have packages with the correct version and are working<br />
:a. Remerge the patch from step 9 after you push the tag (you can verify the to-be version of artifacts in the beginning of the VPP build log messages)<br />
<br />
:b. When the remerge from step 9 is complete, verify that the correct package versions have been uploaded onto the packagecloud.io/fdio/XXYY repository - if the job succeeded, the packages typically will be there. You can verify by visiting the packagecloud.io web interface and checking there.<br />
<br />
:c. Verify that the packages for the supported OSes are installable from the packagecloud.io/fdio/XXYY repo<br />
<br />
:d. Update the [[VPP/Installing_VPP_binaries_from_packages | Installing VPP Binaries from Packages]] Wiki page with instructions for the new branch, and test that you can install packages from packagecloud.io<br />
<br />
12. Send the all-clear message. [https://lists.fd.io/g/vpp-dev/message/7811 Example].<br />
<br />
13. If the Jira steps from [[VPP/CommitterTasks/ApiFreeze#Jira_versions]] didn't happen yet, do them now.<br />
<br />
Amend as necessary with any caveats; for example the 1804 RC1 milestone opened master and stable on different days while minor issues were resolved.<br />
<br />
== Historical Recipes ==<br />
<br />
[https://docs.google.com/document/d/1PKFUx1cRzEETOPO65PTrkXZf90ixiTpf3K9pkn2mPf8/edit?usp=sharing Steps for cutting Master to XXYY-rc0]<br />
<br />
[https://docs.google.com/spreadsheets/d/1hyiGLNEZwM1EW496foW7_SoNWtQQs1a2JFGybUZ97U4/edit?usp=sharing VPP 16.09-RC0 cut punchlist]</div>Ayourtchhttps://wiki.fd.io/view/VPP/CommitterTasks/PullThrottleBranchVPP/CommitterTasks/PullThrottleBranch2022-06-28T08:54:22Z<p>Ayourtch: /* VPP RC1 pre-Milestone Tasklist */</p>
<hr />
<div>__TOC__<br />
== VPP RC1 pre-Milestone Tasklist ==<br />
<br />
1. At least a week prior to the RC1 date, email a reminder to vpp-dev@lists.fd.io about VPP RC1 Milestone. See [https://lists.fd.io/g/vpp-dev/message/7780 an example email] or [https://lists.fd.io/g/vpp-dev/topic/rc1_branch_in_one_week/16305776 another example email].<br />
<br />
2. To be done before RC1: <br />
<br />
:a. Follow-up that ci-management change below is merged<br />
:b. Verify that packagecloud.io repository fdio/YYMM (as corresponding to the branch stable/YYMM that is being created) exists and follow up with Ed Warnicke to ensure it is created and has "lf-fdio" added as a collaborator.<br />
:c. Prepare "first commit of rc0 of next release" commit on master branch so it is ready for merge + tagging at the time of the RC1.<br />
<br />
3. Resend reminder about (1) a day or two prior to the RC1 date.<br />
<br />
== Jira versions ==<br />
<br />
RC1 involves a fair bit of watching the paint dry, so it is a good use of part of this time to create the next version in Jira. VPP committers should have admin access to Jira.<br />
<br />
From https://jira.fd.io/plugins/servlet/project-config/VPP/summary navigate to ''Releases'' (or ''Versions'', same thing) and fill in the empty boxes labelled ''Version name'' and ''start date'' (which should be the date that RC1 of the current release is created). Then select ''Add''.<br />
<br />
Additionally, if the previous version was not released (because the previous release manager forgot to), now is a good time to do so. Choose the ''Release'' action for the version and then move still-open issues to the current release. Set the release date for the previous release appropriately.<br />
<br />
Finally, check that the dates for the current release are accurate; it is likely the release date is empty. By this point we should know the anticipated release date, so it is worth filling it in.<br />
<br />
== Pulling a VPP Throttle Branch ==<br />
<br />
'''NOTE''': Steps 3 and 4 can be done any time prior to RC1 branch day. At the very least, discuss the requirements with the individuals ahead of time to set the correct expectations.<br />
<br />
3. nexus - no longer needed.<br />
<br />
4. Request Ed Warnicke create the package cloud repos. Send and email to Ed Warnicke (eaw@cisco.com and/or hagbard@gmail.com) reminding him to create the package cloud repositories for the new release, and have lf-fdio as a collaborator.<br />
Since 21.01RC1 the verify/merge jobs do not require the packages to be present in the deb repos.<br />
<br />
5. '''Jenkins''': (can be done and merged some days <b>before</b> the date of pulling the branch) - In the ci-management Git repo, edit <code>jjb/vpp/vpp.yaml</code>:<br />
<br />
:a. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n49<br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1801'':<br />
- '1801':<br />
branch: 'stable/1801’'<br />
repo-stream-part: 'stable.1801'<br />
<br />
:b. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n87<br />
::likewise add a new stream here. Exactly the same idea as the previous step.<br />
<br />
:c. '''Example:''' https://gerrit.fd.io/r/9934/<br />
<br />
:d. Similarly, edit <code>jjb/vpp/docs.yaml</code><br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1904'':<br />
- '1904':<br />
branch: 'stable/1904’'<br />
repo-stream-part: 'stable.1904'<br />
<br />
:e. '''Example:''' https://gerrit.fd.io/r/#/c/18982/<br />
<br />
<br />
6. (since 22.02) On master branch, edit docs/aboutvpp/releasenotes/index.rst and remove the oldest version designator. Add this same version designator at the top of the docs/aboutvpp/releasenotes/past.rst file. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/c/vpp/+/34967<br />
<br />
<strike>6. (before 22.02) On master branch, edit vpp/RELEASE.md and add a placeholder for the next release and merge the patch on master and edit vpp/doxygen/test_framework_doc.md and add a new link to the next release's test framework documentation. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/#/c/18803/1/RELEASE.md<br />
::https://gerrit.fd.io/r/#/c/19292/1/doxygen/test_framework_doc.md<br />
</strike><br />
<br />
7. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] for the next release RC0 (e.g. <code>1804-rc0</code>) on master, using the hash of the above commit as an explicit argument for tagging.<br />
<br />
:a. Verify that the tag shows up by looking for it at https://git.fd.io/vpp/log/ - it usually takes a few minutes. <br />
:b. Remerge the last merged patch on master - you can see the "to be" version in the build logs for the merge jobs.<br />
:c. When the remerge of the last patch on master is complete, go look for package with the correct versions at packagecloud.io/fdio/master<br />
:d. Follow instructions on [[VPP/Installing_VPP_binaries_from_packages]] and verify that packages with the new versions are installed on packagecloud.io<br />
<br />
There may be existing patches from others waiting to be merged on master - then instead of a remerge of the patch from step (6), if that patch is being merged, it can be used for sanity check instead of patch from step (6).<br />
<br />
8. Create a new branch ''stable/YYMM'' (example: ''stable/1801'') in the Gerrit web UI and specify the hash of the commit JUST BEFORE the one you merged in step 6.<br />
<br />
:a. https://gerrit.fd.io/r/#/admin/projects/vpp,branches<br />
<br />
9. On the new ''stable/YYMM'' branch (example: ''stable/1801'') prepare a commit which updates the <code>.gitreview</code> to reflect the correct branch. (You will need a "git pull" in your local repo to see the ref for the newly created branch).<br />
<br />
:a. Examples: <br />
::https://gerrit.fd.io/r/c/vpp/+/34968<br />
::https://gerrit.fd.io/r/#/c/1157/1/.gitreview<br />
::https://gerrit.fd.io/r/#/c/9937/<br />
<br />
:b. Merge patch onto the new stable branch<br />
<br />
'''NOTE''': Verify that this patch is in fact on the new stable branch, and not on master!<br />
<br />
10. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] (<code>v18.01-rc1</code>) on ''stable/1801'' at the point of the patch you just merged.<br />
<br />
'''NOTE:''' If the verification steps in 11 & 12 don't happen by the end of the day, it is best to send an email re-opening master to commits.<br />
<br />
11. Verify that the packagecloud.io repos have packages with the correct version and are working<br />
:a. Remerge the patch from step 9 after you push the tag (you can verify the to-be version of artifacts in the beginning of the VPP build log messages)<br />
<br />
:b. When the remerge from step 9 is complete, verify that the correct package versions have been uploaded onto the packagecloud.io/fdio/XXYY repository - if the job succeeded, the packages typically will be there. You can verify by visiting the packagecloud.io web interface and checking there.<br />
<br />
:c. Verify that the packages for the supported OSes are installable from the packagecloud.io/fdio/XXYY repo<br />
<br />
:d. Update the [[VPP/Installing_VPP_binaries_from_packages | Installing VPP Binaries from Packages]] Wiki page with instructions for the new branch, and test that you can install packages from packagecloud.io<br />
<br />
12. Send the all-clear message. [https://lists.fd.io/g/vpp-dev/message/7811 Example].<br />
<br />
13. If the Jira steps from [[VPP/CommitterTasks/ApiFreeze#Jira_versions]] didn't happen yet, do them now.<br />
<br />
Amend as necessary with any caveats; for example the 1804 RC1 milestone opened master and stable on different days while minor issues were resolved.<br />
<br />
== Historical Recipes ==<br />
<br />
[https://docs.google.com/document/d/1PKFUx1cRzEETOPO65PTrkXZf90ixiTpf3K9pkn2mPf8/edit?usp=sharing Steps for cutting Master to XXYY-rc0]<br />
<br />
[https://docs.google.com/spreadsheets/d/1hyiGLNEZwM1EW496foW7_SoNWtQQs1a2JFGybUZ97U4/edit?usp=sharing VPP 16.09-RC0 cut punchlist]</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2022-03-22T14:20:17Z<p>Ayourtch: /* Previous Release Plans */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
* Fan Zhang<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP Reference documentation]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
<br />
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]. It provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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.<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the way to share version independant information about VPP, like release management, community meetings dates, and more.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.06| 22.06 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP debug Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP debug CLI arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.02 | 22.02 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2022-03-22T14:19:59Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
* Fan Zhang<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP Reference documentation]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
<br />
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]. It provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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.<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the way to share version independant information about VPP, like release management, community meetings dates, and more.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.06| 22.06 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP debug Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP debug CLI arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_22.06Projects/vpp/Release Plans/Release Plan 22.062022-03-22T14:19:04Z<p>Ayourtch: Created page with "== Introduction == This page tracks release information for 22.06 == Release Deliverables == See https://github.com/vpp-dev/vpp-release-notes for information. == Release Mi..."</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 22.06<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE, to be confirmed at the next VPP community meeting.</span><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2021-05-25<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2022-06-15 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Release gate<br />
| 2022-06-22 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release<br />
| 2022-06-29 (RC2+14)<br />
| 22.06 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 22.06 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/VPP/Pulling,_Building,_Running,_Hacking_and_Pushing_VPP_CodeVPP/Pulling, Building, Running, Hacking and Pushing VPP Code2022-03-17T15:05:45Z<p>Ayourtch: /* Pushing Patches with git review */</p>
<hr />
<div>= Intro =<br />
This page tries to give you a quick start guide for Pulling, Building, Running, Hacking, and Pushing VPP Code.<br />
An older version of this content can be found at [[VPP/Setting_Up_Your_Dev_Environment| Setting up Your Dev Environment (historical)]] which may have some gems, but<br />
you are likely to find this page more up to date.<br />
<br />
= Pulling =<br />
<br />
fd.io uses [https://gerrit-review.googlesource.com/Documentation/ Gerrit], a code review front end on [https://git-scm.com/ git].<br />
You can pull and push code via ssh with an ssh key or authenticated https. ssh is recommended. You can also pull code using<br />
anonymous https. Regardless of the access method you will require the "git" program and the "git review" extension is strongly recommended.<br />
<br />
== Pulling anonymously (https) ==<br />
<br />
You can pull the code anonymously using:<br />
<br />
git clone https://gerrit.fd.io/r/vpp<br />
<br />
This is the fastest way to get the code, but you cannot *push* anonymously, and so you are going to have to establish an account when you get to the point of pushing code.<br />
<br />
== Pulling code via ssh ==<br />
<br />
The recommended way to pull code is via ssh, especially if you intend to develop and submit changes. This requires you to setup an account and set up gerrit.<br />
<br />
=== Setting up an account ===<br />
<br />
fd.io uses the Linux Foundations identity system. If you do not already have an LF account, proceed to: https://identity.linuxfoundation.org/<br />
to create one. If you do, you can use your Linux Foundation username and password for all logins at fd.io.<br />
<br />
=== Setting up Gerrit ===<br />
<br />
Make sure you have <span style="background: LightPink">[[DEV/Setting_up_Gerrit|registered your ssh key with gerrit]].</span><br />
<br />
=== Pulling the code ===<br />
<br />
Type the following git command (replacing USERNAME with your [https://identity.linuxfoundation.org Linux Foundation] username):<br />
<br />
git clone ssh://USERNAME@gerrit.fd.io:29418/vpp.git<br />
<br />
== Pulling code via authenticated https ==<br />
<br />
If you are on a network that blocks port 29418 then you may be able to use authenticated https instead. You still need a gerrit account (see above).<br />
The invocation for this would look like:<br />
<br />
git clone https://USERNAME:APITOKEN@gerrit.fd.io/r/a/vpp<br />
<br />
Again, replace USERNAME with your [https://identity.linuxfoundation.org Linux Foundation] username. APITOKEN is a Gerrit feature; In among your user settings there is a section entitled "[https://gerrit.fd.io/r/#/settings/http-password HTTP Password]". This page will allow you to generate a token that you can use in place of your password. If you do not wish to embed the token in the URL, then this method<br />
<br />
git clone https://USERNAME@gerrit.fd.io/r/a/vpp<br />
<br />
will prompt you for a password; if you have generated a token then use it here though understand that you'll have to enter it every time you use this method.<br />
<br />
Also it is worth noting that some features of the review process may unavoidably require using SSH on port 29418.<br />
<br />
= Building =<br />
<br />
== Linux ==<br />
<br />
VPP can be built, packaged and run on either Debian based (Ubuntu,etc) or RPM based (Centos,etc) out of the box.<br />
<br />
=== Building the first time ===<br />
<br />
In order to insure up to date instructions for setting up and building the first time, VPP has a script<br />
<br />
<code><br />
build-root/vagrant/build.sh<br />
</code><br />
<br />
which installs any dependencies, builds the proper packaging for your local Linux distribution, and installs those packages.<br />
Simply running this script should get you going fast. It is the same file used to install dependencies, build, and install packages<br />
when the vagrant environment is used. It is also a useful place to crib from for how to do those individual steps.<br />
<br />
=== Subsequent Builds ===<br />
<br />
Once you've gone through your first build successfully, there are detailed instructions on building, installing, and testing packages :<br />
[[VPP/Build,_install,_and_test_images#Build_A_VPP_Package | Build A VPP Package]]<br />
<br />
=== Building without virtualization ===<br />
<br />
From the VPP repository root you can use the Makefile.<br />
<br />
# if vpp<08.10<br />
make install-dep<br />
make bootstrap<br />
make build # or `make build-release`<br />
<br />
# vpp 08.10+ (cmake)<br />
make install-dep<br />
make install-ext-deps<br />
make build # or `make build-release`<br />
<br />
<br />
==== Bootstrap errors ====<br />
<br />
* '''libtoolize: AC_CONFIG_MACRO_DIR([m4]) conflicts with ACLOCAL_AMFLAGS=-I m4'''<br />
<br />
There is probably a carriage return at the end of '''ACLOCAL_AMFLAGS=-I m4'''.<br />
<br />
If you are using git, add a `.gitattributes` file with the following lines<br />
<br />
*.sh -crlf<br />
*.ac -crlf<br />
*.am -crlf<br />
<br />
'''Note:''' this is enough for the bootstrap problem, but you will also have building problems with crlf enabled. You should probably change the '''core.autocrlf''' setting in your git configuration before cloning the repository.<br />
<br />
git config --global core.autocrlf input<br />
<br />
==== Compilation errors ====<br />
<br />
* '''vpp/app/version.h: No such file or directory'''<br />
<br />
See '''Bootstrap errors''' and change the git '''core.autocrlf''' setting.<br />
<br />
== Mac OS ==<br />
<br />
=== Building the First Time ===<br />
<br />
If you are working on a Mac, you will want to stand up a Linux VM. <br />
<br />
If you have a Linux VM already, please feel free to simply utilize the [[VPP/Pulling,_Building,_Running,_Hacking_and_Pushing_VPP_Code#Subsequent_Builds' | Linux' instructions]]. <br />
<br />
If you do not yet have a Linux VM, VPP provides a 'vagrant' setup to help you quickly and simply get one. For more information about using Vagrant on a command-line interface (CLI), see: https://docs.vagrantup.com/v2/cli/index.html<br />
<br />
==== Setting Up Vagrant ====<br />
<br />
Follow the instructions for [[DEV/Setting Up Vagrant | setting up Vagrant]]<br />
<br />
==== Choosing alternate hypervisor, distribution, and number of NICs (optional) ====<br />
<br />
By default vagrant will use the Virtualbox provider, and boot an Ubuntu 16.04 VM, and with two extra 'NICs' you<br />
can use to try out with VPP.<br />
<br />
You can change this by setting environment variables.<br />
<br />
===== Alternate Linux distro environment variable ===== <br />
To boot a Centos 7 VM (rather than the default Ubuntu 16.04 VM) <br />
<br />
export VPP_VAGRANT_DISTRO=centos7<br />
<br />
===== Alternate hypervisor environment variable ===== <br />
To use VMWare Fusion as your alternate vagrant provider:<br />
<br />
export VAGRANT_DEFAULT_PROVIDER=vmware_fusion<br />
<br />
'''Note:''' If you use vmware please see [https://www.vagrantup.com/docs/vmware/ Vagrant VMWare Provider], and be aware you will have to purchase the VMWare Vagrant plugin.<br />
<br />
===== Alternate number of extra NICs environment variable =====<br />
To have a different number of external NICs to use with VPP other than the default of 2 (five in this example):<br />
<br />
export VPP_VAGRANT_NICS=5<br />
<br />
==== Starting Vagrant ====<br />
<br />
To start your Vagrant VM:<br />
<br />
cd build-root/vagrant<br />
vagrant up<br />
<br />
This will result in a bunch of output as the VM is provisioned, vpp is built, and the vpp packages are installed on the VM and run.<br />
Once it completes, you can access the VM with:<br />
<br />
vagrant ssh<br />
<br />
Which will ssh you into your Vagrant VM.<br />
<br />
=== Subsequent Builds ===<br />
<br />
From your vagrant VM, to perform subsequent builds:<br />
<br />
cd /vpp<br />
<br />
which will take you to the top of your vpp tree, and then follow the [[VPP/Pulling,_Building,_Running,_Hacking_and_Pushing_VPP_Code#Subsequent_Builds |Linux instructions for subsequent builds. ]]<br />
<br />
= Running =<br />
<br />
== Running from package installation ==<br />
<br />
The process for starting vpp varies between systems using upstart (Ubuntu 14.04) and systems using systemd (Centos 7 and Ubuntu 16.04).<br />
<br />
=== Running vpp upstart systems (Ubuntu 14.04) ===<br />
<br />
sudo start vpp<br />
<br />
=== Running vpp on systemd systems (Centos 7, Ubuntu 16.04) ===<br />
<br />
sudo service vpp start<br />
<br />
== Taking vpp for a spin ==<br />
<br />
* [https://gerrit.fd.io/r/gitweb?p=vpp.git;a=blob;f=extras/vagrant/WELCOME Create a tuntap interface and trace a basic ping command]<br />
* Try out some of the [[VPP#Use_Cases|other use cases]]<br />
<br />
= Hacking =<br />
There are many [[VPP#Tutorials|VPP Tutorials]] including a lot of content on the [https://www.youtube.com/channel/UCIJ2OP6_i1npoHM39kxvwyg/playlists fd.io Youtube channel]<br />
<br />
= Pushing= <br />
<br />
== Pushing Code with git review ==<br />
<br />
=== Installing git review ===<br />
<br />
[https://www.mediawiki.org/wiki/Gerrit/git-review#Installation Instructions for installing git review on many different types of platforms]<br />
<br />
=== Initial Setup ===<br />
<br />
Clone your git repository, and in the root directory enter the following:<br />
<br />
git review -s<br />
git config user.name "Firstname Lastname"<br />
git config user.email your_email@some.domain<br />
<br />
This will set up your connection to Gerrit as well as your commit author and email. You can also pass the "--global" option if you want this to apply system wide rather then to the repo. For example:<br />
<br />
git config --global user.name "Firstname Lastname"<br />
git config --global user.email your_email@some.domain<br />
<br />
=== Recommended Local Topic Branch Structure ===<br />
<br />
It is recommended that when working on a change locally, you start from 'master' and pull a local topic branch:<br />
<br />
git checkout -b ${branch_name}<br />
<br />
Where the ${branch_name} is the name for the local branch for the thing you are working on. Note that generally the ${branch_name} becomes the 'Topic' on the gerrit when you push your code.<br />
<br />
=== Pushing Patches ===<br />
<br />
==== Commit to your local repo ====<br />
<br />
Once you are happy with your changes, commit them to your local branch:<br />
<br />
git add ${files}<br />
git commit -s<br />
<br />
The -s in your git commit adds a 'Signed-off-by' signifying that you have agreed to the standard Developer Certificate of Origin 1.1 (the same one used by the Linux Kernel):<br />
<pre><br />
Developer's Certificate of Origin 1.1<br />
<br />
By making a contribution to this project, I certify that:<br />
<br />
(a) The contribution was created in whole or in part by me and I<br />
have the right to submit it under the open source license<br />
indicated in the file; or<br />
<br />
(b) The contribution is based upon previous work that, to the best<br />
of my knowledge, is covered under an appropriate open source<br />
license and I have the right under that license to submit that<br />
work with modifications, whether created in whole or in part<br />
by me, under the same open source license (unless I am<br />
permitted to submit under a different license), as indicated<br />
in the file; or<br />
<br />
(c) The contribution was provided directly to me by some other<br />
person who certified (a), (b) or (c) and I have not modified<br />
it.<br />
<br />
(d) I understand and agree that this project and the contribution<br />
are public and that a record of the contribution (including all<br />
personal information I submit with it, including my sign-off) is<br />
maintained indefinitely and may be redistributed consistent with<br />
this project or the open source license(s) involved.<br />
</pre><br />
<br />
==== Pushing Patches with git review ====<br />
<br />
When you are ready to push your commit (or commits) to gerrit, you can simply type:<br />
<br />
git review<br />
<br />
and your commits will be pushed up to gerrit for code review.<br />
<br />
You have several options with git review, some handy ones include<br />
<br />
git review -f<br />
<br />
which will delete your local topic branch once you have pushed to gerrit (useful for keeping your local repo clean).<br />
<br />
Note: Gerrit will (unless instructed otherwise) rebase on your local master. It is a good idea to keep your local master synced up to origin/master via:<br />
<br />
git checkout master<br />
git pull<br />
<br />
==== How Do I Get My Patch Reviewed ? ====<br />
<br />
The simplest and most straightforward method is to send a mail to vpp-dev@lists.fd.io with the gerrit link to your patch, short description of the patch and asking to review it.<br />
<br />
If you want to find the precise person to look at the changes upfront, then you could use the MAINTAINERS file to figure out who this would be.<br />
You can use the script https://gerrit.fd.io/r/c/vpp/+/33139 to make this task easier. Then you can add that person to the reviewer list, and ask them to review your code.<br />
<br />
==== Retrieving a gerrit patch to review it ====<br />
<br />
Every patch in gerrit has a gerrit number, specified in its URL.<br />
Example:<br />
https://gerrit.fd.io/r/#/c/1282/<br />
is gerrit 1282.<br />
<br />
You can retrieve such a patch with:<br />
<br />
git review -d ${patch_number}<br />
<br />
Example:<br />
For patch 1282 this would be:<br />
<br />
git review -d 1282<br />
<br />
<br />
==== Revising a gerrit patch ====<br />
If you have retrieved a gerrit patch, and wish to revise it, you do not simply want to push a new commit on top of it (which will result in a new gerrit).<br />
Instead, if you are revising a gerrit patch, you can simply --amend it with<br />
<br />
git commit -s --amend<br />
<br />
Which will reuse the 'ChangeId' in the commit message of the commit you are revising, and add it as a new Patch Set to Gerrit.<br />
<br />
= Gerrit won't rebase my patch, now what? =<br />
<br />
Use "git review -d" which makes it reasonably painless to push the results upstream as a new patch-set.<br />
<br />
In a fresh tree, do the following:<br />
<br />
git review -d <Gerrit change #><br />
git rebase origin/master<br />
while (conflicts)<br />
{<br />
<fix conflicts><br />
git rebase --continue<br />
}<br />
git review<br />
<br />
= Jenkins build issues that are not code related? =<br />
<br />
=== Try OpenStack jenkins builder ===<br />
<br />
Add the word os-check or os-verify as a gerrit comment on verify jobs.<br />
<br />
Add the word os-merge as a gerrit comment on merge jobs.<br />
<br />
=== Try Try Again ===<br />
<br />
Add the word recheck as a gerrit comment.<br />
<br />
If your sure the problem is container build related you can direct email to infra-container@fd.io<br />
<br />
=== Open an Infra trouble ticket ===<br />
<br />
Follow<br />
https://wiki.fd.io/view/Getting_LF_IT_Help_for_FD.IO<br />
<br />
Explain the problem your having and what you have tried.<br />
<br />
= Random Hints and Kinks for KVM usage =<br />
For anyone wishing to build on a virtual machine and use KVM, this information might be useful: [[VPP/Random Hints and Kinks for KVM usage]]</div>Ayourtchhttps://wiki.fd.io/view/VPP/CommitterTasks/PullThrottleBranchVPP/CommitterTasks/PullThrottleBranch2022-01-19T13:05:19Z<p>Ayourtch: /* Pulling a VPP Throttle Branch */</p>
<hr />
<div>__TOC__<br />
== VPP RC1 pre-Milestone Tasklist ==<br />
<br />
1. At least a week prior to the RC1 date, email a reminder to vpp-dev@lists.fd.io about VPP RC1 Milestone. See [https://lists.fd.io/g/vpp-dev/message/7780 an example email] or [https://lists.fd.io/g/vpp-dev/topic/rc1_branch_in_one_week/16305776 another example email].<br />
<br />
2. To be done before RC1: <br />
<br />
:a. Follow-up that ci-management change below is merged<br />
:b. Verify that packagecloud.io repository fdio/YYMM (as corresponding to the branch stable/YYMM that is being created) exists and follow up with Ed Warnicke to ensure it is created and has "lf-fdio" added as a collaborator.<br />
:c. Prepare "first commit of rc0 of next release" commit on master branch so it is ready for merge + tagging at the time of the RC1.<br />
<br />
3. Resend reminder about (1) a day or two prior to the RC1 date.<br />
<br />
== Pulling a VPP Throttle Branch ==<br />
<br />
'''NOTE''': Steps 3 and 4 can be done any time prior to RC1 branch day. At the very least, discuss the requirements with the individuals ahead of time to set the correct expectations.<br />
<br />
3. nexus - no longer needed.<br />
<br />
4. Request Ed Warnicke create the package cloud repos. Send and email to Ed Warnicke (eaw@cisco.com and/or hagbard@gmail.com) reminding him to create the package cloud repositories for the new release, and have lf-fdio as a collaborator.<br />
Since 21.01RC1 the verify/merge jobs do not require the packages to be present in the deb repos.<br />
<br />
5. '''Jenkins''': (can be done and merged some days <b>before</b> the date of pulling the branch) - In the ci-management Git repo, edit <code>jjb/vpp/vpp.yaml</code>:<br />
<br />
:a. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n49<br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1801'':<br />
- '1801':<br />
branch: 'stable/1801’'<br />
repo-stream-part: 'stable.1801'<br />
<br />
:b. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n87<br />
::likewise add a new stream here. Exactly the same idea as the previous step.<br />
<br />
:c. '''Example:''' https://gerrit.fd.io/r/9934/<br />
<br />
:d. Similarly, edit <code>jjb/vpp/docs.yaml</code><br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1904'':<br />
- '1904':<br />
branch: 'stable/1904’'<br />
repo-stream-part: 'stable.1904'<br />
<br />
:e. '''Example:''' https://gerrit.fd.io/r/#/c/18982/<br />
<br />
<br />
6. (since 22.02) On master branch, edit docs/aboutvpp/releasenotes/index.rst and remove the oldest version designator. Add this same version designator at the top of the docs/aboutvpp/releasenotes/past.rst file. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/c/vpp/+/34967<br />
<br />
<strike>6. (before 22.02) On master branch, edit vpp/RELEASE.md and add a placeholder for the next release and merge the patch on master and edit vpp/doxygen/test_framework_doc.md and add a new link to the next release's test framework documentation. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/#/c/18803/1/RELEASE.md<br />
::https://gerrit.fd.io/r/#/c/19292/1/doxygen/test_framework_doc.md<br />
</strike><br />
<br />
7. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] for the next release RC0 (e.g. <code>1804-rc0</code>) on master, using the hash of the above commit as an explicit argument for tagging.<br />
<br />
:a. Verify that the tag shows up by looking for it at https://git.fd.io/vpp/log/ - it usually takes a few minutes. <br />
:b. Remerge the last merged patch on master - you can see the "to be" version in the build logs for the merge jobs.<br />
:c. When the remerge of the last patch on master is complete, go look for package with the correct versions at packagecloud.io/fdio/master<br />
:d. Follow instructions on [[VPP/Installing_VPP_binaries_from_packages]] and verify that packages with the new versions are installed on packagecloud.io<br />
<br />
There may be existing patches from others waiting to be merged on master - then instead of a remerge of the patch from step (6), if that patch is being merged, it can be used for sanity check instead of patch from step (6).<br />
<br />
8. Create a new branch ''stable/YYMM'' (example: ''stable/1801'') in the Gerrit web UI and specify the hash of the commit JUST BEFORE the one you merged in step 6.<br />
<br />
:a. https://gerrit.fd.io/r/#/admin/projects/vpp,branches<br />
<br />
9. On the new ''stable/YYMM'' branch (example: ''stable/1801'') prepare a commit which updates the <code>.gitreview</code> to reflect the correct branch. (You will need a "git pull" in your local repo to see the ref for the newly created branch).<br />
<br />
:a. Examples: <br />
::https://gerrit.fd.io/r/c/vpp/+/34968<br />
::https://gerrit.fd.io/r/#/c/1157/1/.gitreview<br />
::https://gerrit.fd.io/r/#/c/9937/<br />
<br />
:b. Merge patch onto the new stable branch<br />
<br />
'''NOTE''': Verify that this patch is in fact on the new stable branch, and not on master!<br />
<br />
10. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] (<code>v18.01-rc1</code>) on ''stable/1801'' at the point of the patch you just merged.<br />
<br />
'''NOTE:''' If the verification steps in 11 & 12 don't happen by the end of the day, it is best to send an email re-opening master to commits.<br />
<br />
11. Verify that the packagecloud.io repos have packages with the correct version and are working<br />
:a. Remerge the patch from step 9 after you push the tag (you can verify the to-be version of artifacts in the beginning of the VPP build log messages)<br />
<br />
:b. When the remerge from step 9 is complete, verify that the correct package versions have been uploaded onto the packagecloud.io/fdio/XXYY repository - if the job succeeded, the packages typically will be there. You can verify by visiting the packagecloud.io web interface and checking there.<br />
<br />
:c. Verify that the packages for the supported OSes are installable from the packagecloud.io/fdio/XXYY repo<br />
<br />
:d. Update the [[VPP/Installing_VPP_binaries_from_packages | Installing VPP Binaries from Packages]] Wiki page with instructions for the new branch, and test that you can install packages from packagecloud.io<br />
<br />
12. Send the all-clear message. [https://lists.fd.io/g/vpp-dev/message/7811 Example].<br />
<br />
13. If the Jira steps from [[VPP/CommitterTasks/ApiFreeze#Jira_versions]] didn't happen yet, do them now.<br />
<br />
Amend as necessary with any caveats; for example the 1804 RC1 milestone opened master and stable on different days while minor issues were resolved.<br />
<br />
== Historical Recipes ==<br />
<br />
[https://docs.google.com/document/d/1PKFUx1cRzEETOPO65PTrkXZf90ixiTpf3K9pkn2mPf8/edit?usp=sharing Steps for cutting Master to XXYY-rc0]<br />
<br />
[https://docs.google.com/spreadsheets/d/1hyiGLNEZwM1EW496foW7_SoNWtQQs1a2JFGybUZ97U4/edit?usp=sharing VPP 16.09-RC0 cut punchlist]</div>Ayourtchhttps://wiki.fd.io/view/VPP/CommitterTasks/PullThrottleBranchVPP/CommitterTasks/PullThrottleBranch2022-01-19T13:04:07Z<p>Ayourtch: /* Pulling a VPP Throttle Branch */</p>
<hr />
<div>__TOC__<br />
== VPP RC1 pre-Milestone Tasklist ==<br />
<br />
1. At least a week prior to the RC1 date, email a reminder to vpp-dev@lists.fd.io about VPP RC1 Milestone. See [https://lists.fd.io/g/vpp-dev/message/7780 an example email] or [https://lists.fd.io/g/vpp-dev/topic/rc1_branch_in_one_week/16305776 another example email].<br />
<br />
2. To be done before RC1: <br />
<br />
:a. Follow-up that ci-management change below is merged<br />
:b. Verify that packagecloud.io repository fdio/YYMM (as corresponding to the branch stable/YYMM that is being created) exists and follow up with Ed Warnicke to ensure it is created and has "lf-fdio" added as a collaborator.<br />
:c. Prepare "first commit of rc0 of next release" commit on master branch so it is ready for merge + tagging at the time of the RC1.<br />
<br />
3. Resend reminder about (1) a day or two prior to the RC1 date.<br />
<br />
== Pulling a VPP Throttle Branch ==<br />
<br />
'''NOTE''': Steps 3 and 4 can be done any time prior to RC1 branch day. At the very least, discuss the requirements with the individuals ahead of time to set the correct expectations.<br />
<br />
3. nexus - no longer needed.<br />
<br />
4. Request Ed Warnicke create the package cloud repos. Send and email to Ed Warnicke (eaw@cisco.com and/or hagbard@gmail.com) reminding him to create the package cloud repositories for the new release, and have lf-fdio as a collaborator.<br />
Since 21.01RC1 the verify/merge jobs do not require the packages to be present in the deb repos.<br />
<br />
5. '''Jenkins''': (can be done and merged some days <b>before</b> the date of pulling the branch) - In the ci-management Git repo, edit <code>jjb/vpp/vpp.yaml</code>:<br />
<br />
:a. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n49<br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1801'':<br />
- '1801':<br />
branch: 'stable/1801’'<br />
repo-stream-part: 'stable.1801'<br />
<br />
:b. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n87<br />
::likewise add a new stream here. Exactly the same idea as the previous step.<br />
<br />
:c. '''Example:''' https://gerrit.fd.io/r/9934/<br />
<br />
:d. Similarly, edit <code>jjb/vpp/docs.yaml</code><br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1904'':<br />
- '1904':<br />
branch: 'stable/1904’'<br />
repo-stream-part: 'stable.1904'<br />
<br />
:e. '''Example:''' https://gerrit.fd.io/r/#/c/18982/<br />
<br />
<br />
6. (since 22.02) On master branch, edit docs/aboutvpp/releasenotes/index.rst and remove the oldest version designator. Add this same version designator at the top of the docs/aboutvpp/releasenotes/past.rst file. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/c/vpp/+/34967<br />
<br />
<strike>6. (before 22.02) On master branch, edit vpp/RELEASE.md and add a placeholder for the next release and merge the patch on master and edit vpp/doxygen/test_framework_doc.md and add a new link to the next release's test framework documentation. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/#/c/18803/1/RELEASE.md<br />
::https://gerrit.fd.io/r/#/c/19292/1/doxygen/test_framework_doc.md<br />
</strike><br />
<br />
7. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] for the next release RC0 (e.g. <code>1804-rc0</code>) on master, using the hash of the above commit as an explicit argument for tagging.<br />
<br />
:a. Verify that the tag shows up by looking for it at https://git.fd.io/vpp/log/ - it usually takes a few minutes. <br />
:b. Remerge the last merged patch on master - you can see the "to be" version in the build logs for the merge jobs.<br />
:c. When the remerge of the last patch on master is complete, go look for package with the correct versions at packagecloud.io/fdio/master<br />
:d. Follow instructions on [[VPP/Installing_VPP_binaries_from_packages]] and verify that packages with the new versions are installed on packagecloud.io<br />
<br />
There may be existing patches from others waiting to be merged on master - then instead of a remerge of the patch from step (6), if that patch is being merged, it can be used for sanity check instead of patch from step (6).<br />
<br />
8. Create a new branch ''stable/YYMM'' (example: ''stable/1801'') in the Gerrit web UI and specify the hash of the commit JUST BEFORE the one you merged in step 6.<br />
<br />
:a. https://gerrit.fd.io/r/#/admin/projects/vpp,branches<br />
<br />
9. On the new ''stable/YYMM'' branch (example: ''stable/1801'') prepare a commit which updates the <code>.gitreview</code> to reflect the correct branch. (You will need a "git pull" in your local repo to see the ref for the newly created branch).<br />
<br />
:a. Examples: <br />
::https://gerrit.fd.io/r/#/c/1157/1/.gitreview<br />
::https://gerrit.fd.io/r/#/c/9937/<br />
<br />
:b. Merge patch onto the new stable branch<br />
<br />
'''NOTE''': Verify that this patch is in fact on the new stable branch, and not on master!<br />
<br />
10. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] (<code>v18.01-rc1</code>) on ''stable/1801'' at the point of the patch you just merged.<br />
<br />
'''NOTE:''' If the verification steps in 11 & 12 don't happen by the end of the day, it is best to send an email re-opening master to commits.<br />
<br />
11. Verify that the packagecloud.io repos have packages with the correct version and are working<br />
:a. Remerge the patch from step 9 after you push the tag (you can verify the to-be version of artifacts in the beginning of the VPP build log messages)<br />
<br />
:b. When the remerge from step 9 is complete, verify that the correct package versions have been uploaded onto the packagecloud.io/fdio/XXYY repository - if the job succeeded, the packages typically will be there. You can verify by visiting the packagecloud.io web interface and checking there.<br />
<br />
:c. Verify that the packages for the supported OSes are installable from the packagecloud.io/fdio/XXYY repo<br />
<br />
:d. Update the [[VPP/Installing_VPP_binaries_from_packages | Installing VPP Binaries from Packages]] Wiki page with instructions for the new branch, and test that you can install packages from packagecloud.io<br />
<br />
12. Send the all-clear message. [https://lists.fd.io/g/vpp-dev/message/7811 Example].<br />
<br />
13. If the Jira steps from [[VPP/CommitterTasks/ApiFreeze#Jira_versions]] didn't happen yet, do them now.<br />
<br />
Amend as necessary with any caveats; for example the 1804 RC1 milestone opened master and stable on different days while minor issues were resolved.<br />
<br />
== Historical Recipes ==<br />
<br />
[https://docs.google.com/document/d/1PKFUx1cRzEETOPO65PTrkXZf90ixiTpf3K9pkn2mPf8/edit?usp=sharing Steps for cutting Master to XXYY-rc0]<br />
<br />
[https://docs.google.com/spreadsheets/d/1hyiGLNEZwM1EW496foW7_SoNWtQQs1a2JFGybUZ97U4/edit?usp=sharing VPP 16.09-RC0 cut punchlist]</div>Ayourtchhttps://wiki.fd.io/view/VPP/CommitterTasks/PullThrottleBranchVPP/CommitterTasks/PullThrottleBranch2022-01-19T13:03:22Z<p>Ayourtch: /* Pulling a VPP Throttle Branch */</p>
<hr />
<div>__TOC__<br />
== VPP RC1 pre-Milestone Tasklist ==<br />
<br />
1. At least a week prior to the RC1 date, email a reminder to vpp-dev@lists.fd.io about VPP RC1 Milestone. See [https://lists.fd.io/g/vpp-dev/message/7780 an example email] or [https://lists.fd.io/g/vpp-dev/topic/rc1_branch_in_one_week/16305776 another example email].<br />
<br />
2. To be done before RC1: <br />
<br />
:a. Follow-up that ci-management change below is merged<br />
:b. Verify that packagecloud.io repository fdio/YYMM (as corresponding to the branch stable/YYMM that is being created) exists and follow up with Ed Warnicke to ensure it is created and has "lf-fdio" added as a collaborator.<br />
:c. Prepare "first commit of rc0 of next release" commit on master branch so it is ready for merge + tagging at the time of the RC1.<br />
<br />
3. Resend reminder about (1) a day or two prior to the RC1 date.<br />
<br />
== Pulling a VPP Throttle Branch ==<br />
<br />
'''NOTE''': Steps 3 and 4 can be done any time prior to RC1 branch day. At the very least, discuss the requirements with the individuals ahead of time to set the correct expectations.<br />
<br />
3. nexus - no longer needed.<br />
<br />
4. Request Ed Warnicke create the package cloud repos. Send and email to Ed Warnicke (eaw@cisco.com and/or hagbard@gmail.com) reminding him to create the package cloud repositories for the new release, and have lf-fdio as a collaborator.<br />
Since 21.01RC1 the verify/merge jobs do not require the packages to be present in the deb repos.<br />
<br />
5. '''Jenkins''': (can be done and merged some days <b>before</b> the date of pulling the branch) - In the ci-management Git repo, edit <code>jjb/vpp/vpp.yaml</code>:<br />
<br />
:a. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n49<br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1801'':<br />
- '1801':<br />
branch: 'stable/1801’'<br />
repo-stream-part: 'stable.1801'<br />
<br />
:b. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n87<br />
::likewise add a new stream here. Exactly the same idea as the previous step.<br />
<br />
:c. '''Example:''' https://gerrit.fd.io/r/9934/<br />
<br />
:d. Similarly, edit <code>jjb/vpp/docs.yaml</code><br />
::add a new 'stream' for your new ''YYMM''. Example for ''stable/1904'':<br />
- '1904':<br />
branch: 'stable/1904’'<br />
repo-stream-part: 'stable.1904'<br />
<br />
:e. '''Example:''' https://gerrit.fd.io/r/#/c/18982/<br />
<br />
<br />
6. (since 22.02) On master branch, edit docs/aboutvpp/releasenotes/index.rst and remove the oldest version designator. Add this same version designator at the top of the docs/aboutvpp/releasenotes/past.rst file. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/c/vpp/+/34967<br />
<br />
6. (before 22.02) On master branch, edit vpp/RELEASE.md and add a placeholder for the next release and merge the patch on master and edit vpp/doxygen/test_framework_doc.md and add a new link to the next release's test framework documentation. This will be the commit that the next release -rc0 tag is placed on.<br />
:Examples: <br />
::https://gerrit.fd.io/r/#/c/18803/1/RELEASE.md<br />
::https://gerrit.fd.io/r/#/c/19292/1/doxygen/test_framework_doc.md<br />
<br />
7. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] for the next release RC0 (e.g. <code>1804-rc0</code>) on master, using the hash of the above commit as an explicit argument for tagging.<br />
<br />
:a. Verify that the tag shows up by looking for it at https://git.fd.io/vpp/log/ - it usually takes a few minutes. <br />
:b. Remerge the last merged patch on master - you can see the "to be" version in the build logs for the merge jobs.<br />
:c. When the remerge of the last patch on master is complete, go look for package with the correct versions at packagecloud.io/fdio/master<br />
:d. Follow instructions on [[VPP/Installing_VPP_binaries_from_packages]] and verify that packages with the new versions are installed on packagecloud.io<br />
<br />
There may be existing patches from others waiting to be merged on master - then instead of a remerge of the patch from step (6), if that patch is being merged, it can be used for sanity check instead of patch from step (6).<br />
<br />
8. Create a new branch ''stable/YYMM'' (example: ''stable/1801'') in the Gerrit web UI and specify the hash of the commit JUST BEFORE the one you merged in step 6.<br />
<br />
:a. https://gerrit.fd.io/r/#/admin/projects/vpp,branches<br />
<br />
9. On the new ''stable/YYMM'' branch (example: ''stable/1801'') prepare a commit which updates the <code>.gitreview</code> to reflect the correct branch. (You will need a "git pull" in your local repo to see the ref for the newly created branch).<br />
<br />
:a. Examples: <br />
::https://gerrit.fd.io/r/#/c/1157/1/.gitreview<br />
::https://gerrit.fd.io/r/#/c/9937/<br />
<br />
:b. Merge patch onto the new stable branch<br />
<br />
'''NOTE''': Verify that this patch is in fact on the new stable branch, and not on master!<br />
<br />
10. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] (<code>v18.01-rc1</code>) on ''stable/1801'' at the point of the patch you just merged.<br />
<br />
'''NOTE:''' If the verification steps in 11 & 12 don't happen by the end of the day, it is best to send an email re-opening master to commits.<br />
<br />
11. Verify that the packagecloud.io repos have packages with the correct version and are working<br />
:a. Remerge the patch from step 9 after you push the tag (you can verify the to-be version of artifacts in the beginning of the VPP build log messages)<br />
<br />
:b. When the remerge from step 9 is complete, verify that the correct package versions have been uploaded onto the packagecloud.io/fdio/XXYY repository - if the job succeeded, the packages typically will be there. You can verify by visiting the packagecloud.io web interface and checking there.<br />
<br />
:c. Verify that the packages for the supported OSes are installable from the packagecloud.io/fdio/XXYY repo<br />
<br />
:d. Update the [[VPP/Installing_VPP_binaries_from_packages | Installing VPP Binaries from Packages]] Wiki page with instructions for the new branch, and test that you can install packages from packagecloud.io<br />
<br />
12. Send the all-clear message. [https://lists.fd.io/g/vpp-dev/message/7811 Example].<br />
<br />
13. If the Jira steps from [[VPP/CommitterTasks/ApiFreeze#Jira_versions]] didn't happen yet, do them now.<br />
<br />
Amend as necessary with any caveats; for example the 1804 RC1 milestone opened master and stable on different days while minor issues were resolved.<br />
<br />
== Historical Recipes ==<br />
<br />
[https://docs.google.com/document/d/1PKFUx1cRzEETOPO65PTrkXZf90ixiTpf3K9pkn2mPf8/edit?usp=sharing Steps for cutting Master to XXYY-rc0]<br />
<br />
[https://docs.google.com/spreadsheets/d/1hyiGLNEZwM1EW496foW7_SoNWtQQs1a2JFGybUZ97U4/edit?usp=sharing VPP 16.09-RC0 cut punchlist]</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_22.02Projects/vpp/Release Plans/Release Plan 22.022021-11-17T11:43:40Z<p>Ayourtch: /* Release Milestones */</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 22.02<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<span style="font-size:120%">The schedule below is TENTATIVE, to be confirmed at the next VPP community meeting.</span><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2021-01-19<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2022-02-09 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Release gate<br />
| 2022-02-16 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release<br />
| 2022-02-23 (RC2+14)<br />
| 22.02 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 22.02 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2021-11-17T11:41:40Z<p>Ayourtch: /* Previous Release Plans */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP Reference documentation]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
<br />
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]. It provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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.<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the way to share version independant information about VPP, like release management, community meetings dates, and more.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|Monthly VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.02| 22.02 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2021-11-17T11:41:19Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP Reference documentation]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
<br />
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]. It provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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.<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the way to share version independant information about VPP, like release management, community meetings dates, and more.<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|Monthly VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_22.02| 22.02 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[https://fd.io/docs/vpp/master/cli-reference/gettingstarted/index.html VPP Command-line Interface (CLI) User Guide]<br />
<br />
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_22.02Projects/vpp/Release Plans/Release Plan 22.022021-11-15T15:14:29Z<p>Ayourtch: Created page with "== Introduction == This page tracks release information for 22.02 == Release Deliverables == See https://github.com/vpp-dev/vpp-release-notes for information. == Release M..."</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 22.02<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2021-01-19<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted.<br />
|-<br />
| RC2<br />
| 2022-02-09 (RC1+21)<br />
| Second artifacts posted.<br />
|-<br />
| Release gate<br />
| 2022-02-16 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release<br />
| 2022-02-23 (RC2+14)<br />
| 22.02 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 22.02 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket<br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_21.10Projects/vpp/Release Plans/Release Plan 21.102021-09-16T12:22:45Z<p>Ayourtch: /* Release Milestoneslink title */</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 21.10<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone. <br />
<br />
<!-- It is not uncommon for a project as part of its release process to have Milestones (M0, M1, M2, RC0, RC1) with corresponding events which occur at various milestones (API Freeze, Code Freeze, etc). This is the place to list Milestones, their expected dates, and their expected events (whether process events, API Freeze, or noting a deliverable is coming in at a particular event. --><br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2021-09-22<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted. <br />
|-<br />
| RC2 <br />
| 2021-10-13 (RC1+21)<br />
| Second artifacts posted. <br />
|-<br />
| Release gate<br />
| 2021-10-20 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release <br />
| 2021-10-27 (RC2+14)<br />
| 21.10 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 21.10 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket <br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_21.10Projects/vpp/Release Plans/Release Plan 21.102021-09-16T12:22:26Z<p>Ayourtch: /* Introduction */</p>
<hr />
<div>== Introduction ==<br />
<br />
This page tracks release information for 21.10<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
<br />
== Release Milestones[http://www.example.com link title] ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone. <br />
<br />
<!-- It is not uncommon for a project as part of its release process to have Milestones (M0, M1, M2, RC0, RC1) with corresponding events which occur at various milestones (API Freeze, Code Freeze, etc). This is the place to list Milestones, their expected dates, and their expected events (whether process events, API Freeze, or noting a deliverable is coming in at a particular event. --><br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2021-09-22<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted. <br />
|-<br />
| RC2 <br />
| 2021-10-13 (RC1+21)<br />
| Second artifacts posted. <br />
|-<br />
| Release gate<br />
| 2021-10-20 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release <br />
| 2021-10-27 (RC2+14)<br />
| 21.10 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 21.10 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket <br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_21.10Projects/vpp/Release Plans/Release Plan 21.102021-08-26T18:49:09Z<p>Ayourtch: /* Release Milestones */</p>
<hr />
<div>== Introduction ==<br />
<br />
TENTATIVE. This page tracks release information for 21.10<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
<br />
== Release Milestones[http://www.example.com link title] ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone. <br />
<br />
<!-- It is not uncommon for a project as part of its release process to have Milestones (M0, M1, M2, RC0, RC1) with corresponding events which occur at various milestones (API Freeze, Code Freeze, etc). This is the place to list Milestones, their expected dates, and their expected events (whether process events, API Freeze, or noting a deliverable is coming in at a particular event. --><br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2021-09-22<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted. <br />
|-<br />
| RC2 <br />
| 2021-10-13 (RC1+21)<br />
| Second artifacts posted. <br />
|-<br />
| Release gate<br />
| 2021-10-20 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release <br />
| 2021-10-27 (RC2+14)<br />
| 21.10 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 21.10 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket <br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2021-07-13T15:09:23Z<p>Ayourtch: /* Previous Release Plans */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP User Documents]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
* [https://docs.fd.io/vpp/ VPP Source Code Documents].<br />
<br />
VPP is the core technology behind the [https://fd.io 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]. The Fd.io main site also provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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 [https://fd.io/docs/vpp/master/gettingstarted/users/index.html Getting Started as a VPP User]. To get started as a VPP developer look at [https://fd.io/docs/vpp/master/gettingstarted/developers/index.html Get Started as a VPP Developer]. To contribute to the user documents look at [https://fd.io/docs/vpp/master/gettingstarted/writingdocs/index.html Writing VPP User Documents].<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the simplest and quickest way for advanced developers to share use cases, release plans, project information and more.<br />
<br />
The [https://docs.fd.io/vpp/20.01/ VPP Source Code] is documented using [http://www.doxygen.nl Doxygen]. The most complete description of the [https://docs.fd.io/vpp/20.01/clicmd.html VPP debug CLI] is part of these documents. Learn how to document the VPP source code at [[VPP/Documentation | Writing VPP Source Code Documents]].<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|Monthly VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[[VPP/Command-line Interface (CLI) Guide|VPP Command-line Interface (CLI) User Guide]]<br />
<br />
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2021-07-13T15:08:42Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP User Documents]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
* [https://docs.fd.io/vpp/ VPP Source Code Documents].<br />
<br />
VPP is the core technology behind the [https://fd.io 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]. The Fd.io main site also provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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 [https://fd.io/docs/vpp/master/gettingstarted/users/index.html Getting Started as a VPP User]. To get started as a VPP developer look at [https://fd.io/docs/vpp/master/gettingstarted/developers/index.html Get Started as a VPP Developer]. To contribute to the user documents look at [https://fd.io/docs/vpp/master/gettingstarted/writingdocs/index.html Writing VPP User Documents].<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the simplest and quickest way for advanced developers to share use cases, release plans, project information and more.<br />
<br />
The [https://docs.fd.io/vpp/20.01/ VPP Source Code] is documented using [http://www.doxygen.nl Doxygen]. The most complete description of the [https://docs.fd.io/vpp/20.01/clicmd.html VPP debug CLI] is part of these documents. Learn how to document the VPP source code at [[VPP/Documentation | Writing VPP Source Code Documents]].<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|Monthly VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.10 | 21.10 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[[VPP/Command-line Interface (CLI) Guide|VPP Command-line Interface (CLI) User Guide]]<br />
<br />
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_21.10Projects/vpp/Release Plans/Release Plan 21.102021-07-12T11:55:17Z<p>Ayourtch: First cut of the release plan for 21.10</p>
<hr />
<div>== Introduction ==<br />
<br />
TENTATIVE. This page tracks release information for 21.10<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<br />
The milestones are <font color='red'>TENTATIVE</font><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone. <br />
<br />
<!-- It is not uncommon for a project as part of its release process to have Milestones (M0, M1, M2, RC0, RC1) with corresponding events which occur at various milestones (API Freeze, Code Freeze, etc). This is the place to list Milestones, their expected dates, and their expected events (whether process events, API Freeze, or noting a deliverable is coming in at a particular event. --><br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2020-09-22<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted. <br />
|-<br />
| RC2 <br />
| 2021-10-13 (RC1+21)<br />
| Second artifacts posted. <br />
|-<br />
| Release gate<br />
| 2021-10-20 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release <br />
| 2021-10-27 (RC2+14)<br />
| 21.10 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 21.10 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket <br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/Projects/vpp/Release_Plans/Release_Plan_21.06Projects/vpp/Release Plans/Release Plan 21.062021-04-28T14:18:28Z<p>Ayourtch: /* Release Milestones */</p>
<hr />
<div>== Introduction ==<br />
<br />
TENTATIVE. This page tracks release information for 21.06<br />
<br />
== Release Deliverables ==<br />
See https://github.com/vpp-dev/vpp-release-notes for information.<br />
<br />
<br />
<!--<br />
{|class="wikitable"<br />
! Name<br />
! Description<br />
! Status<br />
<br />
<br />
|-<br />
| rowspan="1" | feature name || feature content || status<br />
|-<br />
| rowspan="1" | Address Sanitizer || Initial support for Address Sanitizer. Only heap for now. || Merged<br />
|-<br />
| rowspan="1" | mlx5 direct verb rdma driver || Optimized datapath for ConnectX4/5/6 adapters || Work in progress<br />
<br />
|}<br />
<br />
--><br />
<br />
== Release Milestones ==<br />
<!-- <span style="font-size:120%">The schedule below is FINAL, agreed on during the VPP community meeting 13 Oct 2020.</span> --><br />
<br />
The milestones are <font color='red'>FINAL</font><br />
<br />
The milestones' start time will be at <b>12:00 UTC</b> on the day of the milestone.<br />
<br />
As agreed during the community meeting, this will be the first release without the F0 milestone - the production APIs are now<br />
following the change process, and the in-progress APIs should not be relied upon in any sense other than for the proof of concepts/testing,<br />
so the freeze does not make sense.<br />
<br />
The individual common sense with respect to risk management still applies, every maintainer/committer should follow their good<br />
judgement and make the decisions they deem will result in the best release. <br />
<br />
<!-- It is not uncommon for a project as part of its release process to have Milestones (M0, M1, M2, RC0, RC1) with corresponding events which occur at various milestones (API Freeze, Code Freeze, etc). This is the place to list Milestones, their expected dates, and their expected events (whether process events, API Freeze, or noting a deliverable is coming in at a particular event. --><br />
<br />
{| class="wikitable"<br />
! Milestone<br />
! Date<br />
! Deliverables<br />
|-<br />
| RC1<br />
| 2020-05-26<br />
| Code complete, pull first release throttle branch, only bug fixes accepted on throttle train. After pull: main branch reopens for new feature / risky commits. First artifacts posted. <br />
|-<br />
| RC2 <br />
| 2021-06-16 (RC1+21)<br />
| Second artifacts posted. <br />
|-<br />
| Release gate<br />
| 2021-06-23 (RC2+7)<br />
| Deadline for patches destined for the release<br />
|-<br />
| Formal Release <br />
| 2021-06-30 (RC2+14)<br />
| 21.06 release artifacts available.<br />
|}<br />
<br />
<span style="color:#ff0000; font-size:75%">''NOTE: Dates chosen based on:''</span><br />
* <span style="color:#ff0000; font-size:75%">''end-month release''</span><br />
* <span style="color:#ff0000; font-size:75%">''milestone + days''</span><br />
* <span style="color:#ff0000; font-size:75%">''release date after VPP community meeting, for discussion, go/no-go''</span><br />
<br />
== Once we've pulled the 21.06 release throttle ==<br />
We need to be disciplined with respect to bugfix commits. Here are a few common-sense suggestions:<br />
<br />
* All bug fixes must be double-committed to the release throttle, and 20.09 LTS, and the master branch<br />
** Commit first to the master branch, then "git cherry-pick" into release throttle<br />
** Manual merges may be required, depending on the degree of divergence between throttle and master<br />
* All externally found bug fixes need to have a Jira ticket <br />
** Please put Jira IDs into the commit messages.<br />
** Please use the same Jira ID for commits into the stable branch and master.<br />
<br />
<span style="color:#ff0000; font-size:100%"><div style="text-align:center">NEED JIRA/CONFLUENCE IMPORT HERE</div></span><br />
<br />
== Expected Dependencies on Other Projects ==</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2021-04-15T17:02:52Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP User Documents]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
* [https://docs.fd.io/vpp/ VPP Source Code Documents].<br />
<br />
VPP is the core technology behind the [https://fd.io 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]. The Fd.io main site also provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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 [https://fd.io/docs/vpp/master/gettingstarted/users/index.html Getting Started as a VPP User]. To get started as a VPP developer look at [https://fd.io/docs/vpp/master/gettingstarted/developers/index.html Get Started as a VPP Developer]. To contribute to the user documents look at [https://fd.io/docs/vpp/master/gettingstarted/writingdocs/index.html Writing VPP User Documents].<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the simplest and quickest way for advanced developers to share use cases, release plans, project information and more.<br />
<br />
The [https://docs.fd.io/vpp/20.01/ VPP Source Code] is documented using [http://www.doxygen.nl Doxygen]. The most complete description of the [https://docs.fd.io/vpp/20.01/clicmd.html VPP debug CLI] is part of these documents. Learn how to document the VPP source code at [[VPP/Documentation | Writing VPP Source Code Documents]].<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|Monthly VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results] or [https://github.com/vpp-dev/vpp-coverity-report one-page report sorted by maintainer]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[[VPP/Command-line Interface (CLI) Guide|VPP Command-line Interface (CLI) User Guide]]<br />
<br />
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2021-02-17T15:11:05Z<p>Ayourtch: /* Get Involved */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP User Documents]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
* [https://docs.fd.io/vpp/ VPP Source Code Documents].<br />
<br />
VPP is the core technology behind the [https://fd.io 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]. The Fd.io main site also provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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 [https://fd.io/docs/vpp/master/gettingstarted/users/index.html Getting Started as a VPP User]. To get started as a VPP developer look at [https://fd.io/docs/vpp/master/gettingstarted/developers/index.html Get Started as a VPP Developer]. To contribute to the user documents look at [https://fd.io/docs/vpp/master/gettingstarted/writingdocs/index.html Writing VPP User Documents].<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the simplest and quickest way for advanced developers to share use cases, release plans, project information and more.<br />
<br />
The [https://docs.fd.io/vpp/20.01/ VPP Source Code] is documented using [http://www.doxygen.nl Doxygen]. The most complete description of the [https://docs.fd.io/vpp/20.01/clicmd.html VPP debug CLI] is part of these documents. Learn how to document the VPP source code at [[VPP/Documentation | Writing VPP Source Code Documents]].<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|Monthly VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.06 | 21.06 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[[VPP/Command-line Interface (CLI) Guide|VPP Command-line Interface (CLI) User Guide]]<br />
<br />
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2021-02-17T15:10:45Z<p>Ayourtch: /* Previous Release Plans */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP User Documents]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
* [https://docs.fd.io/vpp/ VPP Source Code Documents].<br />
<br />
VPP is the core technology behind the [https://fd.io 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]. The Fd.io main site also provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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 [https://fd.io/docs/vpp/master/gettingstarted/users/index.html Getting Started as a VPP User]. To get started as a VPP developer look at [https://fd.io/docs/vpp/master/gettingstarted/developers/index.html Get Started as a VPP Developer]. To contribute to the user documents look at [https://fd.io/docs/vpp/master/gettingstarted/writingdocs/index.html Writing VPP User Documents].<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the simplest and quickest way for advanced developers to share use cases, release plans, project information and more.<br />
<br />
The [https://docs.fd.io/vpp/20.01/ VPP Source Code] is documented using [http://www.doxygen.nl Doxygen]. The most complete description of the [https://docs.fd.io/vpp/20.01/clicmd.html VPP debug CLI] is part of these documents. Learn how to document the VPP source code at [[VPP/Documentation | Writing VPP Source Code Documents]].<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|Monthly VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[[VPP/Command-line Interface (CLI) Guide|VPP Command-line Interface (CLI) User Guide]]<br />
<br />
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2021-02-16T14:00:14Z<p>Ayourtch: /* Documents */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP User Documents]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
* [https://docs.fd.io/vpp/ VPP Source Code Documents].<br />
<br />
VPP is the core technology behind the [https://fd.io 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]. The Fd.io main site also provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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 [https://fd.io/docs/vpp/master/gettingstarted/users/index.html Getting Started as a VPP User]. To get started as a VPP developer look at [https://fd.io/docs/vpp/master/gettingstarted/developers/index.html Get Started as a VPP Developer]. To contribute to the user documents look at [https://fd.io/docs/vpp/master/gettingstarted/writingdocs/index.html Writing VPP User Documents].<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the simplest and quickest way for advanced developers to share use cases, release plans, project information and more.<br />
<br />
The [https://docs.fd.io/vpp/20.01/ VPP Source Code] is documented using [http://www.doxygen.nl Doxygen]. The most complete description of the [https://docs.fd.io/vpp/20.01/clicmd.html VPP debug CLI] is part of these documents. Learn how to document the VPP source code at [[VPP/Documentation | Writing VPP Source Code Documents]].<br />
<br />
More VPP related documents:<br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|Monthly VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[[VPP/Command-line Interface (CLI) Guide|VPP Command-line Interface (CLI) User Guide]]<br />
<br />
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtchhttps://wiki.fd.io/view/VPP/Installing_VPP_binaries_from_packagesVPP/Installing VPP binaries from packages2021-02-16T13:57:53Z<p>Ayourtch: Remove obsolete instructions</p>
<hr />
<div>== Intro ==<br />
<br />
If you are simply using vpp, it can be convenient to simply install the packages. The instructions below<br />
will pull the latest freshest package build from the master branch (updated on every merge).<br />
<br />
== Package Descriptions ==<br />
<br />
* '''vpp''' - Description: Vector Packet Processing--executables. This package provides VPP executables: vpp, vpp_api_test, vpp_json_test<br />
** vpp - the vector packet engine<br />
** vpp_api_test - vector packet engine API test tool<br />
** vpp_json_test - vector packet engine JSON test tool<br />
* '''vpp-lib''' - Description: Vector Packet Processing--runtime libraries. This package contains the VPP shared libraries, including:<br />
** vppinfra - foundation library supporting vectors, hashes, bitmaps, pools, and string formatting.<br />
** svm - vm library<br />
** vlib - vector processing library<br />
** vlib-api - binary API library<br />
** vnet - network stack library<br />
* '''vpp-plugin-core & vpp-plugin-dpdk''' - Description: Vector Packet Processing--plugin modules<br />
$ sudo vppctl show plugins <br />
Plugin path is: /usr/lib/x86_64-linux-gnu/vpp_plugins:/usr/lib/vpp_plugins<br />
<br />
Plugin Version Description<br />
1. ioam_plugin.so 19.08-rc0~170-g3e9b7a219 Inbound Operations, Administration, and Maintenance (OAM)<br />
2. memif_plugin.so 19.08-rc0~170-g3e9b7a219 Packet Memory Interface (memif) -- Experimental<br />
3. perfmon_plugin.so 19.08-rc0~170-g3e9b7a219 Performance Monitor<br />
4. crypto_ipsecmb_plugin.so 19.08-rc0~170-g3e9b7a219 Intel IPSEC Multi-buffer Crypto Engine<br />
5. nsh_plugin.so 19.08-rc0~170-g3e9b7a219 Network Service Header (NSH)<br />
6. avf_plugin.so 19.08-rc0~170-g3e9b7a219 Intel Adaptive Virtual Function (AVF) Device Driver<br />
7. pppoe_plugin.so 19.08-rc0~170-g3e9b7a219 PPP over Ethernet (PPPoE)<br />
8. abf_plugin.so 19.08-rc0~170-g3e9b7a219 Access Control List (ACL) Based Forwarding<br />
9. srv6am_plugin.so 19.08-rc0~170-g3e9b7a219 Masquerading Segment Routing for IPv6 (SRv6) Proxy<br />
10. ila_plugin.so 19.08-rc0~170-g3e9b7a219 Identifier Locator Addressing (ILA) for IPv6<br />
11. l2e_plugin.so 19.08-rc0~170-g3e9b7a219 Layer 2 (L2) Emulation<br />
12. tlsopenssl_plugin.so 19.08-rc0~170-g3e9b7a219 Transport Layer Security (TLS) Engine, OpenSSL Based<br />
13. gtpu_plugin.so 19.08-rc0~170-g3e9b7a219 GPRS Tunnelling Protocol, User Data (GTPv1-U)<br />
14. map_plugin.so 19.08-rc0~170-g3e9b7a219 Mapping of Address and Port (MAP)<br />
15. dpdk_plugin.so 19.08-rc0~170-g3e9b7a219 Data Plane Development Kit (DPDK)<br />
16. stn_plugin.so 19.08-rc0~170-g3e9b7a219 VPP Steals the NIC (STN) for Container Integration<br />
17. http_static_plugin.so 19.08-rc0~170-g3e9b7a219 HTTP Static Server<br />
18. acl_plugin.so 19.08-rc0~170-g3e9b7a219 Access Control Lists (ACL)<br />
19. crypto_openssl_plugin.so 19.08-rc0~170-g3e9b7a219 OpenSSL Crypto Engine<br />
20. tlsmbedtls_plugin.so 19.08-rc0~170-g3e9b7a219 Transport Layer Security (TLS) Engine, Mbedtls Based<br />
21. ikev2_plugin.so 19.08-rc0~170-g3e9b7a219 Internet Key Exchange (IKEv2) Protocol<br />
22. ct6_plugin.so 19.08-rc0~170-g3e9b7a219 IPv6 Connection Tracker<br />
23. cdp_plugin.so 19.08-rc0~170-g3e9b7a219 Cisco Discovery Protocol (CDP)<br />
24. lacp_plugin.so 19.08-rc0~170-g3e9b7a219 Link Aggregation Control Protocol (LACP)<br />
25. flowprobe_plugin.so 19.08-rc0~170-g3e9b7a219 Flow per Packet<br />
26. svs_plugin.so 19.08-rc0~170-g3e9b7a219 Source Virtual Routing and Fowarding (VRF) Select<br />
27. nsim_plugin.so 19.08-rc0~170-g3e9b7a219 Network Delay Simulator<br />
28. mactime_plugin.so 19.08-rc0~170-g3e9b7a219 Time-based MAC Source Address Filter<br />
29. lb_plugin.so 19.08-rc0~170-g3e9b7a219 Load Balancer (LB)<br />
30. quic_plugin.so 19.08-rc0~170-g3e9b7a219 Quic transport protocol<br />
31. crypto_ia32_plugin.so 19.08-rc0~170-g3e9b7a219 Intel IA32 Software Crypto Engine<br />
32. srv6as_plugin.so 19.08-rc0~170-g3e9b7a219 Static Segment Routing for IPv6 (SRv6) Proxy<br />
33. srv6ad_plugin.so 19.08-rc0~170-g3e9b7a219 Dynamic Segment Routing for IPv6 (SRv6) Proxy<br />
34. rdma_plugin.so 19.08-rc0~170-g3e9b7a219 RDMA IBverbs Device Driver<br />
35. vmxnet3_plugin.so 19.08-rc0~170-g3e9b7a219 VMWare Vmxnet3 Device Driver<br />
36. gbp_plugin.so 19.08-rc0~170-g3e9b7a219 Group Based Policy (GBP)<br />
37. igmp_plugin.so 19.08-rc0~170-g3e9b7a219 Internet Group Management Protocol (IGMP)<br />
38. nat_plugin.so 19.08-rc0~170-g3e9b7a219 Network Address Translation (NAT)<br />
<br />
* '''vpp-dbg''' - Description: Vector Packet Processing--debug symbols<br />
* '''vpp-dev''' - Description: Vector Packet Processing--development support. This package contains development support files for the VPP libraries<br />
* '''vpp-api-java''' - Description: JAVA binding for the VPP Binary API.<br />
* '''vpp-api-python''' - Description: Python binding for the VPP Binary API.<br />
* '''vpp-api-lua''' - Description: Lua binding for the VPP Binary API.<br />
<br />
== Ubuntu/Debian/Centos ==<br />
<br />
Packages are published for both the amd64 (Intel) and aarch64 (ARM) architectures. The packages are stored in the same repository so no special action is required to select your architecture.<br />
<br />
=== Add fd.io repo ===<br />
<br />
VPP release packages are available at: https://packagecloud.io/fdio/release<br />
<br />
Note to VPP Release Managers:<br />
Pre-release packages are staged for final verification at: https://packagecloud.io/fdio/staging<br />
<br />
If you follow that link you should see a screen presenting buttons to click to get instructions for installing Debian/Rpm packages. Click on the appropriate link for instructions, and those should work<br />
for Ubuntu 16.04, 18.04, or Centos7. What to expect when following the link to https://packagecloud.io/fdio/release is in the image below:<br />
[[File:Packagecloud repo install.png|500px|Packagecloud repo install]]<br />
<br />
If you wish to install the merge-by-merge packages for the vpp master branch or the vpp stable/YYMM branches, the instructions are the same but use instead:<br />
<br />
* https://packagecloud.io/fdio/master - for the master branch<br />
* https://packagecloud.io/fdio/1904 - for the stable/1904 branch.<br />
* https://packagecloud.io/fdio/1901 - for the stable/1901 branch.<br />
<br />
=== Install Packages ===<br />
<br />
==== Debs ==== <br />
<br />
Once you have installed the repo:<br />
<br />
sudo apt-get update<br />
sudo apt-get install vpp<br />
<br />
* Optional Debs<br />
<br />
sudo apt-get install vpp vpp-plugin-core vpp-plugin-dpdk vpp-dbg vpp-dev vpp-ext-deps vpp-api-python vpp-api-java<br />
Note to Release Managers:<br />
As of 19.04, vpp-api-java is produced by the JVPP project which has a delayed release cycle. Do not include vpp-api-java when verifying release packages.<br />
<br />
Prior to 19.04,<br />
<br />
sudo apt-get install vpp vpp-plugins vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua<br />
<br />
Note:<br />
Prior to 19.04, vpp-plugins contained the dpdk-plugin needed to use dpdk drivers for hardware interfaces. Starting with 19.04, the dpdk drivers are contained in vpp-plugin-dpdk<br />
<br />
* Installing a specific package version<br />
<br />
export VPP_VER=19.01.2-release<br />
sudo apt-get install vpp=$VPP_VER vpp-lib=$VPP_VER<br />
<br />
* Uninstalling Debs<br />
<br />
sudo apt-get remove --purge vpp*<br />
sudo apt autoremove<br />
<br />
==== RPMs ====<br />
Note:<br />
Circa 19.04-rc0 some dependencies were introduced for Centos7 packages are required to install VPP:<br />
<br />
--> Finished Dependency Resolution<br />
Error: Package: vpp-plugins-19.04-rc1~b4.x86_64 (fdio_1904)<br />
Requires: libmbedtls.so.10()(64bit)<br />
Error: Package: vpp-devel-19.04-rc1~b4.x86_64 (fdio_1904)<br />
Requires: /usr/bin/python3<br />
Error: Package: vpp-19.04-rc1~b4.x86_64 (fdio_1904)<br />
Requires: /usr/bin/python3<br />
Error: Package: vpp-plugins-19.04-rc1~b4.x86_64 (fdio_1904)<br />
Requires: libmbedx509.so.0()(64bit)<br />
Error: Package: vpp-plugins-19.04-rc1~b4.x86_64 (fdio_1904)<br />
Requires: libmbedcrypto.so.2()(64bit)<br />
<br />
Installing the following packages on Centos7 resolves these dependency issues:<br />
<br />
sudo yum install epel-release mbedtls python36<br />
<br />
Once you have installed the repo:<br />
<br />
sudo yum install vpp<br />
<br />
* Optional RPMs<br />
<br />
sudo yum install vpp vpp-plugins vpp-devel vpp-debuginfo vpp-ext-deps vpp-api-python vpp-api-lua vpp-api-java<br />
<br />
Note: <br />
vpp-plugins contains the dpdk-plugin needed to use dpdk drivers for hardware interfaces.<br />
<br />
Note to VPP Release Managers:<br />
As of 19.04, vpp-api-java is produced by the JVPP project which has a delayed release cycle. Do not include vpp-api-java when verifying VPP release packages.<br />
<br />
* List all vpp packages<br />
yum list vpp*<br />
<br />
* Start VPP<br />
<br />
sudo systemctl restart vpp<br />
<br />
=== Uninstalling VPP RPMs ===<br />
<br />
sudo yum autoremove vpp*</div>Ayourtchhttps://wiki.fd.io/view/VPPVPP2021-02-16T13:30:04Z<p>Ayourtch: /* Documents */</p>
<hr />
<div>{{Project Facts<br />
|name=VPP<br />
|shortname=vpp<br />
|jiraName=VPP<br />
|projectLead=Damjan Marion<br />
|committers=<br />
* Dave Barach<br />
* Florin Coras<br />
* Benoit Ganne<br />
* John Lo<br />
* Chris Luke<br />
* Damjan Marion<br />
* Neale Ranns<br />
* Matthew Smith<br />
* Ole Trøan<br />
* Paul Vinciguerra <br />
* Dave Wallace<br />
* Ed Warnicke<br />
* Andrew Yourtchenko<br />
}}<br />
<br />
==Summary==<br />
<br />
[[VPP/What is VPP?|What is VPP?]] - An introduction to the open-source Vector Packet Processing (VPP) platform<br />
<br />
[[ VPP - Working Environments ]] - Environments/distributions, etc... that VPP builds/run on.<br />
<br />
[[VPP/Features| Feature Summary]] - A list of features included in VPP<br />
<br />
[[VPP/CurrentData| Current Data]]<br />
<br />
==Start Here==<br />
<br />
To get started with VPP check out:<br />
<br />
* [https://fd.io/vppproject/vpptech Getting Started with VPP]<br />
<br />
==Documents==<br />
<br />
The VPP (Vector Packet Processor) documents can be found in several places. These include <br />
* [https://fd.io FD.io Main Site ]<br />
* [https://fd.io/docs/vpp/master VPP User Documents]<br />
* [https://wiki.fd.io/view/VPP VPP Wiki]<br />
* [https://docs.fd.io/vpp/20.05.1 VPP Source Code Documents].<br />
<br />
VPP is the core technology behind the [https://fd.io 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]. The Fd.io main site also provides a description of how to [https://fd.io/vppproject/vpptech/ Get Started Using and Developing with VPP].<br />
<br />
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 [https://fd.io/docs/vpp/master/gettingstarted/users/index.html Getting Started as a VPP User]. To get started as a VPP developer look at [https://fd.io/docs/vpp/master/gettingstarted/developers/index.html Get Started as a VPP Developer]. To contribute to the user documents look at [https://fd.io/docs/vpp/master/gettingstarted/writingdocs/index.html Writing VPP User Documents].<br />
<br />
The [https://wiki.fd.io/view/VPP VPP Wiki] VPP is the simplest and quickest way for advanced developers to share use cases, release plans, project information and more.<br />
<br />
The [https://docs.fd.io/vpp/20.01/ VPP Source Code] is documented using [http://www.doxygen.nl Doxygen]. The most complete description of the [https://docs.fd.io/vpp/20.01/clicmd.html VPP debug CLI] is part of these documents. Learn how to document the VPP source code at [[VPP/Documentation | Writing VPP Source Code Documents]].<br />
<br />
More VPP related documents:<br />
<br />
* VPP Source Code Documents: [https://docs.fd.io/vpp/ by VPP version] <br />
<br />
* CSIT Test Reports: [https://docs.fd.io/csit/rls2101/report/ CSIT-21.01] [https://docs.fd.io/csit/ by VPP version]<br />
<br />
* CSIT-VPP Continuous Performance Trending: [https://docs.fd.io/csit/master/trending/introduction/index.html Dashboard] [https://docs.fd.io/csit/master/trending/trending/index.html Graphs].<br />
<br />
* [https://wiki.fd.io/view/File:Fd.io_vpp_overview_29.03.17.pptx VPP design and implementation overview (Powerpoint)]<br />
<br />
* [http://stackalytics.com/?release=all&project_type=fdio-group&metric=commits&module=vpp Code Contribution Metrics]<br />
<br />
== Get Involved ==<br />
<br />
* [[VPP/Meeting|Monthly VPP Meeting]]<br />
* [https://lists.fd.io/mailman/listinfo/vpp-dev Join the VPP Mailing List]<br />
* [[IRC | Join fdio-vpp IRC channel]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_21.01 | 21.01 Release Plan]]<br />
* [[VPP/Committers/SMEs | Committer subject matter expert list - who should I add as a reviewer to review my patch?]]<br />
* [[VPP/Working with the 16.06 Throttle Branch|Working with Throttle Branches]]<br />
* [[VPP/Installing VPP binaries from packages| Getting the Current Release]]<br />
* [[VPP/CodeStyleConventions | Coding Style]]<br />
* Static Analysis, see [//scan.coverity.com/projects/fd-io-vpp Latest Coverity Run Results]<br />
* [https://opengrok.fd.io/xref/vpp/ OpenGrok for VPP]<br />
<br />
==Getting started with VPP development==<br />
<br />
[[VPP/Installing VPP binaries from packages|Installing VPP binaries from packages]] - using APT/YUM to install VPP<br />
<br />
[[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]] <br />
<br />
[[VPP/Build, install, and test images|Building and Installing A VPP Package]] - Explains how to build, install and test a VPP package<br />
<br />
[[VPP/Alternative builds|Alternative builds]] - various platform and feature specific VPP builds<br />
<br />
[[VPP/BugReports|Reporting Bugs]] - Explains how to report a bug, specifically: how to gather the required information<br />
<br />
[[VPP/PythonVersionPolicy|Python Version Policy]] - Explains the selection and support of Python in use for many of the development tools. <br />
<br />
VPP Troubleshooting - Various tips/tricks for commonly seen issues<br />
* [[VPP/Troubleshooting/Vagrant|Issues with Vagrant]]<br />
* [[VPP/Troubleshooting/BuildIssues | Build issues]]<br />
<br />
==Dive Deeper==<br />
<br />
[[VPP/The VPP API|The VPP API]] - design and implementation of the VPP API<br />
<br />
[[VPP/ApiChangeProcess|API Change Process]] - Change your production-grade APIs in a compatible way without inhibiting innovation<br />
<br />
[[VPP/Build_System_Deep_Dive|Build System Deep Dive]] - A close look at the components of the build system.<br />
<br />
[[VPP/Introduction To IP Adjacency|Introduction To IP Adjacency]] - An explanation of the characteristics of IP adjacency and its uses.<br />
<br />
[[VPP/Introduction To N-tuple Classifiers|Introduction To N-tuple Classifiers]] - An explanation of classifiers and how to create classifier tables and sessions.<br />
<br />
[[VPP/Modifying The Packet Processing Directed Graph|Modifying The Packet Processing Directed Graph]] - An explanation of how a directed node graph processes packets, and possible ways to change the node graph.<br />
<br />
[[VPP/Using VPP In A Multi-thread Model|Using VPP In A Multi-thread Model]] - An explanation of multi-thread modes, configurations, and setup.<br />
<br />
[[VPP/Using VPP as a VXLAN Tunnel Terminator|Using VPP as a VXLAN Tunnel Terminator]] - An explanation of the VXLAN tunnel terminator, its features, architecture, and API support.<br />
<br />
[[VPP/How to add a tunnel encapsulation|Adding a VPP tunnel encapsulation]] - How to add a tunnel encapsulation type to vpp.<br />
<br />
[[VPP/IPSec and IKEv2|Using VPP IPSec and IKEv2]] - An explanation of IPSec and IKEv2 configuration.<br />
<br />
==Reference Material==<br />
<br />
[[VPP/Software Architecture | VPP Software Architecture]]<br />
<br />
[[VPP/Command-line Interface (CLI) Guide|VPP Command-line Interface (CLI) User Guide]]<br />
<br />
[[VPP/Command-line Arguments | VPP Command-line Arguments and startup configuration]]<br />
<br />
[[VPP/Documentation | Writing VPP Documentation]]<br />
<br />
[[VPP/Performance Analysis Tools | Performance Analysis Tools]]<br />
<br />
[[VPP/Missing Prefetches | How to spot missing prefetches]]<br />
<br />
[[VPP/Buffer Opaque Layout | Buffer Opaque Layout]]<br />
<br />
[[VPP/Feature Arcs | Feature Arc infrastructure]]<br />
<br />
[[VPP/DPOs and Feature Arcs|DPOs and Feature Arcs]]<br />
<br />
[[VPP/Per-feature Notes|Per-feature Notes]]<br />
<br />
[[VPP/HostStack | VPP Host Stack]]<br />
<br />
[[VPP/Bihash | Bounded-index extensible hash infrastructure]]<br />
<br />
==Tutorials==<br />
<br />
[[VPP/Code Walkthrough VoDs | Deep dive code walkthrough VoDs]] (recorded at 2016 FD.io pre-launch Event)<br />
<br />
[[VPP/Tutorials | VPP video tutorials ]] (collection of short video tutorials).<br />
<br />
[[VPP/Howtos| VPP Howtos ]] (collection of step-by-step howto guides).<br />
<br />
[[VPP/Training Events | VPP training events ]] (videos of VPP training events).<br />
<br />
[[VPP/Progressive VPP Tutorial| Progressive Tutorial in Using VPP]]<br />
<br />
==Use Cases==<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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.<br />
<br />
[[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. <br />
<br />
[[VPP/MPLS_FIB|Use VPP MPLS]] - Examples for programming VPP for MPLS P/PE support.. <br />
<br />
[[VPP/MFIB|Use VPP IP Multicast]] - Examples for programming VPP for IP Multicast.. <br />
<br />
[[VPP/MFIB|Use VPP BIER]] - Examples for programming VPP for BIER.. <br />
<br />
[[VPP/ABF|Use VPP for Policy Based Routing]] - Examples for programming VPP for PBR support.. <br />
<br />
[[VPP/Interconnecting vRouters with VPP|Interconnecting vRouters with VPP]] - An example to interconnect vRoutes (xrv9000) with VPP using vhost-user feature and VLAN tagging<br />
<br />
[[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<br />
<br />
[[VPP/VPP Home Gateway|Use VPP as a Home Gateway]] - Configure VPP as a classic ipv4 NAT home gateway<br />
<br />
[[VPP/VPP BFD Nexus|Setup Bi-directional Forwarding Detection]] - An example on how to setup BFD between VPP and a Cisco Nexus switch<br />
<br />
[[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<br />
<br />
[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<br />
<br />
== VPP Committer Tasks ==<br />
<br />
=== Release Milestones ===<br />
<br />
*[[VPP/CommitterTasks/ReleasePlan| Release Plan ]]<br />
<br />
*[[VPP/CommitterTasks/ApiFreeze| F0: API Freeze]]<br />
<br />
*[[VPP/CommitterTasks/PullThrottleBranch| RC1: Pulling a Throttle Branch]]<br />
<br />
*[[VPP/CommitterTasks/FinalReleaseCandidate| RC2: Final Release Candidate]]<br />
<br />
*[[VPP/CommitterTasks/CutRelease| Formal Release]]<br />
<br />
*[[VPP/CommitterTasks/CutPointRelease| Point Release (post Formal Release)]]<br />
<br />
=== Miscellaneous ===<br />
<br />
*[[VPP/Pushing and Testing a Tag| Pushing and Testing a Tag]]<br />
<br />
== Projects ==<br />
[[VPP/NAT|NAT plugin]] - VPP CGN, NAT44, stateful NAT64 project<br />
<br />
[[VPP/SecurityGroups|Security Groups]] - ACLs, Security Groups, Group Based Policy<br />
<br />
[[VPP/IPFIX]] - IP Flow Information Export<br />
<br />
[[VPP/AArch64]] - VPP on ARM64<br />
<br />
[[VPP/DHCPv6]] - DHCPv6<br />
<br />
[[VPP/VOM]] - VPP Object Model<br />
<br />
== Starter Tasks ==<br />
<br />
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].<br />
<br />
== Previous Release Plans ==<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.09 | 20.09 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_20.01 | 20.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.08 | 19.08 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.04 | 19.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_19.01 | 19.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.10 | 18.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.07 | 18.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.04 | 18.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_18.01 | 18.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.10 | 17.10 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.07 | 17.07 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.04 | 17.04 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_17.01 | 17.01 Release Plan]]<br />
* [[Projects/vpp/Release_Plans/Release_Plan_16.09 | 16.09 Release Plan]]<br />
<br />
== List of all subpages (used or unused) ==<br />
<br />
{{Special:PrefixIndex |prefix=VPP|hideredirects=1}}</div>Ayourtch