]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commit
OVS-agent: Introduce Ryu based OpenFlow implementation
authorYAMAMOTO Takashi <yamamoto@valinux.co.jp>
Mon, 2 Mar 2015 07:40:11 +0000 (16:40 +0900)
committerIWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Wed, 2 Sep 2015 05:05:18 +0000 (14:05 +0900)
commitb3e7e21c32a251ba0b7123aa909edeaedd08152a
tree6fa41a2ded902508510bc1a115623c65e3c533b9
parent24fde6cae2e26d6f1d912cc8b8dbacaaf523b3d7
OVS-agent: Introduce Ryu based OpenFlow implementation

Introduce an alternative OpenFlow implementation, "native",
implemented using Ryu ofproto python library from Ryu SDN Framework.
Make it selectable with of_driver=native agent option.
The aim is to replace the existing ovs-ofctl based implementation
eventually.

It introduces node-local OpenFlow controller embedded in
OVS agent.  Benefits include:
* Reduce the overhead of invoking ovs-ofctl command (and associated
  rootwrap)
* Make future uses of OpenFlow asynchronous messages (e.g. Packet-In,
  Port-Status, etc) easier
* Make XenAPI integration simpler

Highlights:
* Switch to OpenFlow 1.3.
* Make OVS-agent act as an OpenFlow controller
* Configure OVS on the node to connect to the controller

DocImpact

Implements: blueprint ovs-ofctl-to-python
Co-Authored-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Change-Id: I02e65ea7c6083b2c0a686fed2ab04da4d92b21a3
29 files changed:
etc/neutron/plugins/ml2/openvswitch_agent.ini
etc/neutron/rootwrap.d/openvswitch-plugin.filters
neutron/agent/common/ovs_lib.py
neutron/plugins/ml2/drivers/openvswitch/agent/common/config.py
neutron/plugins/ml2/drivers/openvswitch/agent/main.py
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/__init__.py [new file with mode: 0644]
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_dvr_process.py [new file with mode: 0644]
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_int.py [new file with mode: 0644]
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_phys.py [new file with mode: 0644]
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_tun.py [new file with mode: 0644]
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/main.py [new file with mode: 0644]
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ofswitch.py [new file with mode: 0644]
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py [new file with mode: 0644]
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_ryuapp.py [new file with mode: 0644]
neutron/plugins/ml2/drivers/openvswitch/agent/openflow/ovs_ofctl/br_tun.py
neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py
neutron/plugins/ml2/drivers/openvswitch/agent/xenapi/etc/xapi.d/plugins/netwrap
neutron/tests/functional/agent/test_ovs_flows.py
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/fake_oflib.py [new file with mode: 0644]
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/__init__.py [new file with mode: 0644]
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge_test_base.py [new file with mode: 0644]
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/test_br_int.py [new file with mode: 0644]
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/test_br_phys.py [new file with mode: 0644]
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/test_br_tun.py [new file with mode: 0644]
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/ovs_ofctl/test_br_tun.py
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/ovs_test_base.py
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py
neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_tunnel.py
requirements.txt