ONOS COLLABORATOR AGREEMENT
Use of this code constitutes acceptance of the following terms:

RECITALS
      1.  To further its charitable and educational purposes, ON.Lab is currently developing an Open Networking Operating System (“ONOS”) and related tools, which create a distributed network operating system that provides scale-out design, high availability, and network graph based north-bound abstraction as a logically centralized SDN control plane (the “Project”).
      2. ONOS will be released via an open source medium as soon as it is sufficiently complete to provide public benefit and will share interim drafts of the ONOS interfaces with anyone who requests access to them.  ON.Lab and the Collaborator intend that all results of the ONOS Project will be placed in the public domain.
      3.  The Parties desire that Collaborator collaborate with ON.Lab in the development of ONOS. 
      NOW, THEREFORE, the Parties hereby agree as follows:
      1. DEFINITIONS 
      The following capitalized terms have the meanings set forth below:
      “Background Intellectual Property” means all intellectual property rights belonging to or controlled by either Party, (i) developed, conceived, obtained or acquired prior to the Effective Date of this Agreement or (ii) developed, conceived, obtained or acquired independently of this Agreement or not in furtherance of the Project.
       “Project Technology” means the Software and all information, data, algorithms, reports, studies, modules, object or source code, flowcharts, diagrams, design documents, user and developer manuals,  and other tangible or intangible materials relating to the Software or related documentation and all copies thereof produced in connection with the Project, and all intellectual property rights therein.    
      “Software” means all object code, source code, and documentation relating to the Project.
      
      “Unacceptable Open Source License” means any software license that requires as a condition of use, modification and/or distribution of such software that the software or other software incorporated into, derived from or distributed with the software (a) be disclosed or distributed in source code form, or (b) be licensed by the user to third-parties for the purpose of making and/or distributing derivative works, or (c) be redistributable at no charge.  
2. PUBLIC DOMAIN
                  (a) When ON.Lab deems some or all of the Software to be sufficiently complete to provide public benefit, ON.Lab will make it available under generally accepted open source license which shall include one or more of: an Apache license found at http://www.opensource.org/licenses/apache2.0.php, or a BSD license found at: http://www.opensource.org/licenses/bsd-license.php or MIT License found at: http://www.opensource.org/licenses/mit-license.php. ON.Lab will determine what Software will be open sourced and when it will be open sourced under one or more of the above mutually agreed upon licenses, which will be released by ON.Lab.
                  (b) The Project Technology will be placed into the public domain as soon as it is sufficiently complete to provide public benefit.  ON.Lab will control the content, timing, and method of disclosing the Project Technology to the public.
      3. INTELLECTUAL PROPERTY 
           3.1  	Background Intellectual Property. Collaborator grants to ON.Lab a royalty-free, worldwide license to use, reproduce, modify and sublicense any Collaborator Background Intellectual Property necessary or desirable for ON.Lab’s use and sublicensing of the Project Technology.  Collaborator represents that ON.Lab’s use and licensing of Collaborator’s technical contributions to the Project will not require a license of Background Intellectual Property from any third party.  Collaborator shall not incorporate into the Project any third-party code that is subject to an Unacceptable Open Source License.
           3.2 	Ownership of Project Technology.  ON.Lab shall own all Project Technology.  Collaborator hereby assigns to ON.Lab ownership of all Project Technology, and improvements and modifications thereto, created by Collaborator either solely or jointly with ON.Lab personnel.
		3.3	No Patent Filings.  The Parties agree not to file, or cause to be filed, any patent applications with any patent office to protect any intellectual property created in the course of performing research or development funded under this Agreement.
      4. 	NON-DISCLOSURE.  Collaborator acknowledges that premature disclosure of the Project Technology could impose unreasonable support burdens on ON.Lab and cause ON.Lab reputational harm, since the Software would not yet be ready for general use.  Collaborator therefore agrees not to disclose the Project Technology, without ON.Lab’s prior written consent, to any third party prior to the date the ONOS source code is publicly released.  
      5. GENERAL.  Nothing in this Agreement shall be construed to create a partnership, agency relationship, or joint venture in the legal sense. This Agreement constitutes the entire agreement between the Parties with respect to the subject matter of this Agreement. This Agreement may be signed in any number of counterparts, including facsimiles or electronic copies, as if all signatures were all on the same instrument.
 

