Jump to: navigation, search

Difference between revisions of "Neutron Plugins and Drivers"

(Existing Plugin and Drivers)
 
(70 intermediate revisions by 27 users not shown)
Line 1: Line 1:
 +
__NOTOC__
 +
 +
{{Caution | See links below for more information | This page is deprecated.}}
 +
 +
* TC approved list of Neutron projects - http://governance.openstack.org/reference/projects/neutron.html
 +
* More details about list of Neutron projects - http://docs.openstack.org/developer/neutron/#neutron-stadium
 +
* Point of contacts for Neutron areas and projects - http://docs.openstack.org/developer/neutron/policies/neutron-teams.html#core-review-hierarchy
 +
* How to develop Neutron components - http://docs.openstack.org/developer/neutron/devref/contribute.html
 +
 
=== Introduction ===
 
=== Introduction ===
 
Ensuring release quality through proper testing is an important tenant of the OpenStack community and Neutron team wants to do our part. We are introducing changes below provide more visibility into the quality and stability of vendor plugin and driver code.  The policies described here are in effect immediately.
 
Ensuring release quality through proper testing is an important tenant of the OpenStack community and Neutron team wants to do our part. We are introducing changes below provide more visibility into the quality and stability of vendor plugin and driver code.  The policies described here are in effect immediately.
Line 7: Line 16:
  
 
In addition to testing changes, the Neutron team is revising the requirements for the point of contact for third party code.  The changes bring the written expectations for contacts in line with current practice.
 
In addition to testing changes, the Neutron team is revising the requirements for the point of contact for third party code.  The changes bring the written expectations for contacts in line with current practice.
 +
 +
 +
=== Plugin and Driver Processes ===
 +
Getting a plugin or driver merged upstream into Neutron allows you the benefit of being a part of the simultaneous release, and likely having your plugin or driver packaged with distributions which ship releases based on the simultaneous releases from upstream. However, this is not a "free ride", you should ideally be giving back more than you are taking by getting your code upstream. When you submit your code, you're putting a burden on the existing reviews and infrastructure. The same goes with subsequent bug fixes and backports to stable releases. Thus, you should have someone from your company or team reviewing other code upstream, participating in meetings, etc. The following is a list of requirements for inclusion of code upstream:
 +
* Code which passes review, has adequate unit tests, and passes pep8 guidelines.
 +
* A [http://ci.openstack.org/third_party.html functioning CI system], which has been running successfully against your plugin/driver patches, and other patches as well.
 +
* Participation in Neutron meetings, IRC channels, and email lists.
 +
* A member of the plugin/driver team participating in code reviews of other upstream code.
 +
 +
 +
=== Removal of Upstream Plugins or Drivers ===
 +
If you fail to meet the criteria above, you risk having your plugin or driver removed from upstream. The core team will continue to evaluate third party CI systems to ensure they are running and correctly testing patches for third party plugins and drivers. If they fail to function, an email will be sent to the openstack-dev mailing list asking for the owner to fix this issue. Ideally, the owner will reply to the email thread, and will work with the Neutron and Infra teams to address the CI issue. If no reply is received or if adequate progress is not being made to address the issue within 2 weeks, a process to remove the plugin or driver from upstream will commence. To get your plugin or driver upstream after it has been removed will take a functioning third party CI system running for a month, correctly voting on changes upstream.
  
  
Line 17: Line 38:
 
* Assist the core team with triaging bugs specific to the plugin and/or driver
 
* Assist the core team with triaging bugs specific to the plugin and/or driver
 
* Ensure OpenStack development deadlines are properly communicated back to their company and/or community
 
* Ensure OpenStack development deadlines are properly communicated back to their company and/or community
 
 
NOTE: The this information can be maintained here: https://wiki.openstack.org/wiki/Neutron_Plugins_and_Drivers
 
  
  
 
=== Testing Requirements ===
 
=== Testing Requirements ===
To be designated as compatible, a third-party plugin and/or driver code must implement external third party testing.  The testing should be Tempest executed against a Devstack build with the proposed code changes.  The environment managed by the vendor should be configured to incorporate the plugin and/or driver solution.  The OpenStack Infrastructure team has provided details on how to integrate 3rd party testing at:
+
https://wiki.openstack.org/wiki/NeutronThirdPartyTesting
 
 
http://ci.openstack.org/third_party.html
 
 
 
and Tempest can be found at:
 
 
 
https://github.com/openstack/tempest
 
 
 
The Neutron team expects that the third party testing will provide a +/-1 verify vote for all changes to a plugin or driver’s code.  In addition, the Neutron team expects that the third party test will also vote on all code submissions by the jenkins user.  The jenkins user regularly submits requirements changes and the Neutron team hopes to catch any possible regressions as early as possible.
 
  
  
 
=== Existing Plugin and Drivers ===
 
=== Existing Plugin and Drivers ===
 
Plugins and drivers currently in the Neutron project repository will be given a grace period until the Icehouse-2 milestone to implement external third party testing.  At that time, the Neutron team will release a list of the compatible plugins and drivers (i.e. those that meet the testing requirements).  Plugins and drivers that do not have external testing will be deprecated at the Icehouse release and will be candidates for removal when the J-release cycle opens.
 
Plugins and drivers currently in the Neutron project repository will be given a grace period until the Icehouse-2 milestone to implement external third party testing.  At that time, the Neutron team will release a list of the compatible plugins and drivers (i.e. those that meet the testing requirements).  Plugins and drivers that do not have external testing will be deprecated at the Icehouse release and will be candidates for removal when the J-release cycle opens.
 +
 +
The page [[ThirdPartySystems]] gathers information about all third party CI system (including Neutron related).
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Vendor !! Plugin/Driver Name !! Contact Name  !! Status  !! Notes
+
! Vendor !! Plugin/Driver Name !! Contact Name  !! Status  !! Recheck command !! Notes
 +
|-
 +
| Neutron Team || ML2 - OVS/LB || Infra Team || Y || || Covered by Infra (Jenkins)
 +
|-
 +
| A10 Networks || LBaaS Driver || Doug Wiegley || Y || redo-a10 || None
 +
|-
 +
| Arista Networks || ML2 Driver || Sukhdev Kapur || Y || recheck/reverify no bug/bug # || None
 +
|-
 +
| Avaya || ML2 Driver || Ravi Palaparthi || Y || || None
 +
|-
 +
| Big Switch || Plugin || Kevin Benton || Y || recheck-bigswitch || None
 +
|-
 +
| Big Switch || ML2 Driver || Kevin Benton || Y || || None
 +
|-
 +
| BNC || DCFabric-ML2-Driver || Yanwei Xu || Y || recheck-DCFabric || None
 +
|-
 +
| Brocade || Vyatta Plugin || Karthik Natarajan || Y || || None
 
|-
 
|-
| Neutron Team || ML2 - OVS/LB || Infra Team || Y || Covered by Infra (Jenkins)
+
| Brocade || ML2 Driver || Shiv Haris || Y || || None
 
|-
 
|-
| A10 Networks || LBaaS Driver || Doug Wiegley || Y || None
+
| Cisco || Plugin - NXOS || Dane Leblanc || N || || It is deprecated and It will be removed in Juno
 
|-
 
|-
| Arista Networks || ML2 Driver || Sukhdev Kapur || Y || None
+
| Cisco || Plugin - N1Kv || Dane Leblanc || Y || recheck cisco-n1kv || None
 
|-
 
|-
| Big Switch || Plugin || Kevin Benton || Y || 8.5 hour delay
+
| Cisco || ML2 - APIC || Dane Leblanc || Y || recheck cisco-apic || None
 
|-
 
|-
| Big Switch || ML2 Driver || Kevin Benton || Y || 8.5 hour delay
+
| Cisco || ML2 - DFA || Dane Leblanc || Y || || None
 
|-
 
|-
| Brocade || Vyatta Plugin || Karthik Natarajan || N || Only found logs for ML2. Needs clarification from Brocade
+
| Cisco || ML2 - NXOS || Dane Leblanc || Y || recheck cisco-ml2 || None
 
|-
 
|-
| Brocade || ML2 Driver || Shiv Haris || Y || None
+
| Cisco || CSR1kv - router service plugin || Nikolay Fedotov, Richard Winters || Y || recheck cisco-csr1kv || None
 
|-
 
|-
| Cisco || Plugin - NXOS || Dane Leblanc || N || It will be removed in Juno
+
| Cisco || VPNaaS - Driver || Dane Leblanc || Y || recheck cisco-vpnaas || None
 
|-
 
|-
| Cisco || Plugin - N1Kv || Dane Leblanc || Y || None
+
| Cloudbase Solutions || Plugin - Hyper-V || Alessandro Pilotti || Y ||  || None
 
|-
 
|-
| Cisco || ML2 - APIC || Dane Leblanc || N || It is not running against all Neutron commits, results are fake
+
| Embrane || Plugin || Ignacio Scopetta || N ||embrane-recheck|| CI fails for their own plugin commits: https://review.openstack.org/#/c/108226/
 
|-
 
|-
| Cisco || ML2 - DFA || Dane Leblanc || N || Results are fake. Needs clarification from Cisco
+
| Embrane || LBaaS - Driver || Ignacio Scopetta || N ||embrane-recheck|| No CI in place. Candidate to be removed from Neutron
 
|-
 
|-
| Cisco || ML2 - NXOS || Dane Leblanc || Y || None
+
| Freescale || ML2 - Driver || Trinath Somanchi || Y ||recheck freescale|| None
 
|-
 
|-
| Cisco || VPNaaS - Driver || ? || Y || None
+
| Freescale || FWaaS - Plugin || Trinath Somanchi || Y ||recheck freescale || None
 
|-
 
|-
| Embrane || Plugin || Ignacio Scopetta || N || No CI in place. Candidate to be removed from Neutron
+
| HP || ML2 OVSvAPP - Driver || Romil Gupta || Y || recheck-hpnetworkingci || None
 
|-
 
|-
| Embrane || LBaaS - Driver || Ignacio Scopetta || N || No CI in place. Candidate to be removed from Neutron
+
| IBM || Plugin - SDN-VE || Daya Kamath || Y || || None
 
|-
 
|-
| IBM || Plugin - SDN-VE || Mohammad Banikazemi || - || Results are not clear. Need clarification from IBM
+
| Juniper || Plugin - Contrail || Rudra Rugge || Y || || None
 
|-
 
|-
| Juniper || Plugin - Contrail || Rudra Rugge || Y || Needs to start testing all Neutron commits. Plugins just got merged in Juno-3
+
| Mellanox || Plugin || Omri Marcovitch || N || recheck mlnx  || It is deprecated. Will be removed in Kilo
 
|-
 
|-
| Mellanox || Plugin || Irena Berezovsky || N || It is deprecated. Will be removed in Kilo
+
| Mellanox || ML2 - Driver || Omri Marcovitch || Y || recheck mlnx  || None
 
|-
 
|-
| Mellanox || ML2 - Driver || Irena Berezovsky || N || Logs are not available. Needs clarification
+
| Mellanox || ML2 - Sriovnic switch || Omri Marcovitch || Y || recheck mlnx || None
 
|-
 
|-
| Mellanox || ML2 - Sriovnicagent || Irena Berezovsky || N || Logs are not available. Needs clarification
+
| Metaplugin || Plugin - Multiple || NTT Team || Y || metaplugin-recheck || None
 
|-
 
|-
| Metaplugin || Plugin - Multiple || NTT Team || N || It is missing some Neutron commits
+
| Midokura || Plugin - Midonet || Lucas Eznarriaga || Y || recheck midokura|| None
 
|-
 
|-
| Midokura || Plugin - Midonet || Lucas Eznarriaga || Y || None
+
| NEC || Plugin - OpenFlow  || Akihiro Motoki || Y || recheck-nec || None
 
|-
 
|-
| NEC || Plugin - OpenFlow || Akihiro Motoki || Y || None
+
| Citrix NetScaler || LBaaS - Driver || Parikshit Manur || Y || || None
 
|-
 
|-
| Nuage Networks || Plugin - VSP || Franck Yelles || Y || Plugin behaving correctly for +1, manual -1
+
| Nuage Networks || Plugin - VSP ||Sailaja Yanamandra || Y || recheck-nuage || None
 
|-
 
|-
| OFAgent || ML2 - OF || Yamamoto Takashi || Y || None
+
| OFAgent || ML2 - OF || Yamamoto Takashi || Y || ryu-recheck || None
 
|-
 
|-
| OneCoverage || Plugin - NVSD || ? || N || Logs are not available. It is missing some Neutron commits. Needs clarification
+
| One Convergence || Plugin - NVSD || Hemanth Ravi || Y || recheck oneconvergence|| None
 
|-
 
|-
| OpenDaylight || ML2 - ODL || ? || - || It is missing some Neutron commits
+
| OpenDaylight || ML2 - ODL || Dave Tucker (dave_tucker) / Kyle Mestery (mestery) || Y || recheck-opendaylight || None
 
|-
 
|-
| PLUMgrid || Plugin - Director || Fawad Khaliq || Y || None
+
| PLUMgrid || Plugin - Director || Fawad Khaliq || Y || || None
 
|-
 
|-
| Ryu || Plugin - Ryu Controller || Yamamoto Takashi || - || It is been deprecated and It will be removed in Kilo
+
| Pluribus Networks || ML2 Driver- Pluribus || Prashanth Prahalad || Y || || None
 
|-
 
|-
| Radware || LBaaS - Driver || Samuel Bercovici || N || CI does not exist. Should be removed from Neutron
+
| Ryu || Plugin - Ryu Controller || Yamamoto Takashi || Y || ryu-recheck || Deprecated. Will be removed in Kilo
 
|-
 
|-
| Tail-f NCS || ML2 - NCS || Luke Gorrie || - || It is missing some Neutron commits
+
| Radware || LBaaS - Driver || Samuel Bercovici || N || || CI does not exist. Should be removed from Neutron
 
|-
 
|-
| vArmour || FWaaS || Gary Duan || N || CI does not exist. Should be removed from Neutron
+
| Tail-f NCS || ML2 - NCS || Luke Gorrie || Y || recheck cisco-tailf || None
 
|-
 
|-
| VMware || Plugin - NSX || Aaron Rosen || - || It is missing some Neutron commits.
+
| vArmour || FWaaS || Gary Duan || Y || recheck varmour || None
 +
|-
 +
| VMware || Plugin - NSX || Aaron Rosen || Y || vmware-recheck || None
 
|}
 
|}
 +
 +
[[Category:Neutron]]

Latest revision as of 00:24, 12 April 2017


Caution icon.svg {{{header}}}

{{{body}}}

Introduction

Ensuring release quality through proper testing is an important tenant of the OpenStack community and Neutron team wants to do our part. We are introducing changes below provide more visibility into the quality and stability of vendor plugin and driver code. The policies described here are in effect immediately.


Rationale

Code proposals for third party plugins have always presented a review challenge for the Neutron core team. In the early days, code was often proposed by core project contributors and our review process only validated whether the requirements were met for community coding style and unit testing. As Neutron has added new resources via extensions, it has become more difficult for Neutron reviewers to ensure the proposed code is functional. Many of the plugins and/or drivers require proprietary hardware and/or software to conduct such testing.

In addition to testing changes, the Neutron team is revising the requirements for the point of contact for third party code. The changes bring the written expectations for contacts in line with current practice.


Plugin and Driver Processes

Getting a plugin or driver merged upstream into Neutron allows you the benefit of being a part of the simultaneous release, and likely having your plugin or driver packaged with distributions which ship releases based on the simultaneous releases from upstream. However, this is not a "free ride", you should ideally be giving back more than you are taking by getting your code upstream. When you submit your code, you're putting a burden on the existing reviews and infrastructure. The same goes with subsequent bug fixes and backports to stable releases. Thus, you should have someone from your company or team reviewing other code upstream, participating in meetings, etc. The following is a list of requirements for inclusion of code upstream:

  • Code which passes review, has adequate unit tests, and passes pep8 guidelines.
  • A functioning CI system, which has been running successfully against your plugin/driver patches, and other patches as well.
  • Participation in Neutron meetings, IRC channels, and email lists.
  • A member of the plugin/driver team participating in code reviews of other upstream code.


Removal of Upstream Plugins or Drivers

If you fail to meet the criteria above, you risk having your plugin or driver removed from upstream. The core team will continue to evaluate third party CI systems to ensure they are running and correctly testing patches for third party plugins and drivers. If they fail to function, an email will be sent to the openstack-dev mailing list asking for the owner to fix this issue. Ideally, the owner will reply to the email thread, and will work with the Neutron and Infra teams to address the CI issue. If no reply is received or if adequate progress is not being made to address the issue within 2 weeks, a process to remove the plugin or driver from upstream will commence. To get your plugin or driver upstream after it has been removed will take a functioning third party CI system running for a month, correctly voting on changes upstream.


Point of Contact Requirements

Each third party plugin and/or driver shall designate a point of contact for each coordinated release cycle. The contact will serve as a liaison between the Neutron core team and the vendor or community supporting the plugin or driver. The contact shall:

  • Attend weekly Neutron team IRC meetings
  • Be an active reviewer and contributor
  • Be an active participant on openstack-dev mailing list
  • Assist the core team with triaging bugs specific to the plugin and/or driver
  • Ensure OpenStack development deadlines are properly communicated back to their company and/or community


Testing Requirements

https://wiki.openstack.org/wiki/NeutronThirdPartyTesting


Existing Plugin and Drivers

Plugins and drivers currently in the Neutron project repository will be given a grace period until the Icehouse-2 milestone to implement external third party testing. At that time, the Neutron team will release a list of the compatible plugins and drivers (i.e. those that meet the testing requirements). Plugins and drivers that do not have external testing will be deprecated at the Icehouse release and will be candidates for removal when the J-release cycle opens.

The page ThirdPartySystems gathers information about all third party CI system (including Neutron related).

Vendor Plugin/Driver Name Contact Name Status Recheck command Notes
Neutron Team ML2 - OVS/LB Infra Team Y Covered by Infra (Jenkins)
A10 Networks LBaaS Driver Doug Wiegley Y redo-a10 None
Arista Networks ML2 Driver Sukhdev Kapur Y recheck/reverify no bug/bug # None
Avaya ML2 Driver Ravi Palaparthi Y None
Big Switch Plugin Kevin Benton Y recheck-bigswitch None
Big Switch ML2 Driver Kevin Benton Y None
BNC DCFabric-ML2-Driver Yanwei Xu Y recheck-DCFabric None
Brocade Vyatta Plugin Karthik Natarajan Y None
Brocade ML2 Driver Shiv Haris Y None
Cisco Plugin - NXOS Dane Leblanc N It is deprecated and It will be removed in Juno
Cisco Plugin - N1Kv Dane Leblanc Y recheck cisco-n1kv None
Cisco ML2 - APIC Dane Leblanc Y recheck cisco-apic None
Cisco ML2 - DFA Dane Leblanc Y None
Cisco ML2 - NXOS Dane Leblanc Y recheck cisco-ml2 None
Cisco CSR1kv - router service plugin Nikolay Fedotov, Richard Winters Y recheck cisco-csr1kv None
Cisco VPNaaS - Driver Dane Leblanc Y recheck cisco-vpnaas None
Cloudbase Solutions Plugin - Hyper-V Alessandro Pilotti Y None
Embrane Plugin Ignacio Scopetta N embrane-recheck CI fails for their own plugin commits: https://review.openstack.org/#/c/108226/
Embrane LBaaS - Driver Ignacio Scopetta N embrane-recheck No CI in place. Candidate to be removed from Neutron
Freescale ML2 - Driver Trinath Somanchi Y recheck freescale None
Freescale FWaaS - Plugin Trinath Somanchi Y recheck freescale None
HP ML2 OVSvAPP - Driver Romil Gupta Y recheck-hpnetworkingci None
IBM Plugin - SDN-VE Daya Kamath Y None
Juniper Plugin - Contrail Rudra Rugge Y None
Mellanox Plugin Omri Marcovitch N recheck mlnx It is deprecated. Will be removed in Kilo
Mellanox ML2 - Driver Omri Marcovitch Y recheck mlnx None
Mellanox ML2 - Sriovnic switch Omri Marcovitch Y recheck mlnx None
Metaplugin Plugin - Multiple NTT Team Y metaplugin-recheck None
Midokura Plugin - Midonet Lucas Eznarriaga Y recheck midokura None
NEC Plugin - OpenFlow Akihiro Motoki Y recheck-nec None
Citrix NetScaler LBaaS - Driver Parikshit Manur Y None
Nuage Networks Plugin - VSP Sailaja Yanamandra Y recheck-nuage None
OFAgent ML2 - OF Yamamoto Takashi Y ryu-recheck None
One Convergence Plugin - NVSD Hemanth Ravi Y recheck oneconvergence None
OpenDaylight ML2 - ODL Dave Tucker (dave_tucker) / Kyle Mestery (mestery) Y recheck-opendaylight None
PLUMgrid Plugin - Director Fawad Khaliq Y None
Pluribus Networks ML2 Driver- Pluribus Prashanth Prahalad Y None
Ryu Plugin - Ryu Controller Yamamoto Takashi Y ryu-recheck Deprecated. Will be removed in Kilo
Radware LBaaS - Driver Samuel Bercovici N CI does not exist. Should be removed from Neutron
Tail-f NCS ML2 - NCS Luke Gorrie Y recheck cisco-tailf None
vArmour FWaaS Gary Duan Y recheck varmour None
VMware Plugin - NSX Aaron Rosen Y vmware-recheck None