3ac48b77e1
This depends on thread scheduling. When event handler is invoked, there may not corresponding network_id in network module. In fact, Network.remove_network() fires EventNetworkPort(add_del=False) before EventNetworkDel event so that it is unnecessary to call _vm_port_mac_handler(). > 127.0.0.1 - - [19/Jun/2013 11:24:25] "DELETE > /v1.0/networks/8179bb70-a63f-4c74-a82e-a21f3c275c9a HTTP/1.1" 200 115 0.000488 > hub: uncaught exception: Traceback (most recent call last): > File "/opt/stack/ryu/ryu/lib/hub.py", line 50, in _launch > func(*args, **kwargs) > File "/opt/stack/ryu/ryu/base/app_manager.py", line 104, in _event_loop > handler(ev) > File "/opt/stack/ryu/ryu/app/gre_tunnel.py", line 210, in network_del_handler > for (dpid, port_no) in self.nw.list_ports(network_id): > File "/opt/stack/ryu/ryu/controller/network.py", line 319, in list_ports > return self.networks.list_ports(network_id) > File "/opt/stack/ryu/ryu/controller/network.py", line 97, in list_ports > raise NetworkNotFound(network_id=network_id) > NetworkNotFound: no such network id 8179bb70-a63f-4c74-a82e-a21f3c275c9a Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> |
||
---|---|---|
bin | ||
doc | ||
etc/ryu | ||
ryu | ||
tools | ||
.gitignore | ||
.pylintrc | ||
.travis.yml | ||
LICENSE | ||
MANIFEST.in | ||
README.rst | ||
run_tests.sh | ||
setup.cfg | ||
setup.py | ||
SubmittingPatches.rst |
What's Ryu
Ryu is an Operating System for Software Defined Networking.
Ryu aims to provide a logically centralized control and well defined API that make it easy for operators to create new network management and control applications. Currently, Ryu manages network devices by using OpenFlow. You can say that Ryu is an OpenFlow Controller, which support OpenFlow v1.0, v1.2, v1.3, and Nicira Extensions.
All of the code is freely available under the Apache 2.0 license. Ryu is fully written in Python.
Quick Start
Installing Ryu is quite easy:
% pip install ryu
If you prefer to install Ryu from the source code:
% git clone git://github.com/osrg/ryu.git
% cd ryu; python ./setup.py install
If you want to use Ryu with OpenStack, please refer detailed documents. You can create tens of thousands of isolated virtual networks without using VLAN. The Ryu application is included in OpenStack mainline as of Essex release.
If you want to write your Ryu application, have a look at Writing ryu application document. After writing your application, just type:
% ryu-manager yourapp.py
Support
Ryu Official site is http://osrg.github.io/ryu/.
If you have any questions, suggestions, and patches, the mailing list is available at ryu-devel ML. The ML archive at Gmane is also available.