1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
:orphan:
.. _getting_started:
***************
Getting Started
***************
Overview/What's Ryu the Network Operating System
================================================
Ryu is an open-sourced Network Operating System which is licensed under Apache v2.0.
It supports openflow protocol.
If you are not familiar with Software Defined Network(SDN) and
OpenFlow/openflow controller,
please refer to `openflow org <http://www.openflow.org/>`_ .
The mailing list is available at
`ryu-devel ML <https://lists.sourceforge.net/lists/listinfo/ryu-devel>`_
Installing Ryu Network Operating System
=======================================
Extract source code and just type::
% python ./setup.py install
Then, run ryu-manager.
It listens to ip address 0.0.0.0 and port 6633 by default.
Then have your openflow switch (hardware or openvswitch OVS) to connect to
ryu-manager.
For OVS case, you can done it by
% ovs-vsctl set-controller <your bridge> tcp:<ip addr>[:<port: default 6633>]
At the moment, ryu-manager supports only tcp method.
If you want to use it with openstack nova and quantum OVS plugin,
Please refer to :ref:`using_with_openstack`.
invoking application and Configuration
======================================
It can be configured by passing configuration file like::
ryu-manager [generic/application specific options...]
At the moment applications including the following ones are available
(And more to come as Ryu evolves.)
* ryu.app.simple_isolation.SimpleIsolation
* ryu.app.rest.RestAPI
* ryu.app.simple_bridge.SimpleSwitch
The generic available is as follows::
--app-lists: application module name to run;
repeat this option to specify a list of values
--help: show help
The options for REST server::
--wsapi-host: webapp listen host
(default: '')
--wsapi-port: webapp listen port
(default: '8080')
(an integer)
The options for openflow controller::
--ofp-listen-host: openflow listen host
(default: '')
--ofp-tcp-listen-port: openflow tcp listen port
(default: '6633')
(an integer)
The options for log::
--default-log-level: default log level
(an integer)
--log-dir: log file directory
--log-file: log file name
--log-file-mode: default log file permission
(default: '0644')
--[no]use-stderr: log to standard error
(default: 'true')
--use-syslog: output to syslog
(default: 'False')
--[no]verbose: show debug output
(default: 'false')
The option for oslo.config.cfg::
--config-file: Path to a config file to use. Multiple config files
can be specified, with values in later files taking precedence.
(default: [])
--config-dir: Path to a config directory to pull *.conf files from.
This file set is sorted, so as to provide a predictable parse order if
individual options are over-ridden. The set is parsed after the file(s),
if any, specified via --config-file, hence over-ridden options in the
directory take precedence.
Invoking Example
================
The example is as follows::
% PYTHONPATH=. ./bin/ryu-manager --wsapi-port 8081 --verbose --app-lists ryu.app.simple_isolation,ryu.app.rest
loading app ryu.app.simple_isolation
loading app ryu.app.rest
loading app ryu.controller.ofp_handler
creating context dpset
creating context wsgi
creating context network
instantiating app ryu.app.simple_isolation
instantiating app ryu.app.rest
instantiating app ryu.controller.ofp_handler
BRICK dpset
CONSUMES EventOFPStateChange
CONSUMES EventOFPPortStatus
CONSUMES EventOFPSwitchFeatures
BRICK ofp_event
PROVIDES EventOFPStateChange TO ['dpset']
PROVIDES EventOFPPortStatus TO ['dpset', 'SimpleIsolation']
PROVIDES EventOFPPacketIn TO ['SimpleIsolation']
PROVIDES EventOFPSwitchFeatures TO ['dpset', 'SimpleIsolation']
CONSUMES EventOFPEchoRequest
CONSUMES EventOFPErrorMsg
CONSUMES EventOFPSwitchFeatures
CONSUMES EventOFPHello
BRICK network
BRICK RestAPI
BRICK SimpleIsolation
CONSUMES EventOFPPacketIn
CONSUMES EventOFPPortStatus
CONSUMES EventOFPSwitchFeatures
|