The mission of DPDK is to:
- Create an open source, production quality, vendor neutral software platform for enabling fast dataplane I/O, upon which users can build and run data plane applications.
- Host the infrastructure for the DPDK community, establishing a neutral home for community assets, infrastructure, meetings, events and collaborative discussions.
The DPDK Project is comprised of one core software project which is DPDK itself, and a few smaller sub-projects that are closely related to DPDK.
The core DPDK project is comprised of a number of git repositories, including a master repository, several “next” repositories which are used to apply changes to specific parts of DPDK before these are pulled into the master repository, and a stable release repository. This structure is listed in the repository home page.
The sub-projects that are also hosted as part of the DPDK Project are typically applications that are closely related to DPDK. These can be browsed in the repository home page.
Changes to this structure, including approval for any new sub-projects, are the responsibility of the Technical Board (see section 3.2 below).
Governance for DPDK will be provided by two boards:
- A Governing Board which deals with budget, marketing, lab resources, administrative, legal and licensing issues.
- A Technical Board which deals with technical issues including approval of new sub-projects, deprecating old sub-projects, and resolution of technical disputes.
These two boards are peers and work together to oversee the DPDK project.
The Governing Board covers the full scope of DPDK, including all sub-projects. Responsibilities of the Governing Board are:
- Electing a Chair to preside over meetings, authorize expenditures approved by the Governing Board, and manage any day-to-day operations.
- The Chair will be elected on an annual basis.
- The existing Chair will be allowed to stand for re-election.
- Approving an annual budget comprising funds raised by DPDK from all sources of revenue, and approving expenditures in compliance with that budget.
- Overseeing all project business and marketing matters including planning and executing DPDK events.
- Planning and management of all project lab resources.
- Adopting and maintaining administrative policies and procedures for DPDK (subject to LF approval) including but not limited to a Code of Conduct, and a trademark policy.
- Approving procedures for the nomination and election of (1) Silver Member representatives to the Governing Board, and (2) any officer or other positions created by the Governing Board.
- Recruiting and approving new Gold and Silver members of the project.
- Approving any exceptions to the Intellectual Property Policy.
- Defining any non-technical criteria (examples might include things like “no or minimal additional budgetary requirements for the project”) that the Technical Board must consider when approving new sub-projects. In the interim period until these criteria are defined and agreed with the Technical Board, the Governing Board must approve new sub-projects after the Technical Board has approved them.
- Voting on all matters requiring a decision from the Governing Board.
The Governing Board shall consist of:
- One representative appointed by each Gold Member as specified in clause 4.d.i below.
- Up to two Silver Member representatives as specified in clause 4.e.i below.
- One representative of the Technical Board, to be nominated by the Technical Board on an annual basis.
Conduct of Governing Board meetings:
- Governing Board meetings shall be limited to the Governing Board representatives, plus any other individuals that the Governing Board invites because their input is required on specific agenda topics. The Governing Board will allow a named representative to attend as an alternate if a Governing Board member cannot attend.
- The quorum required for a meeting to proceed is a majority (> 50%) of the Governing Board.
- For a vote to be passed on the following items, a ⅔ majority (> 66%) of the total Governing Board is required (not just a ⅔ majority of those in attendance at the meeting). In the event of a deadlock the Governing Board Chair shall have the casting vote.
- Approval of any exceptions to the Intellectual Property Policy (see clause 6.c).
- Approval of any changes to this document (see section 12).
- For a vote to be passed on any other item, a majority (> 50%) of the total Governing Board is required (not just a majority of those in attendance at the meeting). In the event of a deadlock the Governing Board Chair shall have the casting vote.
- The Governing Board will encourage transparency, including the public publication of meeting minutes and reporting of budgets within a reasonable time following their approval by the Governing Board. When approving meeting minutes and budgets, the Governing Board must approve any items which cannot be included in the public versions for confidentiality reasons.
Note: Examples of board discussions which should not be made public might include things like legal issues, confidential budget discussions, discussion on potential new project members that have not yet been made public, etc.
The Technical Board is responsible for technical decision making for the DPDK project. Its scope does not include the other sub-projects hosted on dpdk.org (Pktgen, SPP etc.). A separate Technical Board may be established for other sub-projects in future if any of them grows sufficiently large to require one. Responsibilities of the Technical Board are:
- Electing a Chair to preside over meetings, and manage any day-to-day operations.
- The Chair will be elected on an annual basis.
- The existing Chair will be allowed to stand for re-election.
- Approving any new sub-projects, including new “next” repositories for DPDK and new DPDK-based apps like Pktgen and SPP. The procedure and requirements for requesting a new sub-project will be defined by the Technical Board. The Technical Board will apply non-technical criteria for new sub-projects that are defined by the Governing Board (see clause 3.1.1.i) when making its decision on proposed new projects. Requests can be submitted by emailing email@example.com.
- Deprecating any existing sub-projects. The procedure for deprecation and archival will be defined by the Technical Board. Deprecation requests can be submitted by emailing firstname.lastname@example.org.
- Resolving any technical disputes. Anybody who is unhappy with the resolution of a technical issue can request that the Technical Board review the issue and make a decision on it by email@example.com. This is only expected to happen in exceptional cases. Before escalating to the Technical Board it is required that all reasonable steps to resolve the dispute via consensus are taken and recorded on the firstname.lastname@example.org mailing list. If the Technical Board Chair does not feel that this has happened, they can refer the issue back to the complainant for further action to be taken before escalating it to the Technical Board.
The decision of the Technical Board on any technical disputes will be final and all project contributors are expected to comply. If a Maintainer or Committer fails to comply with a decision of the Technical Board, the Technical Board will be empowered to take any necessary steps to enforce its decision, including replacing that Maintainer/Committer.
Note: Examples of issues that fall into this category might include disagreements over which patches should/should not go into DPDK.
- Voting on all matters requiring a decision from the Technical Board.
The Technical Board shall consist of:
- The composition of the Technical Board is documented at core.dpdk.org/techboard/#members. In the case of a conflict, the terms of this Charter prevail.
- To be added to or removed from the Technical Board:
- A candidate must be nominated by an existing member of the Technical Board and
- The Technical Board must review and approve the change.
- When adding or removing members, the Technical Board must consider the following:
- Positions on the Technical Board are determined based on technical merit. A new member must have a strong history of contribution (including reviews of other people’s contributions) to the project.
- The Technical Board must ensure that it represents all parts of DPDK, including support for all architectures that DPDK runs on.
- Employees of a single company should not occupy more than 40% of the Tech Board seats.
- The Technical Board needs to be kept to a manageable size so that decisions can be made in an effective way.
Conduct of Technical Board meetings:
- Technical Board meetings shall be open to the public.
- The quorum required for a meeting to proceed is a 70% majority of the Technical Board.
- For a vote to be passed, a majority (> 50%) of the total Technical Board is required (not just a majority of those in attendance at the meeting). In the event of a deadlock the Technical Board Chair shall have the casting vote.
- Minutes of Technical Board meetings will be published publicly within a reasonable time following their approval by the Technical Board.
The Technical Board described in section 3.2 provides overall technical guidance and direction for DPDK.
Beyond that, each sub-project within DPDK shall be responsible for its own technical governance and technical decision making, including issues such as:
- Determining the process and tools to be used for development, CI, validation etc.
- Reviewing proposed changes (patches) and making decisions on which patches are and are not accepted into the project.
- Scheduling of releases.
For the core DPDK project, technical governance is documented in the Contributor’s Guidelines and on the Development web page.
For the other sub-projects within DPDK, technical governance will be documented in a CONTRIBUTING.txt file in the root directory for the sub-project. See pktgen-dpdk/tree/CONTRIBUTING.TXT for an example.
The DPDK project shall be conducted so as to:
- Engage in the work of the project in a professional manner consistent with maintaining a cohesive community, while also maintaining the goodwill and esteem of The Linux Foundation in the open source software community;
- Respect the rights of all trademark owners, including any branding and usage guidelines;
- Engage The Linux Foundation for all DPDK press and analyst relations activities;
- Upon request, provide information regarding project participation, including information regarding attendance at project-sponsored events, to The Linux Foundation;
- Coordinate with The Linux Foundation in relation to any websites created directly for DPDK; and
- Operate under such rules and procedures as may from time to time be approved by the Governing Board and confirmed by The Linux Foundation.
This charter may be amended by a two-thirds vote of the entire Governing Board, subject to approval by The Linux Foundation. Proposed changes must be communicated publicly to the community prior to being approved by the Governing Board.