adopted as of July 26, 2016
Governance of the CORD™ project is intended to foster a technical meritocracy within the context of stewardship by the CORD Chief Architect and the ON.Lab Board of Directors. ON.Lab is a nonprofit public benefit corporation, and provides engineering resources on behalf of the CORD Project.
The goals of CORD project governance are to:
- Provide an environment that thrives on technical meritocracy. Merit is based on technical contribution, not on financial contribution.
- Have strong technical vision and shepherding. This ensures architectural integrity of the codebase.
- Provide a framework for CORD teams and projects – how they are started, how they are managed, how members are elected, how conflicts are resolved, how they are disbanded when no longer needed.
- Be clear on how CORD software evolves – how code is added to (or removed from) the project.
- Be clear on how decisions are made and conflicts resolved in the community.
- Make it easy for community members to participate.
- Avoid bureaucracy.
- Create a great codebase.
The principles of CORD governance are in line with these community values:
- Serve our Customers.
- Practice true Meritocracy.
- Operate with Transparency.
- Strive for Quality, consistently.
- Value and enable Innovation.
- Respect others in all Interactions.
In addition, the over-arching governance principle is To act in the best interest of the broader community.
Two steering teams and a board of directors govern the CORD project. The two teams are the technical steering team and the community team.
The board is a group of representatives from the partner organizations. It is governed by the Chairman of the Board (the “Chairman”). The board has the following roles and responsibilities:
- Strategic direction
- New member recruiting
- Conflict resolution between teams
- Ambassadors for CORD
- CORD trademark management
The board leaves all technical decisions to the technical steering team in the spirit of open source technical meritocracy practice.
The governance document for the board can be found here.
Two steering teams govern the CORD project.
Technical Steering Team
The technical steering team is responsible for all technical decisions in the project. It is responsible for the content and structure of the code base and for all technical priorities with respect to the code base. The CORD chief architect (“Chief Architect”) is the team lead of the technical steering team. The ON.Lab board of directors reserves the right to remove and replace the Chief Architect at any time.
Community Steering Team
The community steering team is responsible for the care and feeding of the community. It is responsible to address community issues, to grow the community and to make sure that the community thrives. The voting community elects the community steering team lead. The ON.Lab board of directors reserves the right to approve or veto this selection, and to appoint the team lead.
Email: Coming soon
Classes of Participation
There are four classes of participation in the governance process. Each plays a different role in governance.
- Open Networking Lab - the board of directors and employees of Open Networking Laboratory
- Service Providers - the primary end users of CORD derived products
- Vendors - the companies who build products based on CORD for consumption by the service providers
- Community - independent members of the community
Composition of the Board
The Board is composed of a chairman and one member from ON.Lab and each partner organization. In addition, each partner may name one alternative member to attend meetings in case the primary member is unable to attend. The maximum number of partner board members is 20. Each organization may only have one member on the board. The current board is found here.
The Open Networking Laboratory Board of Directors chooses the Chairman of the Board. Each organization is responsible for nominating their board member. The Chairman must approve the nomination. Board members are (re) nominated/approved every year. Nominations/approvals are held in the first quarter of each calendar year. If any board member must leave before the end of their term, their organization will nominate a new member and the Chairman of the Board must approve that member. If the Chairman of the Board must step down, then the ON.Lab Board of Directors will select a new Chairman.
There are three classes of voting: ON.Lab, Vendors and Service Providers. Each receives votes according to the following allocation of 100 votes. Votes may be fractional.
- Chairman - 10 votes
- Vendor - 40/(number of vendors)
- Service Provider - 50/(number of service providers)
Should a tie occur on a vote, the Chairman of the Board will break the tie.
Technical Steering Team
The technical steering team is responsible for all technical decisions having to do with the CORD project and the CORD core codebase (“CORD Core”). The CORD codebase is the software distribution represented by the CORD trademark. Sample applications or virtual network functions (VNFs), vendor proprietary extensions may or may not be part of the CORD Core. It is entirely up to the technical steering team to decide what constitutes the CORD Core. Projects within the CORD Project follow the project lifecycle document, which can be found here. The TST may amend the project lifecycle document with the approval of the Chief Architect.
As per the Project Lifecycle, incubated projects may graduate to either Mature-state or Core-state status. It is intended that threshold for having projects graduate to Mature-state will be lower and the process streamlined relative to having projects graduate to Core-state. The TST is intended to be an oversight body, and is not intended to have responsibility for patch-level project decisions.
The membership is found on the home page.
The following technical roles have been defined. The TST, with approval of the Chief Architect, shall have authority to modify, delete and create new technical roles from time to time.
- "Contributor": Anyone who signs a CLA and contributes a patch set and has had their code accepted in review by any Project (whether an CORD Core Project or a non-Core Project). Provided that the CLA is signed, 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 Contributing to CORD.
- "Reviewer": Everyone 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
- TST Voting member: The chief architect, the TST members, a code contributor, a module owner, or a core project owner (code contributors must have submitted (and/ had accepted) or reviewed, as applicable, at least two patch sets in the prior twelve (12) months. This is not a requirement for the chief architect, TST members, module owners, or core project owners.
Becoming a member of the TST
There are several ways to become a member of the TST.
- The Chief Architect is by definition a member as the lead of the TST.
- In only the first year of the CORD project (2016), the Chief Architect will appoint the TST members.
- After the initial year, the voting community will elect members.
- If a core project is deemed to be important enough to the success of CORD, then the TST may choose to add the project lead to the TST. It is entirely up to the TST to make the decision on whether the project warrants consideration. This decision is made at the time the project undergoes the review to become a core project.
New technical steering team members will be elected on a yearly basis. Elections are held in the first quarter of each calendar year. At the time of election the following occurs:
- The Chief Architect is (re) appointed by the board of Open Networking Laboratory.
- The Chief Architect decides the appropriate size of the technical steering team. The ON.Lab board of directors has veto power on the choice of size.
- The voting community elects TST members to the open positions.
- The full election procedures are documented here.
If a team member leaves the team during the year, it is up to the Chief Architect to decide whether or not to hold an election to put someone else into the position before the next scheduled election.
- If the CORD Chief Architect leaves ON.Lab for any reason the ON.Lab board of directors reserves the right to appoint a new CORD Chief Architect.
- If any member of the technical steering team changes their corporate affiliation during their tenure and, as a result, joins an organization that already has (on a consolidated basis) direct representation on the TST, the ON.Lab board of directors reserves the right to remove them from their role on the technical steering team.
- The ON.Lab board of directors reserves the right to select a new Chief Architect at any time.
Technical Advisory Group (currently not used)
The Technical Steering Team may organize a technical advisory group of architects, developers, and/or other community members. Members of this group do not have to have any affiliation with the CORD project. The goal of this group is twofold: solicit input from other experts in the field to guide the CORD architecture and generate advocacy in the larger ecosystem for the work being done with CORD. The Technical Steering Team chooses all the people on the technical advisory group.
The technical steering team will meet with the technical advisory group 2-4 times a year.
Community Steering Team
The community steering team is responsible for the care and feeding of the community. This team will be responsible to make sure the community has what it needs to function effectively. That may include
- Proactively checking in with members to see what can be improved
- Starting projects to improve the community
- Providing a structured way to handle conflict in the community
- Making sure communication tools work well for the community
- Owning the on-ramp process for the community
Team Lead Election
Elections are held in the first quarter of each calendar year. The team lead of the community steering team will be (re) elected by the voting community. In an election, the following will occur:
- Lead candidates are nominated by anyone, including themselves.
- The voting community votes to elect the lead. Each voter has one vote.
Anyone may volunteer to be a member of the team