Simon Horman 5ba92e9ad2 Allow messages inside messages
Bundle Add Message and Request Forward Message, which is part of OpenFlow
1.4, encapsulates an OpenFlow message in side an OpenFlow message.

This patch prepares for this by adding a MsgInMsgBase class, a subclass of
MsgBase which allows its subclasses to include subclasses of either
MsgInMsgBase or MsgBase when when parsing classes from JSON: The MsgBase
class does not allow this.

This change has three parts:
* Remove the assertion in
  ofproto_parser.py:StringifyMixin::cls_from_jsondict_key()
  that cls is not a subclass of MsgBase.

* Pass **additional_args to various stringify.py:StringifyMixin decoder
  methods to make the datapath available when instantiating
  MsgBase subclasses.

* Override _decode_value() in MsgInMsgBase to pass **additional_args
  to decoder. The method in the parent class, StringifyMixin,
  does not pass **additional_args.

  The effect is to pass a datapath argument if
  the class is a subclass of MsgInMsgBase but not if the
  class is a direct subclass of MsgBase.

  By only making messages which allow messages inside them
  subclasses of MsgInMsgBase this allows the datapath
  argument to be passed to the decoder if and only if needed.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-03-21 20:43:05 +09:00
2014-03-21 20:43:05 +09:00
2013-09-02 14:44:29 +09:00
2012-06-27 20:57:07 +09:00
2013-09-08 17:47:52 +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 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.

Description
RETIRED, further work has moved to Debian project infrastructure
Readme 20 MiB
Languages
Python 86.6%
Erlang 12.6%
C 0.4%
Shell 0.3%
JavaScript 0.1%