A component-based software defined networking framework for OpenStack.
Go to file
IWASE Yusuke 5bde6ae440 flags: Inject __class__ attribute to LooseVersion
Currently, ryu-manager uses distutils.version.LooseVersion for
"--zapi-frr-version" to parse the given version sting.
With custom type class for oslo_config.cfg.Opt, oslo_config might access
__class__ attribute for equal comparison.
But in case on Python 2, LooseVersion does not have __class__ attribute
and it causes AttributeError. (This error is not always reproduced)

This patch injects required attribute into LooseVersion and avoids this
problem.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-02 11:18:03 +09:00
bin delete bin/neutron-ofagent-agent 2014-04-21 19:06:25 +09:00
debian pip-requires: gui_topology requires webob>=1.2 2014-07-07 22:13:37 +09:00
doc library_ovsdb_manager: Descriptions for OVS configs 2017-11-02 09:20:55 +09:00
etc/ryu ryu.conf: obsoleted argument used in sample configuration 2014-03-16 20:26:09 +09:00
ryu flags: Inject __class__ attribute to LooseVersion 2017-11-02 11:18:03 +09:00
tools Revert "tests: Separate test files from Ryu module" 2017-06-30 14:23:03 +09:00
.gitignore add .tox/ to .gitignore 2013-09-02 14:44:29 +09:00
.pylintrc .pylintrc: Remove deprecated output format feature 2016-02-27 20:40:35 +09:00
.travis.yml Revert "tests: Separate test files from Ryu module" 2017-06-30 14:23:03 +09:00
CONTRIBUTING.rst Revert "tests: Separate test files from Ryu module" 2017-06-30 14:23:03 +09:00
LICENSE LICENCE: change end-of-line code CRLF to LF 2013-02-13 06:10:15 +09:00
MANIFEST.in Revert "tests: Separate test files from Ryu module" 2017-06-30 14:23:03 +09:00
README.rst README: Dependencies for installing optional requirements 2017-06-22 16:07:41 +09:00
run_tests.sh Revert "tests: Separate test files from Ryu module" 2017-06-30 14:23:03 +09:00
setup.cfg drop python2.6 support 2016-02-18 06:54:47 +09:00
setup.py Uncap pbr version 2015-09-15 17:01:53 +09:00
tox.ini Revert "tests: Separate test files from Ryu module" 2017-06-30 14:23:03 +09:00

What's Ryu

Ryu is a component-based software defined networking framework.

Ryu provides software components with well defined API that make it easy for developers to create new network management and control applications. Ryu supports various protocols for managing network devices, such as OpenFlow, Netconf, OF-config, etc. About OpenFlow, Ryu supports fully 1.0, 1.2, 1.3, 1.4, 1.5 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; pip install .

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

Optional Requirements

Some functionalities of ryu requires extra packages:

  • OF-Config requires lxml and ncclient
  • NETCONF requires paramiko
  • BGP speaker (SSH console) requires paramiko
  • Zebra protocol service (database) requires SQLAlchemy

If you want to use the functionalities, please install requirements:

% pip install -r tools/optional-requires

Please refer to tools/optional-requires for details.

Prerequisites

If you got some error messages at installation step, please confirm dependencies for building required Python packages.

On Ubuntu(16.04 LTS or later):

% apt install gcc python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev

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.