-
Notifications
You must be signed in to change notification settings - Fork 2
P4 Charter
Governance of the P4 project is intended to foster openness and technical meritocracy. P4 is hosted by the Linux Foundation, and stewardship for the P4 project is provided by the P4 Directed Fund Governing Board and the P4 Technical Steering Team. Membership in the P4 Directed Fund and Linux Foundation is not required to participate in P4 activities, although membership supports the continued momentum of the project along with member-only benefits.
View P4 Project Technical Charter
The governance goals for the P4 project include:
- Providing an environment that thrives on meritocracy determined by technical contribution.
- Having a strong technical vision and shepherding to ensure the integrity of the design of the language and accompanying software implementations.
- Providing a framework for P4 working groups—e.g., how they are created, how they are managed, how leadership is chosen, how conflicts are resolved, and how they are disbanded when no longer needed.
- Being clear on how the P4 language and software evolves—e.g., the processes by which features are added to (or removed from) the language, and expectations about stability.
- Being clear on how decisions are made and how conflicts resolved in the community.
- Making it easy for community members to participate and avoiding bureaucracy.
- Creating a great language for expressing a wide range of data plane programs on a variety of target devices.
The overarching governance principle for the P4 project is to act in the best interest of the community. To this end, P4 project is guided by these core values:
- Serve the community.
- Practice meritocracy.
- Value and enable innovation.
- Operate with transparency.
- Strive for quality, consistently.
- Respect others in all Interactions.
The P4 project is governed by the P4 Directed Fund Governing Board, P4 Technical Steering Team (TST), the P4 Chief Architect, and the Linux Foundation.
The P4 Directed Fund was established in early 2024 when P4 transitioned from ONF to the Linux Foundation. The governing board focuses on the overall vision of the project, along with overseeing the annual budget and governance.
The TST is responsible for all technical decisions having to do with the P4 project. Together, the P4 language specifications and codebase are the software distribution ("P4 Core") represented by the P4 trademark. The technical steering team determines the specific artifacts that constitute the P4 Core. For example, sample applications and proprietary extensions may or may not be part of the P4 Core.
The P4 chief architect (“Chief Architect”) is responsible for managing the day-to-day operations of the P4 project. The Chief Architect may be a member of the TST or an individual from outside the TST. The TST itself is intended to be an oversight body, and is not intended to have responsibility for patch-level decisions affecting the P4 Core.
Projects within the P4 Project are managed through Working Groups, which are in turn managed by the Chief Architect, in consultation with the TST. Currently there are five working groups: Language Design, API, Architecture, Applications, and Education. Working groups are created and disbanded by the TST. Working group chairs are appointed by the Chief Architect, and usually serve a term of 3 years.
The following technical roles have been defined. The TST, with approval of the Chief Architect, has the authority to modify, delete and create new technical roles from time to time.
- "Contributor": Any contributing member of the P4 project who contributes a patch set and has had their code accepted in review by any Project (whether an P4 Core Project or a non-Core Project). Anyone can participate in the project by submitting code for consideration. For additional information on how to start contributing code to the project please see https://github.com/p4lang/governance/wiki/Specification-Maintenance-Process
- "Reviewer": Anyone can review any patch set.
- "Module owner": Someone who can give a +2 review for a part of the codebase and submit code in that area
- "Project owner": Someone who can give a +2 review and submit anywhere in the codebase
- "Voting members:" The chief architect, Advisory Board members, TST members, module owners, project owners, and code contributors (who have submitted and had accepted, at least one patch set in the prior twelve (12) months).
- Nate Foster, Chair (TST Representative),
- Dan Lenoski (Google),
- Deb Chatterjee (Intel),
- Andy Fingerhut (Chair, 2023 - 2025),
- Nate Foster (2024 - 2026),
- Fabian Ruffy (2023 - 2025),
- Steffen Smolka (2024 - 2026),
- Hari Thantry (2024 - 2026),
The current Chief Architect is Fabian Ruffy.
The original members of the initial P4 Technical Steering Team, created in 2019, were:
- Nate Foster,
- Nick McKeown,
- Guru Parulkar,
- Jennifer Rexford,
- Amin Vahdat,
The Chief Architect was Nate Foster.
In 2020 all five original TST members became members of the initial Advisory Board. There is no term limit on advisory board members. Nate and Amin also remained members of the TST. Guru resigned from the TST. Larry Peterson was added as an ex-officio member. Nick’s and Jen’s TST terms expired in 2020 requiring 3 positions (Nick, Jen, Guru) to be filled by an election. After soliciting nominations from the community, 3 names were proposed, so all were elected to the TST.
- Nate Foster
- Nick McKeown
- Guru Parulkar
- Jennifer Rexford
- Amin Vahdat
- Continuing from previous TST (term expires 2021)
- Nate Foster
- Amin Vahdat
- Newly elected in 2020 (term expires 2022)
- Andy Fingerhut
- Stefan Heule
- Robert Soule
- Newly elected in 2021 (term expires 2023)
- JK Lee
- Steffen Smolka
- Noa Zilberman
- Newly elected in 2022 (term expires 2024)
- Andy Fingerhut
- Fabian Ruffy
- Ex-officio member from ONF
- Larry Peterson
Each P4 TST Member shall be elected to serve for a term of two (2) years, or until his or her earlier resignation or removal. TST elections shall be staggered, if possible, so that roughly half of the Elected Member seats are up for election each year. The first election will be held on a yearly basis, starting in September 2020, and then annually thereafter. Before each election, the Chief Architect will determine the appropriate size of the TST. The TST shall hold annual elections in the third calendar quarter of each year. In the event that any Elected Member seat becomes vacant prior to the distribution of nominations for the next annual election and it is more than one (1) month prior to the next planned election, the Chief Architect may optionally call for elections for any vacant seat(s).
The TST should use a multiple-candidate method of voting, such as Condorcet Helios or single transferable vote. Multiple-candidate methods may be replaced by a simple election by a plurality of votes when there are only two candidates for one position to be filled. No election is required if there is only one candidate running and no voting member voices an objection. In the event of a tied outcome, the Chief Architect may determine the winner or a process to resolve the tie.
At the time of an election, the following events occur:
- The LF shall solicit the voting members for nominations via mailing list;
- Voting members may nominate themselves or other voting members for election to the TST;
- The LF distributes the nominees to the P4 mailing lists and conducts the election;
- The Chief Architect posts the result to the P4 wiki upon conclusion of the election.
Members of the P4 Directed Fund Governing Board are appointed via member benefit. Each Premier member is entitled to appoint one representative to the Governing Board for the duration of their membership term.