A component-based software defined networking framework for OpenStack.
Go to file
Isaku Yamahata 3ac48b77e1 gre_tunnel: exception due to race condition
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>
2013-07-13 08:17:36 +09:00
bin rename ryu-client under ryu/tests 2013-07-01 06:04:06 +09:00
doc man: remove man page of ryu client 2013-07-09 12:12:30 +09:00
etc/ryu revert s/_/-/ changes for ryu.conf 2013-03-04 21:14:29 +09:00
ryu gre_tunnel: exception due to race condition 2013-07-13 08:17:36 +09:00
tools update requirements 2013-05-13 08:40:34 +09:00
.gitignore Added test framework, ported from Quantum 2012-05-07 21:29:47 +09:00
.pylintrc test: improve the framework 2012-06-27 20:57:07 +09:00
.travis.yml fix travis config file 2013-06-09 23:07:21 -07:00
LICENSE LICENCE: change end-of-line code CRLF to LF 2013-02-13 06:10:15 +09:00
MANIFEST.in MANIFEST.in: fix up to address warning 2013-07-09 12:12:26 +09:00
README.rst update the site url 2013-07-09 12:14:04 +09:00
run_tests.sh rename ryu-client under ryu/tests 2013-07-01 06:04:06 +09:00
setup.cfg update requirements 2013-05-13 08:40:34 +09:00
setup.py update the site url 2013-07-09 12:14:04 +09:00
SubmittingPatches.rst doc: fix the mailing list address 2013-04-13 04:40:34 +09:00

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.