70542380d3
What this patch implements: This patch implements a tool which performs OpenFlow conformance testing. The tool can: - install various flow entries of OpenFlow 1.3 as follows: * all 'action' except SET_QUEUE and GROUP * all 'match' except IN_PHY_PORT - confirm whether the datapath works correctly according to the installed flow entries. Required test environment: The tool requires the test environment that includes 2 switches and 2 links as follows: +-----------+ +----------| target sw | The OpenFlow switch to be tested | +-----------+ +------------+ (1) (2) | controller | | | +------------+ (1) (2) | +-----------+ +----------| tester sw | OpenFlow Switch +-----------+ (X) : port number How does the tool work: The tool will: - install the flow entries into the target switch. - transmit a packet from the tester switch to the target switch. * According to the installed flow entries, the target switch outputs a packet towards the tester switch. * The tester switch sends a PacketIn message to the tool. - examine the packet that is included in the PacketIn message and output the result. * The tool supports also the table-miss examinations. The tool processes test files in the specified directory sequentially. By forming the result, you can create the list as: http://osrg.github.io/ryu-certification/switch/ovs.html http://osrg.github.io/ryu-certification/switch/LINC.html http://osrg.github.io/ryu-certification/switch/ofsoftswitch13.html Required test file format: [ "test name", { test pattern #01 }, { test pattern #02 }, ... ] Each test pattern has the following internal format: { "description": description of this test pattern, "prerequisite": [ FlowMod messages used by this test pattern ], "tests": [ "ingress": inbound packet data, "egress": outbound packet data, "PACKET-IN": packet data sent by PacketIn message, "table-miss": table id in which table-miss occurs ] } The extensions of the test files have to be '.json'. How to run: Do the following command: ryu-manager ryu/tests/switch/tester.py The following options can be used: - --test-switch-target (target sw dp-id) - --test-switch-tester (tester sw dp-id) - --test-switch-dir (test files directory) ex) ryu-manager --test-switch-target 0000000000000005 --test-switch-dir /home/ryu/tests ryu/tests/switch/tester.py Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com> 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 | ||
tox.ini |
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 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.