Create agent-style OpenFlow neutron plugin and agent (ML2 based Ryu plugin and agent)

Registered by YAMAMOTO Takashi on 2014-01-20

Create agent-style OpenFlow neutron plugin and agent.
- ML2 based plugin
- An agent acts as an OpenFlow controller on each nodes ("agent-style" meant this)
- OpenFlow 1.3

This blueprint adds an ML2 driver for OpenFlow switches with the features and design mostly equivalent to OVS agent but program a switch by acting as a full OpenFlow controller the switch
can connect to, instead of kicking ovs-ofctl command every time.

The OpenFlow controller part is implemented by importing Ryu as OpenFlow Python library.
('import' in the sense of python import statement.)

This design would make feature development of rich features like local arp responder
straightforward because it's easier to handle async messages like packet-in.

For longer term, we plan to make this work with OpenFlow switch implementations other than OVS.
E.g. use OF-Config instead of ovs-vsctl command where possible.
E.g. stop using patch ports

This is NOT intended to be a functionality equivalent to the existing Ryu plugin.

Blueprint information

Status:
Complete
Approver:
Mark McClain
Priority:
Medium
Drafter:
YAMAMOTO Takashi
Direction:
Approved
Assignee:
YAMAMOTO Takashi
Definition:
Approved
Series goal:
Accepted for icehouse
Implementation:
Implemented
Milestone target:
milestone icon 2014.1
Started by
YAMAMOTO Takashi on 2014-01-20
Completed by
Mark McClain on 2014-03-04

Related branches

Sprints

Whiteboard

Addressed by: https://review.openstack.org/71791
    Implement OpenFlow Switch mechanism driver

Gerrit topic: https://review.openstack.org/#q,topic:bp/ryu-ml2-driver,n,z

7-Feb (yamamoto): we now made the code public on Gerrit. we want the code merged for icehouse.
can you please reconsider?

7-Feb (amotokI) Third-party testing requirement also applies to ML2 driver. As ML2 team discussed in the last ML2 subteam meeting, both well reviewed patch and third party testing support are the criteria of the merge. All blueprint proposing ML2 drivers has the same priority "Low" and a blueprint which clears the requirement of testing will be considered to raise the priority to "Medium".
In addition, ML2 team hope someone from ryu team join ML2 meetings.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.