The mission of DPDK is to:
- Create an open source, production quality, vendor neutral software platform for enabling fast packet processing, upon which users can build and run data plane applications.
- Host the infrastructure for the DPDK community, establishing a neutral home for community assets, meetings, events and collaborative discussions.
The DPDK Project is composed of software, a community lab (development infrastructure), and marketing activities.
The DPDK Project software is composed of one core software project which is DPDK itself, and a few hosted 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 hosted projects that are also hosted as part of the DPDK Project are typically applications that are closely related to DPDK. These are called “hosted projects” and can be browsed in the repository home page.
Changes to this software structure, including approval for any new hosted projects, are the responsibility of the Technical Board (see clause 3.2 below).
2.2 Community Lab
The DPDK Community Lab provides the project’s physical infrastructure for a test harness and software in support of the project’s software development, testing, and release processes.
2.3 Marketing Activities
Marketing activities include planning, creating and executing community events, content (including but not limited to blogs, whitepapers, social media posts, and testimonials), external communications, and media relations. The marketing activities define the public persona of the project.
Governance of the DPDK project is followed through the following boards:
- A Governing Board which has ownership and oversight on budget, marketing, lab resources, administrative, legal, and licensing issues.
- A Technical Board which has ownership and oversight on technical issues including approval of new hosted projects, deprecating old hosted projects, the project’s technical roadmap, recruiting maintainers, defining the processes for contributing, testing, and managing security, defining criteria and a process for event technical content, 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 hosted projects. Responsibilities of the Governing Board are:
- Electing a Chair to preside over meetings, authorize expenditures approved by the Governing Board, and manage 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.
- Ensuring all applicable LF policies and guidelines are adhered to (this includes but is not limited to Code of Conduct and Trademark Usage Guidelines).
- 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 retaining membership of the project.
- Approving any exceptions to the Intellectual Property Policy.
- Defining any non-technical criteria that the Technical Board must consider when approving new hosted projects. Non-technical criteria includes: finance/budget, alignment with DPDK mission, impact on membership or recruiting. The Governing Board must approve new hosted 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.iv.i below.
- Up to two Silver Member representatives as specified in clause 4.v.i below.
- One representative of the Technical Board, to be rotated through by Technical Board members, approximately quarterly.
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 cast the deciding vote.
- Approval of any exceptions to the Intellectual Property Policy (see clause 6.iii).
- Approval of any changes to this Charter document (see clause 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 cast the deciding vote.
- The Governing Board will encourage transparency, including the publication to the community of summary 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 dpdk.org’s hosted projects (e.g. Pktgen, SPP etc.). A separate Technical Board may be established for other hosted projects in the 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 may be appointed on a rotating basis.
- Approving any new hosted projects, including new “next” repositories for DPDK and new DPDK-based apps like Pktgen and SPP. The procedure and requirements for requesting a new hosted project will be defined by the Technical Board. The Technical Board will apply non-technical criteria for new hosted projects that are defined by the Governing Board (see clause 3.1.1.ix) when making its decision on proposed new projects. Requests can be submitted by emailing email@example.com.
- Deprecating any existing hosted projects. The procedure for deprecation and archival is 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 emailing 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 such as technical expertise, contributions, and project leadership responsibilities. A new member must have a strong history of contribution (including reviews of other people’s contributions) to the project.
- The Technical Board must work towards ensuring that it represents all parts of the DPDK community, for example, encouraging members come from a variety of backgrounds, such as silicon vendors, OS distribution packagers, project maintainers, end-user contributors, etc.
- Employees of a single company should not occupy more than 40% of the Technical 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 clause 3.2 provides overall technical guidance and direction for DPDK.
Beyond that, each hosted DPDK shall be responsible for its own technical governance and technical decision making.
- Reviewing and accepting proposals for new features
- Reviewing proposed changes (patches) and making decisions on which patches are accepted into the project.
- Determining the process and tools to be used for development, CI, validation etc.
- Overseeing reasonable security of the code repo/infrastructure and vulnerability management
- Lab and code quality management
- 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 hosted projects within DPDK, technical governance will be documented in a CONTRIBUTING.txt file in the root directory for the hosted 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.