1. Mission of the Data Plane Development Kit

The mission of DPDK is to:

  1. 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.
  2. Host the infrastructure for the DPDK community, establishing a neutral home for community assets, meetings, events and collaborative discussions.

2. Project Structure

The DPDK Project is composed of software, a community lab (development infrastructure), and marketing activities.

2.1 Software

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.

3. Project Governance

Governance of the DPDK project is followed through the following boards:

  1. A Governing Board which has ownership and oversight on budget, marketing, lab resources, administrative, legal, and licensing issues.
  2. 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.

3.1. Governing Board

3.1.1. Scope

The Governing Board covers the full scope of DPDK, including all hosted projects. Responsibilities of the Governing Board are:

  1. Electing a Chair to preside over meetings, authorize expenditures approved by the Governing Board, and manage day-to-day operations.
    1. The Chair will be elected on an annual basis.
    2. The existing Chair will be allowed to stand for re-election.
  2. Approving an annual budget comprising funds raised by DPDK from all sources of revenue, and approving expenditures in compliance with that budget.
  3. Overseeing all project business and marketing matters including planning and executing DPDK events.
  4. Planning and management of all project lab resources.
  5. Ensuring all applicable LF policies and guidelines are adhered to (this includes but is not limited to Code of Conduct and Trademark Usage Guidelines).
  6. 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.
  7. Recruiting and retaining membership of the project.
  8. Approving any exceptions to the Intellectual Property Policy.
  9. 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.
  10. Voting on all matters requiring a decision from the Governing Board.

3.1.2. Composition

The Governing Board shall consist of:

  1. One representative appointed by each Gold Member as specified in clause 4.iv.i below.
  2. Up to two Silver Member representatives as specified in clause 4.v.i below.
  3. One representative of the Technical Board, to be rotated through by Technical Board members, approximately quarterly.

3.1.3. Conduct

Conduct of Governing Board meetings:

  1. 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.
  2. The quorum required for a meeting to proceed is a majority (> 50%) of the Governing Board.
  3. 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.
    1. Approval of any exceptions to the Intellectual Property Policy (see clause 6.iii).
    2. Approval of any changes to this Charter document (see clause 12).
  4. 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.
  5. 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.

3.2 Technical Board

3.2.1. Scope

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.

  1. 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 techboard@dpdk.org.
  2. Deprecating any existing hosted projects. The procedure for deprecation and archival is defined by the Technical Board. Deprecation requests can be submitted by emailing techboard@dpdk.org.
  3. 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 techboard@dpdk.org. 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 dev@dpdk.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.
  4. Voting on all matters requiring a decision from the Technical Board.

3.2.2. Composition

The Technical Board shall consist of:

  1. 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.
  2. To be added to or removed from the Technical Board:
    1. A candidate must be nominated by an existing member of the Technical Board and
    2. The Technical Board must review and approve the change.
  3. When adding or removing members, the Technical Board must consider the following:
    1. 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.
    2. 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.
    3. Employees of a single company should not occupy more than 40% of the Technical Board seats.
    4. The Technical Board needs to be kept to a manageable size so that decisions can be made in an effective way.

3.2.3. Conduct

Conduct of Technical Board meetings:

  1. Technical Board meetings shall be open to the public.
  2. The quorum required for a meeting to proceed is a 70% majority of the Technical Board.
  3. 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.
  4. Minutes of Technical Board meetings will be published publicly within a reasonable time following their approval by the Technical Board.

4. Membership

  1. DPDK is a free, open source project that welcomes all contributors. Any person can use or contribute to the DPDK project. There is no requirement to be a member of the DPDK project or a member of The Linux Foundation (“LF”) to do so.
  2. The DPDK project shall have Gold, Silver and Associate Members, independent of the technical contributors. All Gold and Silver Members must be current corporate members of The Linux Foundation (at any level). Details of LF membership levels and rates are available in The Linux Foundation Bylaws.
  3. All Gold and Silver Members enjoy the privileges and undertake the obligations described in this DPDK Project Charter, as from time to time amended by the Governing Board with the approval of The Linux Foundation. During the term of their membership, all members will comply with all such policies as the LF Board of Directors and/or the DPDK Governing Board may from time to time adopt with notice to members.
  4. Gold Members shall be entitled to:
    1. Appoint a representative to the Governing Board and any other committees established by the Governing Board.
    2. Participate in an open DPDK community lab as outlined in clause 4.vi below.
    3. Be prominently identified as Gold sponsors of the project at DPDK-funded activities. Specific details of how this will be implemented will be determined by the Governing Board.
    4. Identify themselves as Gold Members of the project.
  5. Silver Members shall be entitled to:
    1. Annually elect one representative to the Governing Board and any other committees established by the Governing Board for every five (5) Silver Members, up to a maximum of two (2) representatives. The election process shall be determined and published publicly by the Governing Board.
    2. Identify themselves as Silver Members of the project.
  6. Gold Members shall be entitled to participate in the DPDK community lab:
    1. They will be able to contribute hardware to be hosted in the lab for DPDK performance testing.
    2. They will be able to integrate software applications into the performance test configuration within the lab.
    3. Limits on hardware and software contributions for Gold Members will be determined by the Governing Board.
    4. Costs for hardware and software contributions will be determined by the Governing Board in collaboration with Technical Board recommendations.
    5. Legacy Silver member hardware that pre-exists as of 20 May 2020 in the community lab may remain.
  7. The Associate Member category of membership is limited to Associate Members of The Linux Foundation. The Governing Board may set additional criteria for joining the DPDK Project as an Associate Member. If the Associate Member is a membership organization, Associate Membership in the DPDK Project does not confer any benefits or rights to the members of the Associate Member.

5. Technical Governance

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.

  1. Reviewing and accepting proposals for new features
  2. Reviewing proposed changes (patches) and making decisions on which patches are accepted into the project.
    1. Determining the process and tools to be used for development, CI, validation etc.
    2. Overseeing reasonable security of the code repo/infrastructure and vulnerability management
  3. Lab and code quality management
  4. Scheduling of releases.
  5. 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.

6. Intellectual Property Policy

  1. All new inbound contributions to DPDK will be made under the following licenses:
    1. The BSD-3-Clause license will be used for all contributions other than those described in 6.i.ii and 6.i.iii below.
    2. The GPL-2.0 license will be used for code that runs in the kernel.
    3. A disjunctive licence choice of BSD-3-Clause OR GPL-2.0 or BSD-3-Clause OR LGPL-2.1 will be used for code that is shared between the kernel and userspace.
  2. All contributions shall include a “Signed-off-by:” line which certifies that the contribution complies with the Developer Certificate of Origin.
  3. If an alternative inbound or outbound license is required for compliance with the license for a leveraged open source project or is otherwise required to achieve DPDK’s Mission, the Governing Board may approve the use of an alternative license for specific inbound or outbound contributions on an exception basis. Any exceptions must be approved by a two-thirds vote of the entire Governing Board and must be limited in scope to what is required for such purpose.
  4. Subject to available Project funds, DPDK may engage The Linux Foundation to determine the availability of, and register, trademarks, service marks, and certification marks, which shall be owned by the LF.

7. Budget

  1. The Governing Board shall approve an annual budget and never commit to spend in excess of funds raised. The budget and the purposes to which it is applied shall be consistent with the non-profit mission of The Linux Foundation.
  2. The Linux Foundation shall provide the Governing Board with regular reports of spend levels against the budget. In no event will The Linux Foundation have any obligation to undertake any action on behalf of DPDK or otherwise related to DPDK that will not be covered in full by funds raised by DPDK.
  3. In the event any unbudgeted or otherwise unfunded obligation arises related to DPDK, The Linux Foundation will coordinate with the Governing Board to address gap funding requirements.
  4. As described in clause 3.1.3.v, the Governing Board will publish a public version of the budget. Questions on the budget should be addressed to the Governing Board.

8. General & Administrative Expenses

  1. The Linux Foundation shall have custody of and final authority over the usage of any fees, funds and other cash receipts.
  2. A General & Administrative (G&A) fee will be applied by the Linux Foundation to funds raised to cover Finance, Accounting, and operations. The G&A fee shall equal 9% of DPDK’s first $1,000,000 of gross receipts and 6% of DPDK’s gross receipts over $1,000,000.
  3. Under no circumstances shall The Linux Foundation be expected or required to undertake any action on behalf of DPDK that is inconsistent with the tax exempt purpose of The Linux Foundation.

9. Antitrust Guidelines

  1. All members shall abide by The Linux Foundation Antitrust Policy.
  2. All members shall encourage open participation from any organization able to meet the membership requirements, regardless of competitive interests. Put another way, the Governing Board shall not seek to exclude any member based on any criteria, requirements or reasons other than those that are reasonable and applied on a non-discriminatory basis to all members.

10. Code of Conduct

  1. The Governing Board may adopt a specific Project code of conduct, with approval from the LF.
  2. All participants in LF Project events shall abide by The Linux Foundation Events Code of Conduct.

11. General Rules and Operations

The DPDK project shall be conducted so as to:

  1. 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;
  2. Respect the rights of all trademark owners, including any branding and usage guidelines;
  3. Engage The Linux Foundation for all DPDK press and analyst relations activities;
  4. Upon request, provide information regarding project participation, including information regarding attendance at project-sponsored events, to The Linux Foundation;
  5. Coordinate with The Linux Foundation in relation to any websites created directly for DPDK; and
  6. Operate under such rules and procedures as may from time to time be approved by the Governing Board and confirmed by The Linux Foundation.

12. Amendments

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.

DateChangeRequested By
10/18/2017

update Governing Board responsibilities, update Technical Board responsibility wording, update license policy wordingGoverning Board
12/11/2017change wording of the license names, use spdx.spdx.orgorg to describe licenses, change dual licensing wording with "OR" keyword, replace "shall" by "will", Applied with a required update from LGPL-2.0 to LGPL-2.1as commented by Techboard representative Hemant Agrawal, Removed references to Xen dom0 filesGoverning Board
03/18/2018Use the same numbering format in every sections: 1.a.i.1Governing Board
07/13/2020The charter was adopted and unanimously ratified by the DPDK Governing Board, with the recommendations from the Governing and Technical Boards, on July 13th 2020. For comparison of changes made click hereGoverning Board