mirror of
https://github.com/faucetsdn/ryu.git
synced 2026-01-25 18:41:56 +01:00
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
294d84ef33 | ||
|
|
78d3ec5a68 | ||
|
|
a3fda22167 | ||
|
|
bf21ed0b0b | ||
|
|
0edb286f83 | ||
|
|
374f32a20a | ||
|
|
53cfa6dacf | ||
|
|
278bc8fe00 | ||
|
|
9ce8698b21 | ||
|
|
a7b6f0a036 | ||
|
|
3b6842eaed | ||
|
|
dab0aca5cc | ||
|
|
b91a263d07 | ||
|
|
1e56302a56 | ||
|
|
0f087cefeb | ||
|
|
9131d24c00 | ||
|
|
152ad2ea3e | ||
|
|
9b9208d9e6 | ||
|
|
692290fd67 | ||
|
|
87fba4e199 | ||
|
|
393e354b97 | ||
|
|
5b487b165a | ||
|
|
208ba0b039 | ||
|
|
a0501a12b1 | ||
|
|
47ef512494 | ||
|
|
eb026768fc |
25
.github/workflows/tests-unit.yml
vendored
25
.github/workflows/tests-unit.yml
vendored
@ -1,25 +0,0 @@
|
||||
name: Unit tests
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
unit-tests:
|
||||
name: Unit tests
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.5, 3.6, 3.7, 3.8, 3.9]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade -r pip-requirements.txt
|
||||
pip install tox tox-gh-actions coveralls
|
||||
bash ryu/tests/integrated/common/install_docker_test_pkg_for_github_actions.sh
|
||||
- name: Test with tox
|
||||
run: NOSE_VERBOSE=0 tox
|
||||
@ -10,6 +10,6 @@
|
||||
# W0614: Unused import %s from wildcard import
|
||||
# R0801: Similar lines in %s files
|
||||
disable=C0111,W0511,W0142,E0602,C0103,E1101,R0903,W0614,R0801
|
||||
msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}
|
||||
output-format=parseable
|
||||
reports=yes
|
||||
files-output=no
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
version: 2
|
||||
build:
|
||||
image: latest
|
||||
python:
|
||||
version: 3.6
|
||||
install:
|
||||
- method: pip
|
||||
path: .
|
||||
sphinx:
|
||||
configuration: doc/source/conf.py
|
||||
formats: all
|
||||
@ -1,15 +0,0 @@
|
||||
{
|
||||
"separateMajorMinor": false,
|
||||
"schedule": [
|
||||
"after 10pm every weekday",
|
||||
"before 5am every weekday",
|
||||
"every weekend"
|
||||
],
|
||||
"timezone": "Pacific/Auckland",
|
||||
"extends": [
|
||||
"config:base",
|
||||
":prHourlyLimit1",
|
||||
":preserveSemverRanges",
|
||||
"docker:enableMajor"
|
||||
]
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
---
|
||||
linters:
|
||||
flake8:
|
||||
python: 3
|
||||
max-line-length: 120
|
||||
pep8:
|
||||
python: 3
|
||||
max-line-length: 120
|
||||
py3k:
|
||||
10
.travis.yml
Normal file
10
.travis.yml
Normal file
@ -0,0 +1,10 @@
|
||||
language: python
|
||||
python:
|
||||
- "2.6"
|
||||
- "2.7"
|
||||
|
||||
install:
|
||||
- "pip install -r tools/pip-requires -r tools/test-requires --use-mirrors"
|
||||
|
||||
script:
|
||||
- "./run_tests.sh -N"
|
||||
@ -7,7 +7,6 @@ graft etc
|
||||
graft tools
|
||||
recursive-exclude doc/build *
|
||||
recursive-exclude ryu/tests/packet_data_generator *
|
||||
recursive-exclude ryu/tests/packet_data_generator2 *
|
||||
global-exclude *~
|
||||
global-exclude *.pyc
|
||||
global-exclude .gitignore
|
||||
|
||||
50
README.rst
50
README.rst
@ -1,17 +1,12 @@
|
||||
**PLEASE READ: RYU NOT CURRENTLY MAINTAINED**
|
||||
|
||||
* The Ryu project needs new maintainers - please file an issue if you are able to assist.
|
||||
* see OpenStack's os-ken (`<https://github.com/openstack/os-ken>`_) for a maintained Ryu alternative.
|
||||
|
||||
What's Ryu
|
||||
==========
|
||||
Ryu is a component-based software defined networking framework.
|
||||
|
||||
Ryu provides software components with well defined API's that make it
|
||||
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.
|
||||
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.
|
||||
@ -25,46 +20,25 @@ Installing Ryu is quite easy::
|
||||
|
||||
If you prefer to install Ryu from the source code::
|
||||
|
||||
% git clone https://github.com/faucetsdn/ryu.git
|
||||
% cd ryu; pip install .
|
||||
% git clone git://github.com/osrg/ryu.git
|
||||
% cd ryu; python ./setup.py install
|
||||
|
||||
If you want to use Ryu with `OpenStack <http://openstack.org/>`_,
|
||||
please refer `detailed documents <http://ryu.readthedocs.org/en/latest/using_with_openstack.html>`_.
|
||||
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 <http://ryu.readthedocs.io/en/latest/writing_ryu_app.html>`_ document.
|
||||
`Writing ryu application <http://ryu.readthedocs.org/en/latest/writing_ryu_app.html>`_ document.
|
||||
After writing your application, just type::
|
||||
|
||||
% ryu-manager yourapp.py
|
||||
|
||||
|
||||
Optional Requirements
|
||||
=====================
|
||||
|
||||
Some functions of ryu require 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 these functions, please install the requirements::
|
||||
|
||||
% pip install -r tools/optional-requires
|
||||
|
||||
Please refer to tools/optional-requires for details.
|
||||
|
||||
|
||||
Prerequisites
|
||||
=============
|
||||
If you got some error messages at the installation stage, please confirm
|
||||
dependencies for building the 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 `<https://ryu-sdn.org/>`_.
|
||||
Ryu Official site is `<http://osrg.github.io/ryu/>`_.
|
||||
|
||||
If you have any
|
||||
questions, suggestions, and patches, the mailing list is available at
|
||||
|
||||
@ -5,59 +5,46 @@ How to Get Your Change Into Ryu
|
||||
Submitting a change
|
||||
===================
|
||||
|
||||
To send patches to ryu, please make a
|
||||
`pull request <https://github.com/faucetsdn/ryu>`_ on GitHub.
|
||||
Send patches to ryu-devel@lists.sourceforge.net. Please don't use 'pull
|
||||
request' on github. We expect you to send a patch in Linux kernel
|
||||
development style. If you are not familiar with it, please read the
|
||||
following document:
|
||||
|
||||
Please check your changes with autopep8, pycodestyle(pep8) and running
|
||||
unit tests to make sure that they don't break the existing features.
|
||||
The following command does all for you.
|
||||
http://lxr.linux.no/source/Documentation/SubmittingPatches
|
||||
|
||||
.. code-block:: bash
|
||||
Please check your changes with pep8 and run unittests to make sure
|
||||
that they don't break the existing features. The following command
|
||||
does both for you:
|
||||
|
||||
# Install dependencies of tests
|
||||
$ pip install -r tools/test-requires
|
||||
fujita@rose:~/git/ryu$ ./run_tests.sh
|
||||
|
||||
# Execute autopep8
|
||||
# Also, it is convenient to add settings of your editor or IDE for
|
||||
# applying autopep8 automatically.
|
||||
$ autopep8 --recursive --in-place ryu/
|
||||
|
||||
# Execute unit tests and pycodestyle(pep8)
|
||||
$ ./run_tests.sh
|
||||
|
||||
Of course, you are encouraged to add unit tests when you add new
|
||||
Of course, you are encouraged to add unittests when you add new
|
||||
features (it's not a must though).
|
||||
|
||||
Python version and libraries
|
||||
============================
|
||||
* Python 3.5, 3.6, 3.7, 3.8, 3.9:
|
||||
* Python 2.6+
|
||||
As RHEL 6 adopted python 2.6, features only for 2.7+ should be avoided.
|
||||
|
||||
Ryu supports multiple Python versions. CI tests on GitHub Actions is running
|
||||
on these versions.
|
||||
|
||||
* standard library + widely used library:
|
||||
|
||||
Basically widely used == OpenStack adopted.
|
||||
As usual there are exceptions. Or python binding library for other
|
||||
* standard library + widely used library
|
||||
Basically widely used == OpenStack adopted
|
||||
As usual there are exceptions. gevents. Or python binding library for other
|
||||
component.
|
||||
|
||||
Coding style guide
|
||||
==================
|
||||
* pep8:
|
||||
|
||||
* pep8
|
||||
As python is used, PEP8 is would be hopefully mandatory for
|
||||
https://www.python.org/dev/peps/pep-0008/
|
||||
|
||||
* pylint:
|
||||
http://www.python.org/dev/peps/pep-0008/
|
||||
|
||||
* pylint
|
||||
Although pylint is useful for finding bugs, but pylint score not very
|
||||
important for now because we're still at early development stage.
|
||||
https://www.pylint.org/
|
||||
|
||||
* Google python style guide is very helpful:
|
||||
http://google.github.io/styleguide/pyguide.html
|
||||
* Google python style guide is very helpful
|
||||
http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
|
||||
|
||||
* Guidelines derived from Guido's Recommendations:
|
||||
Guidelines derived from Guido's Recommendations
|
||||
|
||||
============================= ================= ========
|
||||
Type Public Internal
|
||||
@ -75,11 +62,10 @@ Coding style guide
|
||||
Local Variables lower_with_under
|
||||
============================= ================= ========
|
||||
|
||||
* OpenStack Nova style guide:
|
||||
* OpenStack Nova style guide
|
||||
https://github.com/openstack/nova/blob/master/HACKING.rst
|
||||
|
||||
* JSON files:
|
||||
|
||||
* JSON files
|
||||
Ryu source tree has JSON files under ryu/tests/unit/ofproto/json.
|
||||
They are used by unit tests. To make patches easier to read,
|
||||
they are normalized using tools/normalize_json.py. Please re-run
|
||||
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright (C) 2014 Nippon Telegraph and Telephone Corporation.
|
||||
# Copyright (C) 2014 YAMAMOTO Takashi <yamamoto at valinux co jp>
|
||||
# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
|
||||
# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@ -16,5 +16,5 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from ryu.cmd.ryu_base import main
|
||||
from ryu.cmd.rpc_cli import main
|
||||
main()
|
||||
5
debian/changelog
vendored
5
debian/changelog
vendored
@ -1,5 +0,0 @@
|
||||
ryu (3.10-1) trusty; urgency=low
|
||||
|
||||
* Initial release.
|
||||
|
||||
-- Ryu Project Team <ryu-devel@lists.sourceforge.net> Wed, 18 Jun 2014 14:50:23 +0900
|
||||
3
debian/clean
vendored
3
debian/clean
vendored
@ -1,3 +0,0 @@
|
||||
ryu.egg-info/*
|
||||
debian/ryu-manager.8
|
||||
debian/ryu.8
|
||||
1
debian/compat
vendored
1
debian/compat
vendored
@ -1 +0,0 @@
|
||||
9
|
||||
82
debian/control
vendored
82
debian/control
vendored
@ -1,82 +0,0 @@
|
||||
Source: ryu
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Ryu Project Team <ryu-devel@lists.sourceforge.net>
|
||||
Build-Depends: debhelper (>= 9.0.0), python-all (>= 2.6), python-sphinx
|
||||
Build-Depends-Indep:
|
||||
python-eventlet,
|
||||
python-lxml,
|
||||
python-msgpack (>= 0.4.0),
|
||||
python-netaddr,
|
||||
python-oslo.config (>= 1:1.2.0),
|
||||
python-paramiko,
|
||||
python-routes,
|
||||
python-six (>= 1.4.0),
|
||||
python-webob (>=1.2),
|
||||
python-setuptools,
|
||||
python-pip,
|
||||
python-pbr
|
||||
Standards-Version: 3.9.5
|
||||
Homepage: https://ryu-sdn.org
|
||||
Vcs-Git: git://github.com/faucetsdn/ryu.git
|
||||
Vcs-Browser: https://github.com/faucetsdn/ryu
|
||||
XS-Python-Version: >= 2.6
|
||||
|
||||
Package: python-ryu
|
||||
Architecture: all
|
||||
Section: python
|
||||
Depends:
|
||||
python-eventlet,
|
||||
python-lxml,
|
||||
python-msgpack (>= 0.4.0),
|
||||
python-netaddr,
|
||||
python-oslo.config (>= 1:1.2.0),
|
||||
python-paramiko,
|
||||
python-routes,
|
||||
python-six (>= 1.4.0),
|
||||
python-webob (>=1.2),
|
||||
${misc:Depends},
|
||||
${python:Depends}
|
||||
Suggests: python-ryu-doc
|
||||
Provides: ${python:Provides}
|
||||
XB-Python-Version: ${python:Versions}
|
||||
Description: Ryu is a software defined networking framework
|
||||
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.
|
||||
.
|
||||
This package provides the Python library.
|
||||
|
||||
Package: ryu-bin
|
||||
Architecture: all
|
||||
Depends:
|
||||
python-ryu,
|
||||
${misc:Depends},
|
||||
${python:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Ryu is a software defined networking framework
|
||||
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.
|
||||
.
|
||||
This package provides the Ryu manager.
|
||||
|
||||
Package: python-ryu-doc
|
||||
Architecture: all
|
||||
Section: doc
|
||||
Description: Ryu is a software defined networking framework
|
||||
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.
|
||||
.
|
||||
This package provides the HTML documentation including the Ryu API
|
||||
manual.
|
||||
62
debian/copyright
vendored
62
debian/copyright
vendored
@ -1,62 +0,0 @@
|
||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: ryu
|
||||
Source: http://github.com/faucetsdn/ryu
|
||||
|
||||
Files: *
|
||||
Copyright: 2014 Ryu Project Team <ryu-devel@lists.sourceforge.net>
|
||||
License: Apache-2.0
|
||||
|
||||
Files: ryu/contrib/_eventlet/*
|
||||
Copyright: 2005-2006, Bob Ippolito
|
||||
2007-2010, Linden Research, Inc.
|
||||
2008-2010, Eventlet Contributors (see AUTHORS)
|
||||
License: MIT
|
||||
|
||||
Files: ryu/contrib/ncclient/*
|
||||
Copyright: Shikhar Bhushan <shikhar@schmizz.net>
|
||||
Leonidas Poulopoulos <leopoul@noc.grnet.gr>
|
||||
Ebben Aries <earies@juniper.net>
|
||||
License: Apache-2.0
|
||||
|
||||
Files: ryu/contrib/tinyrpc/*
|
||||
Copyright: 2013 Marc Brinkmann
|
||||
License: MIT
|
||||
|
||||
Files: ryu/contrib/ovs/*
|
||||
Copyright: 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
|
||||
License: Apache-2.0
|
||||
|
||||
License: Apache-2.0
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
.
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
.
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
.
|
||||
On Debian-based systems, the full text of the Apache version 2.0 license
|
||||
can be found in "/usr/share/common-licenses/Apache-2.0".
|
||||
|
||||
License: MIT
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
1
debian/docs
vendored
1
debian/docs
vendored
@ -1 +0,0 @@
|
||||
README.rst
|
||||
21
debian/log.conf
vendored
21
debian/log.conf
vendored
@ -1,21 +0,0 @@
|
||||
[loggers]
|
||||
keys = root
|
||||
|
||||
[handlers]
|
||||
keys = file
|
||||
|
||||
[formatters]
|
||||
keys = simple
|
||||
|
||||
[logger_root]
|
||||
level = INFO
|
||||
handlers = file
|
||||
|
||||
[handler_file]
|
||||
class = handlers.WatchedFileHandler
|
||||
formatter = simple
|
||||
args = ('/var/log/ryu/ryu.log',)
|
||||
|
||||
[formatter_simple]
|
||||
format = %(asctime)s.%(msecs)03d %(levelname)s %(name)s %(message)s
|
||||
datefmt = %Y-%m-%d %H:%M:%S
|
||||
9
debian/python-ryu-doc.doc-base
vendored
9
debian/python-ryu-doc.doc-base
vendored
@ -1,9 +0,0 @@
|
||||
Document: python-ryu-doc
|
||||
Title: Ryu User Documentation
|
||||
Author: Ryu Project Team
|
||||
Abstract: Ryu is a component-based software defined networking framework.
|
||||
Section: Programming/Python
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/python-ryu-doc/html/index.html
|
||||
Files: /usr/share/doc/python-ryu-doc/html/*.html
|
||||
2
debian/python-ryu-doc.docs
vendored
2
debian/python-ryu-doc.docs
vendored
@ -1,2 +0,0 @@
|
||||
README.rst
|
||||
debian/html
|
||||
1
debian/python-ryu.install
vendored
1
debian/python-ryu.install
vendored
@ -1 +0,0 @@
|
||||
usr/lib/python*/dist-packages/*
|
||||
35
debian/rules
vendored
35
debian/rules
vendored
@ -1,35 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
# This has to be exported to make some magic below work.
|
||||
export DH_OPTIONS
|
||||
|
||||
|
||||
%:
|
||||
dh $@ --with python2
|
||||
|
||||
override_dh_installman:
|
||||
cd doc; \
|
||||
make man; \
|
||||
cp build/man/* ../debian/
|
||||
dh_installman
|
||||
|
||||
override_dh_auto_build:
|
||||
dh_auto_build
|
||||
mkdir -p debian/html
|
||||
cd doc; \
|
||||
make html; \
|
||||
cp -r build/html/* ../debian/html/
|
||||
|
||||
override_dh_installinit:
|
||||
dh_installinit --no-start --name=ryu
|
||||
|
||||
override_dh_installlogrotate:
|
||||
dh_installlogrotate --name=ryu
|
||||
|
||||
override_dh_auto_clean:
|
||||
rm -rf html
|
||||
dh_auto_clean
|
||||
1
debian/ryu-bin.dirs
vendored
1
debian/ryu-bin.dirs
vendored
@ -1 +0,0 @@
|
||||
/var/log/ryu
|
||||
4
debian/ryu-bin.install
vendored
4
debian/ryu-bin.install
vendored
@ -1,4 +0,0 @@
|
||||
usr/bin/ryu-manager usr/bin
|
||||
usr/bin/ryu usr/bin
|
||||
debian/ryu.conf etc/ryu
|
||||
debian/log.conf etc/ryu
|
||||
2
debian/ryu-bin.manpages
vendored
2
debian/ryu-bin.manpages
vendored
@ -1,2 +0,0 @@
|
||||
debian/ryu-manager.8
|
||||
debian/ryu.8
|
||||
2
debian/ryu-bin.postrm
vendored
2
debian/ryu-bin.postrm
vendored
@ -1,2 +0,0 @@
|
||||
update-rc.d -f ryu remove >/dev/null || exit $?
|
||||
#DEBHELPER#
|
||||
7
debian/ryu-bin.ryu.logrotate
vendored
7
debian/ryu-bin.ryu.logrotate
vendored
@ -1,7 +0,0 @@
|
||||
/var/log/ryu/ryu.log {
|
||||
daily
|
||||
missingok
|
||||
compress
|
||||
delaycompress
|
||||
notifempty
|
||||
}
|
||||
9
debian/ryu-bin.ryu.upstart
vendored
9
debian/ryu-bin.ryu.upstart
vendored
@ -1,9 +0,0 @@
|
||||
description "Ryu server"
|
||||
|
||||
start on (starting neutron-server or runlevel [2345])
|
||||
stop on runlevel [!2345]
|
||||
|
||||
respawn
|
||||
|
||||
exec start-stop-daemon --start --exec /usr/bin/ryu -- \
|
||||
run --config-file /etc/ryu/ryu.conf
|
||||
36
debian/ryu.conf
vendored
36
debian/ryu.conf
vendored
@ -1,36 +0,0 @@
|
||||
[DEFAULT]
|
||||
log_config_file=/etc/ryu/log.conf
|
||||
# app_lists = $RYU_APPS
|
||||
#
|
||||
# for OpenStack Neutron Ryu plugin:
|
||||
# mac address based isolation
|
||||
#app_lists = ryu.app.simple_isolation,ryu.app.rest
|
||||
# VLAN
|
||||
#app_lists=ryu.app.quantum_adapter,ryu.app.rest,ryu.app.rest_conf_switch,ryu.app.rest_quantum,ryu.app.rest_tunnel,ryu.app.simple_vlan
|
||||
# GRE tunneling
|
||||
#app_lists=ryu.app.gre_tunnel,ryu.app.quantum_adapter,ryu.app.rest,ryu.app.rest_conf_switch,ryu.app.rest_quantum,ryu.app.rest_tunnel,ryu.app.tunnel_port_updater
|
||||
#
|
||||
# wsapi_host=<hostip>
|
||||
# wsapi_port=<port:8080>
|
||||
# ofp_listen_host=<hostip>
|
||||
# ofp_tcp_listen_port=<port:6633>
|
||||
#wsapi_host = 0.0.0.0
|
||||
#wsapi_port = 8080
|
||||
#ofp_listen_host = 0.0.0.0
|
||||
#ofp_tcp_listen_port = 6633
|
||||
#
|
||||
# the followings must be set according to neutron settings
|
||||
# neutron_url = http://$Q_HOST:$Q_PORT
|
||||
# neutron_admin_username = $Q_ADMIN_USERNAME
|
||||
# neutron_admin_password = $SERVICE_PASSWORD
|
||||
# neutron_admin_tenant_name = $SERVICE_TENANT_NAME
|
||||
# neutron_admin_auth_url=$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_AUTH_PORT/v2.0
|
||||
# neutron_auth_strategy = $Q_AUTH_STRATEGY
|
||||
# neutron_controller_addr = tcp:$RYU_OFP_HOST:$RYU_OFP_PORT
|
||||
#neutron_url = http://192.168.0.1:9696
|
||||
#neutron_admin_username = admin
|
||||
#neutron_admin_password = password
|
||||
#neutron_admin_tenant_name = service
|
||||
#neutron_admin_auth_url = http://192.168.0.1:5000/v2.0
|
||||
#neutron_auth_strategy = keystone
|
||||
#neutron_controller_addr = tcp:192.168.0.1:6633
|
||||
1
debian/source/format
vendored
1
debian/source/format
vendored
@ -1 +0,0 @@
|
||||
3.0 (quilt)
|
||||
@ -11,5 +11,5 @@ Ryu API Reference
|
||||
.. autoclass:: ryu.base.app_manager.RyuApp
|
||||
:members: OFP_VERSIONS,_CONTEXTS,_EVENTS,close,context_iteritems,reply_to_request,send_event,send_event_to_observers,send_request,start
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.DPSet
|
||||
.. automodule:: ryu.controller.dpset
|
||||
:members:
|
||||
|
||||
@ -1,15 +0,0 @@
|
||||
*************************
|
||||
Built-in Ryu applications
|
||||
*************************
|
||||
|
||||
Ryu has some built-in Ryu applications.
|
||||
Some of them are examples.
|
||||
Others provide some functionalities to other Ryu applications.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
app/ofctl.rst
|
||||
app/ofctl_rest.rst
|
||||
app/rest_vtep.rst
|
||||
app/bgp_application.rst
|
||||
@ -1,6 +0,0 @@
|
||||
**************************************
|
||||
ryu.services.protocols.bgp.application
|
||||
**************************************
|
||||
|
||||
.. automodule:: ryu.services.protocols.bgp.application
|
||||
:members:
|
||||
@ -1,30 +0,0 @@
|
||||
*************
|
||||
ryu.app.ofctl
|
||||
*************
|
||||
|
||||
ryu.app.ofctl provides a convenient way to use OpenFlow messages
|
||||
synchronously.
|
||||
|
||||
OfctlService ryu application is automatically loaded if your
|
||||
Ryu application imports ofctl.api module.
|
||||
|
||||
Example::
|
||||
|
||||
import ryu.app.ofctl.api
|
||||
|
||||
OfctlService application internally uses OpenFlow barrier messages
|
||||
to ensure message boundaries. As OpenFlow messages are asynchronous
|
||||
and some of messages does not have any replies on success, barriers
|
||||
are necessary for correct error handling.
|
||||
|
||||
api module
|
||||
==========
|
||||
|
||||
.. automodule:: ryu.app.ofctl.api
|
||||
:members:
|
||||
|
||||
exceptions
|
||||
==========
|
||||
|
||||
.. automodule:: ryu.app.ofctl.exception
|
||||
:members:
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,12 +0,0 @@
|
||||
*****************
|
||||
ryu.app.rest_vtep
|
||||
*****************
|
||||
|
||||
.. automodule:: ryu.app.rest_vtep
|
||||
|
||||
REST API
|
||||
========
|
||||
|
||||
.. autoclass:: ryu.app.rest_vtep.RestVtepController
|
||||
:members:
|
||||
:member-order: bysource
|
||||
@ -1,144 +0,0 @@
|
||||
*****************
|
||||
Components of Ryu
|
||||
*****************
|
||||
|
||||
Executables
|
||||
===========
|
||||
|
||||
bin/ryu-manager
|
||||
---------------
|
||||
|
||||
The main executable.
|
||||
|
||||
|
||||
Base components
|
||||
===============
|
||||
|
||||
ryu.base.app_manager
|
||||
--------------------
|
||||
.. automodule:: ryu.base.app_manager
|
||||
|
||||
|
||||
OpenFlow controller
|
||||
===================
|
||||
|
||||
ryu.controller.controller
|
||||
-------------------------
|
||||
.. automodule:: ryu.controller.controller
|
||||
|
||||
ryu.controller.dpset
|
||||
--------------------
|
||||
.. automodule:: ryu.controller.dpset
|
||||
|
||||
ryu.controller.ofp_event
|
||||
------------------------
|
||||
.. automodule:: ryu.controller.ofp_event
|
||||
|
||||
ryu.controller.ofp_handler
|
||||
--------------------------
|
||||
.. automodule:: ryu.controller.ofp_handler
|
||||
|
||||
|
||||
OpenFlow wire protocol encoder and decoder
|
||||
==========================================
|
||||
|
||||
ryu.ofproto.ofproto_v1_0
|
||||
------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_0
|
||||
|
||||
ryu.ofproto.ofproto_v1_0_parser
|
||||
-------------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_0_parser
|
||||
|
||||
ryu.ofproto.ofproto_v1_2
|
||||
------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_2
|
||||
|
||||
ryu.ofproto.ofproto_v1_2_parser
|
||||
-------------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_2_parser
|
||||
|
||||
ryu.ofproto.ofproto_v1_3
|
||||
------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_3
|
||||
|
||||
ryu.ofproto.ofproto_v1_3_parser
|
||||
-------------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_3_parser
|
||||
|
||||
ryu.ofproto.ofproto_v1_4
|
||||
------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_4
|
||||
|
||||
ryu.ofproto.ofproto_v1_4_parser
|
||||
-------------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_4_parser
|
||||
|
||||
ryu.ofproto.ofproto_v1_5
|
||||
------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_5
|
||||
|
||||
ryu.ofproto.ofproto_v1_5_parser
|
||||
-------------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_5_parser
|
||||
|
||||
|
||||
Ryu applications
|
||||
================
|
||||
|
||||
ryu.app.cbench
|
||||
--------------
|
||||
.. automodule:: ryu.app.cbench
|
||||
|
||||
ryu.app.simple_switch
|
||||
---------------------
|
||||
.. automodule:: ryu.app.simple_switch
|
||||
|
||||
ryu.topology
|
||||
------------
|
||||
.. automodule:: ryu.topology
|
||||
|
||||
|
||||
Libraries
|
||||
=========
|
||||
|
||||
ryu.lib.packet
|
||||
--------------
|
||||
.. automodule:: ryu.lib.packet
|
||||
|
||||
ryu.lib.ovs
|
||||
-----------
|
||||
.. automodule:: ryu.lib.ovs
|
||||
|
||||
ryu.lib.of_config
|
||||
-----------------
|
||||
.. automodule:: ryu.lib.of_config
|
||||
|
||||
ryu.lib.netconf
|
||||
---------------
|
||||
.. automodule:: ryu.lib.netconf
|
||||
|
||||
ryu.lib.xflow
|
||||
-------------
|
||||
.. automodule:: ryu.lib.xflow
|
||||
|
||||
|
||||
Third party libraries
|
||||
=====================
|
||||
|
||||
ryu.contrib.ovs
|
||||
---------------
|
||||
|
||||
Open vSwitch python binding. Used by ryu.lib.ovs.
|
||||
|
||||
ryu.contrib.oslo.config
|
||||
-----------------------
|
||||
|
||||
Oslo configuration library. Used for ryu-manager's command-line options
|
||||
and configuration files.
|
||||
|
||||
ryu.contrib.ncclient
|
||||
--------------------
|
||||
|
||||
Python library for NETCONF client. Used by ryu.lib.of_config.
|
||||
|
||||
@ -17,7 +17,6 @@ import sys, os
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
sys.path.insert(0, os.path.abspath('../..'))
|
||||
sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
from ryu import version as ryu_version
|
||||
|
||||
@ -94,7 +93,7 @@ pygments_style = 'sphinx'
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
html_theme = 'haiku'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
@ -132,7 +131,6 @@ html_static_path = ['_static']
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
# (Deprecated since version 1.6)
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
@ -216,9 +214,9 @@ latex_documents = [
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('index', 'ryu', u'ryu Documentation',
|
||||
[u'Ryu development team'], 8),
|
||||
('man/ryu', 'ryu', u'management for Ryu application',
|
||||
[u'Ryu development team'], 8),
|
||||
('man/ryu_manager', 'ryu-manager', 'management for Ryu application',
|
||||
[u'Ryu development team'], 8),
|
||||
[u'ryu development team'], 1),
|
||||
('man/rpc_cli', 'rpc-cli', u'a simple msgpack-rpc client',
|
||||
[u'ryu development team'], 1),
|
||||
('man/ryu_manager', 'ryu-manager', u'ryu manager',
|
||||
[u'ryu development team'], 1),
|
||||
]
|
||||
|
||||
@ -6,5 +6,4 @@ Configuration
|
||||
:maxdepth: 2
|
||||
|
||||
tls.rst
|
||||
gui.rst
|
||||
|
||||
|
||||
@ -6,9 +6,7 @@ Writing Your Ryu Application
|
||||
:maxdepth: 2
|
||||
|
||||
writing_ryu_app.rst
|
||||
components.rst
|
||||
ryu_app_api.rst
|
||||
library.rst
|
||||
ofproto_ref.rst
|
||||
nicira_ext_ref.rst
|
||||
api_ref.rst
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
[parsers]
|
||||
smart_quotes: false
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB |
@ -1,33 +0,0 @@
|
||||
***************
|
||||
Topology Viewer
|
||||
***************
|
||||
|
||||
ryu.app.gui_topology.gui_topology provides topology visualization.
|
||||
|
||||
This depends on following ryu applications.
|
||||
|
||||
===================== =================================================
|
||||
ryu.app.rest_topology Get node and link data.
|
||||
ryu.app.ws_topology Being notified change of link up/down.
|
||||
ryu.app.ofctl_rest Get flows of datapaths.
|
||||
===================== =================================================
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Run mininet (or join your real environment)::
|
||||
|
||||
$ sudo mn --controller remote --topo tree,depth=3
|
||||
|
||||
Run GUI application::
|
||||
|
||||
$ PYTHONPATH=. ./bin/ryu run --observe-links ryu/app/gui_topology/gui_topology.py
|
||||
|
||||
Access http://<ip address of ryu host>:8080 with your web browser.
|
||||
|
||||
Screenshot
|
||||
==========
|
||||
|
||||
.. image:: gui.png
|
||||
:width: 640 px
|
||||
|
||||
@ -15,9 +15,7 @@ Contents:
|
||||
getting_started.rst
|
||||
developing.rst
|
||||
configuration.rst
|
||||
tests.rst
|
||||
snort_integrate.rst
|
||||
app.rst
|
||||
using_with_openstack.rst
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
@ -9,10 +9,4 @@ Ryu provides some useful library for your network applications.
|
||||
|
||||
library_packet.rst
|
||||
library_packet_ref.rst
|
||||
library_pcap.rst
|
||||
library_of_config.rst
|
||||
library_bgp_speaker.rst
|
||||
library_bgp_speaker_ref.rst
|
||||
library_mrt.rst
|
||||
library_ovsdb_manager.rst
|
||||
library_ovsdb.rst
|
||||
|
||||
@ -1,61 +0,0 @@
|
||||
*******************
|
||||
BGP speaker library
|
||||
*******************
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Ryu BGP speaker library helps you to enable your code to speak BGP
|
||||
protocol. The library supports IPv4, IPv4 MPLS-labeled VPN, IPv6
|
||||
MPLS-labeled VPN and L2VPN EVPN address families.
|
||||
|
||||
Example
|
||||
=======
|
||||
|
||||
The following simple code creates a BGP instance with AS number 64512
|
||||
and Router ID 10.0.0.1. It tries to establish a bgp session with a
|
||||
peer (its IP is 192.168.177.32 and the AS number is 64513). The
|
||||
instance advertizes some prefixes.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
import eventlet
|
||||
|
||||
# BGPSpeaker needs sockets patched
|
||||
eventlet.monkey_patch()
|
||||
|
||||
# initialize a log handler
|
||||
# this is not strictly necessary but useful if you get messages like:
|
||||
# No handlers could be found for logger "ryu.lib.hub"
|
||||
import logging
|
||||
import sys
|
||||
log = logging.getLogger()
|
||||
log.addHandler(logging.StreamHandler(sys.stderr))
|
||||
|
||||
from ryu.services.protocols.bgp.bgpspeaker import BGPSpeaker
|
||||
|
||||
def dump_remote_best_path_change(event):
|
||||
print 'the best path changed:', event.remote_as, event.prefix,\
|
||||
event.nexthop, event.is_withdraw
|
||||
|
||||
def detect_peer_down(remote_ip, remote_as):
|
||||
print 'Peer down:', remote_ip, remote_as
|
||||
|
||||
if __name__ == "__main__":
|
||||
speaker = BGPSpeaker(as_number=64512, router_id='10.0.0.1',
|
||||
best_path_change_handler=dump_remote_best_path_change,
|
||||
peer_down_handler=detect_peer_down)
|
||||
|
||||
speaker.neighbor_add('192.168.177.32', 64513)
|
||||
# uncomment the below line if the speaker needs to talk with a bmp server.
|
||||
# speaker.bmp_server_add('192.168.177.2', 11019)
|
||||
count = 1
|
||||
while True:
|
||||
eventlet.sleep(30)
|
||||
prefix = '10.20.' + str(count) + '.0/24'
|
||||
print "add a new prefix", prefix
|
||||
speaker.prefix_add(prefix)
|
||||
count += 1
|
||||
if count == 4:
|
||||
speaker.shutdown()
|
||||
break
|
||||
@ -1,21 +0,0 @@
|
||||
*********************************
|
||||
BGP speaker library API Reference
|
||||
*********************************
|
||||
|
||||
BGPSpeaker class
|
||||
================
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.bgpspeaker.EventPrefix
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.info_base.base.PrefixFilter
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.info_base.base.ASPathFilter
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.info_base.base.AttributeMap
|
||||
:members:
|
||||
@ -1,28 +0,0 @@
|
||||
****************
|
||||
MRT file library
|
||||
****************
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Ryu MRT file library helps you to read/write MRT
|
||||
(Multi-Threaded Routing Toolkit) Routing Information Export Format
|
||||
[`RFC6396`_].
|
||||
|
||||
.. _RFC6396: https://tools.ietf.org/html/rfc6396
|
||||
|
||||
Reading MRT file
|
||||
================
|
||||
|
||||
For loading the routing information contained in MRT files, you can use
|
||||
mrtlib.Reader.
|
||||
|
||||
.. autoclass:: ryu.lib.mrtlib.Reader
|
||||
|
||||
Writing MRT file
|
||||
================
|
||||
|
||||
For dumping the routing information which your RyuApp generated, you can use
|
||||
mrtlib.Writer.
|
||||
|
||||
.. autoclass:: ryu.lib.mrtlib.Writer
|
||||
@ -1,76 +0,0 @@
|
||||
*************
|
||||
OVSDB library
|
||||
*************
|
||||
|
||||
Path: ``ryu.lib.ovs``
|
||||
|
||||
Similar to the :doc:`library_ovsdb_manager`, this library enables your
|
||||
application to speak the OVSDB protocol (RFC7047_), but differ from the
|
||||
:doc:`library_ovsdb_manager`, this library will initiate connections from
|
||||
controller side as ovs-vsctl_ command does.
|
||||
Please make sure that your devices are listening on either the Unix domain
|
||||
socket or TCP/SSL port before calling the APIs of this library.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Show current configuration
|
||||
$ ovs-vsctl get-manager
|
||||
|
||||
# Set TCP listen address
|
||||
$ ovs-vsctl set-manager "ptcp:6640"
|
||||
|
||||
See manpage of ovs-vsctl_ command for more details.
|
||||
|
||||
.. _RFC7047: https://tools.ietf.org/html/rfc7047
|
||||
.. _ovs-vsctl: http://openvswitch.org/support/dist-docs/ovs-vsctl.8.txt
|
||||
|
||||
Basic Usage
|
||||
===========
|
||||
|
||||
1. Instantiate :py:mod:`ryu.lib.ovs.vsctl.VSCtl`.
|
||||
|
||||
2. Construct commands with :py:mod:`ryu.lib.ovs.vsctl.VSCtlCommand`.
|
||||
The syntax is almost the same as ovs-vsctl_ command.
|
||||
|
||||
3. Execute commands via :py:mod:`ryu.lib.ovs.vsctl.VSCtl.run_command`.
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from ryu.lib.ovs import vsctl
|
||||
|
||||
OVSDB_ADDR = 'tcp:127.0.0.1:6640'
|
||||
ovs_vsctl = vsctl.VSCtl(OVSDB_ADDR)
|
||||
|
||||
# Equivalent to
|
||||
# $ ovs-vsctl show
|
||||
command = vsctl.VSCtlCommand('show')
|
||||
ovs_vsctl.run_command([command])
|
||||
print(command)
|
||||
# >>> VSCtlCommand(args=[],command='show',options=[],result='830d781f-c3c8-4b4f-837e-106e1b33d058\n ovs_version: "2.8.90"\n')
|
||||
|
||||
# Equivalent to
|
||||
# $ ovs-vsctl list Port s1-eth1
|
||||
command = vsctl.VSCtlCommand('list', ('Port', 's1-eth1'))
|
||||
ovs_vsctl.run_command([command])
|
||||
print(command)
|
||||
# >>> VSCtlCommand(args=('Port', 's1-eth1'),command='list',options=[],result=[<ovs.db.idl.Row object at 0x7f525fb682e8>])
|
||||
print(command.result[0].name)
|
||||
# >>> s1-eth1
|
||||
|
||||
API Reference
|
||||
=============
|
||||
|
||||
ryu.lib.ovs.vsctl
|
||||
-----------------
|
||||
|
||||
.. automodule:: ryu.lib.ovs.vsctl
|
||||
:members:
|
||||
|
||||
ryu.lib.ovs.bridge
|
||||
------------------
|
||||
|
||||
.. automodule:: ryu.lib.ovs.bridge
|
||||
:members:
|
||||
@ -1,99 +0,0 @@
|
||||
*********************
|
||||
OVSDB Manager library
|
||||
*********************
|
||||
|
||||
Path: ``ryu.services.protocols.ovsdb``
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Ryu OVSDB Manager library allows your code to interact with devices
|
||||
speaking the OVSDB protocol. This enables your code to perform remote
|
||||
management of the devices and react to topology changes on them.
|
||||
|
||||
Please note this library will spawn a server listening on the port 6640 (the
|
||||
IANA registered for OVSDB protocol), but does not initiate connections from
|
||||
controller side.
|
||||
Then, to make your devices connect to Ryu, you need to tell the controller IP
|
||||
address and port to your devices.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Show current configuration
|
||||
$ ovs-vsctl get-manager
|
||||
|
||||
# Set manager (controller) address
|
||||
$ ovs-vsctl set-manager "tcp:127.0.0.1:6640"
|
||||
|
||||
# If you want to specify IPv6 address, wrap ip with brackets
|
||||
$ ovs-vsctl set-manager "tcp:[::1]:6640"
|
||||
|
||||
Also this library identifies the devices by "system-id" which should be unique,
|
||||
persistent identifier among all devices connecting to a single controller.
|
||||
Please make sure "system-id" is configured before connecting.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Show current configuration
|
||||
$ ovs-vsctl get Open_vSwitch . external_ids:system-id
|
||||
|
||||
# Set system-id manually
|
||||
$ ovs-vsctl set Open_vSwitch . external_ids:system-id=<SYSTEM-ID>
|
||||
|
||||
Example
|
||||
=======
|
||||
|
||||
The following logs all new OVSDB connections in "handle_new_ovsdb_connection"
|
||||
and also provides the API "create_port" for creating a port on a bridge.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
import uuid
|
||||
|
||||
from ryu.base import app_manager
|
||||
from ryu.controller.handler import set_ev_cls
|
||||
from ryu.services.protocols.ovsdb import api as ovsdb
|
||||
from ryu.services.protocols.ovsdb import event as ovsdb_event
|
||||
|
||||
|
||||
class MyApp(app_manager.RyuApp):
|
||||
@set_ev_cls(ovsdb_event.EventNewOVSDBConnection)
|
||||
def handle_new_ovsdb_connection(self, ev):
|
||||
system_id = ev.system_id
|
||||
address = ev.client.address
|
||||
self.logger.info(
|
||||
'New OVSDB connection from system-id=%s, address=%s',
|
||||
system_id, address)
|
||||
|
||||
# Example: If device has bridge "s1", add port "s1-eth99"
|
||||
if ovsdb.bridge_exists(self, system_id, "s1"):
|
||||
self.create_port(system_id, "s1", "s1-eth99")
|
||||
|
||||
def create_port(self, system_id, bridge_name, name):
|
||||
new_iface_uuid = uuid.uuid4()
|
||||
new_port_uuid = uuid.uuid4()
|
||||
|
||||
bridge = ovsdb.row_by_name(self, system_id, bridge_name)
|
||||
|
||||
def _create_port(tables, insert):
|
||||
iface = insert(tables['Interface'], new_iface_uuid)
|
||||
iface.name = name
|
||||
iface.type = 'internal'
|
||||
|
||||
port = insert(tables['Port'], new_port_uuid)
|
||||
port.name = name
|
||||
port.interfaces = [iface]
|
||||
|
||||
bridge.ports = bridge.ports + [port]
|
||||
|
||||
return new_port_uuid, new_iface_uuid
|
||||
|
||||
req = ovsdb_event.EventModifyRequest(system_id, _create_port)
|
||||
rep = self.send_request(req)
|
||||
|
||||
if rep.status != 'success':
|
||||
self.logger.error('Error creating port %s on bridge %s: %s',
|
||||
name, bridge, rep.status)
|
||||
return None
|
||||
|
||||
return rep.insert_uuids[new_port_uuid]
|
||||
@ -85,18 +85,12 @@ serialize method. You have the raw data to send. The following example
|
||||
is building an arp packet.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from ryu.ofproto import ether
|
||||
from ryu.lib.packet import ethernet, arp, packet
|
||||
|
||||
e = ethernet.ethernet(dst='ff:ff:ff:ff:ff:ff',
|
||||
src='08:60:6e:7f:74:e7',
|
||||
ethertype=ether.ETH_TYPE_ARP)
|
||||
|
||||
e = ethernet.ethernet(dst, src, ether.ETH_TYPE_8021Q)
|
||||
a = arp.arp(hwtype=1, proto=0x0800, hlen=6, plen=4, opcode=2,
|
||||
src_mac='08:60:6e:7f:74:e7', src_ip='192.0.2.1',
|
||||
dst_mac='00:00:00:00:00:00', dst_ip='192.0.2.2')
|
||||
src='08:60:6e:7f:74:e7', src_ip='192.0.2.1',
|
||||
dst='00:00:00:00:00:00', dst_ip='192.0.2.2')
|
||||
p = packet.Packet()
|
||||
p.add_protocol(e)
|
||||
p.add_protocol(a)
|
||||
p.serialize()
|
||||
print repr(p.data) # the on-wire packet
|
||||
|
||||
@ -14,15 +14,103 @@ Stream Parser class
|
||||
.. automodule:: ryu.lib.packet.stream_parser
|
||||
:members:
|
||||
|
||||
List of the sub-classes:
|
||||
|
||||
- :py:mod:`ryu.lib.packet.bgp.StreamParser`
|
||||
.. autoclass:: ryu.lib.packet.bgp.StreamParser
|
||||
:members:
|
||||
|
||||
Protocol Header classes
|
||||
=======================
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
.. automodule:: ryu.lib.packet.packet_base
|
||||
:members:
|
||||
|
||||
library_packet_ref/packet_base
|
||||
library_packet_ref/*
|
||||
.. automodule:: ryu.lib.packet.ethernet
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.vlan
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.pbb
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.mpls
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.arp
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.ipv4
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.icmp
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.ipv6
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.icmpv6
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.tcp
|
||||
:members:
|
||||
|
||||
.. automodule:: ryu.lib.packet.udp
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.lib.packet.dhcp.dhcp
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.dhcp.options
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.dhcp.option
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.lib.packet.vrrp.vrrp
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.vrrp.vrrpv2
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.vrrp.vrrpv3
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.lib.packet.slow.slow
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.slow.lacp
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.lib.packet.llc.llc
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.llc.ControlFormatI
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.llc.ControlFormatS
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.llc.ControlFormatU
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.lib.packet.bpdu.bpdu
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.bpdu.ConfigurationBPDUs
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.bpdu.TopologyChangeNotificationBPDUs
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.bpdu.RstBPDUs
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.lib.packet.igmp.igmp
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.igmp.igmpv3_query
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.igmp.igmpv3_report
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.igmp.igmpv3_report_group
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.lib.packet.bgp.BGPMessage
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.bgp.BGPOpen
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.bgp.BGPUpdate
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.bgp.BGPKeepAlive
|
||||
:members:
|
||||
.. autoclass:: ryu.lib.packet.bgp.BGPNotification
|
||||
:members:
|
||||
.. automodule:: ryu.lib.packet.sctp
|
||||
:members:
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
ARP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.arp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
*****************
|
||||
Packet Base Class
|
||||
*****************
|
||||
|
||||
.. automodule:: ryu.lib.packet.packet_base
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
BFD
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.bfd
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
BGP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.bgp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
BMP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.bmp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
BPDU
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.bpdu
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
CFM
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.cfm
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
DHCP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.dhcp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
*****
|
||||
DHCP6
|
||||
*****
|
||||
|
||||
.. automodule:: ryu.lib.packet.dhcp6
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
********
|
||||
Ethernet
|
||||
********
|
||||
|
||||
.. automodule:: ryu.lib.packet.ethernet
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
******
|
||||
Geneve
|
||||
******
|
||||
|
||||
.. automodule:: ryu.lib.packet.geneve
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
GRE
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.gre
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
ICMP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.icmp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
******
|
||||
ICMPv6
|
||||
******
|
||||
|
||||
.. automodule:: ryu.lib.packet.icmpv6
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
IGMP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.igmp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
IPv4
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.ipv4
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
IPv6
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.ipv6
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
LLC
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.llc
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
LLDP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.lldp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
MPLS
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.mpls
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
********
|
||||
OpenFlow
|
||||
********
|
||||
|
||||
.. automodule:: ryu.lib.packet.openflow
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
OSPF
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.ospf
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
PBB
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.pbb
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
SCTP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.sctp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
Slow
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.slow
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
TCP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.tcp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
***
|
||||
UDP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.udp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
VLAN
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.vlan
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
****
|
||||
VRRP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.vrrp
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
*****
|
||||
VXLAN
|
||||
*****
|
||||
|
||||
.. automodule:: ryu.lib.packet.vxlan
|
||||
:members:
|
||||
@ -1,6 +0,0 @@
|
||||
*****
|
||||
Zebra
|
||||
*****
|
||||
|
||||
.. automodule:: ryu.lib.packet.zebra
|
||||
:members:
|
||||
@ -1,27 +0,0 @@
|
||||
*****************
|
||||
PCAP file library
|
||||
*****************
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Ryu PCAP file library helps you to read/write PCAP file which file
|
||||
format are described in `The Wireshark Wiki`_.
|
||||
|
||||
.. _The Wireshark Wiki: https://wiki.wireshark.org/Development/LibpcapFileFormat
|
||||
|
||||
Reading PCAP file
|
||||
=================
|
||||
|
||||
For loading the packet data containing in PCAP files, you can use
|
||||
pcaplib.Reader.
|
||||
|
||||
.. autoclass:: ryu.lib.pcaplib.Reader
|
||||
|
||||
Writing PCAP file
|
||||
=================
|
||||
|
||||
For dumping the packet data which your RyuApp received, you can use
|
||||
pcaplib.Writer.
|
||||
|
||||
.. autoclass:: ryu.lib.pcaplib.Writer
|
||||
20
doc/source/man/rpc_cli.rst
Normal file
20
doc/source/man/rpc_cli.rst
Normal file
@ -0,0 +1,20 @@
|
||||
:orphan:
|
||||
|
||||
rpc-cli manual page
|
||||
===================
|
||||
|
||||
Synoposis
|
||||
---------
|
||||
**rpc-cli** [*options*]
|
||||
|
||||
Description
|
||||
-----------
|
||||
:program:`rpc-cli` is a simple msgpack-rpc client.
|
||||
|
||||
Options
|
||||
-------
|
||||
-h, --help
|
||||
|
||||
Author
|
||||
------
|
||||
Ryu development team
|
||||
@ -1,48 +0,0 @@
|
||||
:orphan:
|
||||
|
||||
ryu manual page
|
||||
===============
|
||||
|
||||
Synopsis
|
||||
--------
|
||||
**ryu** [-h] [--config-dir DIR] [--config-file PATH] [--version] [subcommand] ...
|
||||
|
||||
Description
|
||||
-----------
|
||||
:program:`ryu` is the executable for Ryu applications. ryu loads a sub-module
|
||||
corresponding to the sub-command and run it. 'run' sub-command is an
|
||||
equivalent to ryu-manager.
|
||||
|
||||
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.
|
||||
|
||||
Options
|
||||
-------
|
||||
subcommand
|
||||
[rpc-cli|run|of-config-cli]
|
||||
|
||||
subcommand_args
|
||||
subcommand specific arguments
|
||||
|
||||
-h, --help
|
||||
show this help message and exit
|
||||
|
||||
--config-dir 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) specified via previous
|
||||
--config-file, arguments hence over-ridden options in
|
||||
the directory take precedence.
|
||||
|
||||
--config-file PATH
|
||||
Path to a config file to use. Multiple config files can
|
||||
be specified, with values in later files taking
|
||||
precedence. The default files used are: None
|
||||
|
||||
--version
|
||||
show program's version number and exit
|
||||
@ -3,182 +3,22 @@
|
||||
ryu-manager manual page
|
||||
=======================
|
||||
|
||||
|
||||
Synopsis
|
||||
--------
|
||||
**ryu-manager** [-h]
|
||||
[--app-lists APP_LISTS] [--ca-certs CA_CERTS]
|
||||
[--config-dir DIR] [--config-file PATH]
|
||||
[--ctl-cert CTL_CERT] [--ctl-privkey CTL_PRIVKEY]
|
||||
[--default-log-level DEFAULT_LOG_LEVEL] [--explicit-drop]
|
||||
[--install-lldp-flow] [--log-config-file LOG_CONFIG_FILE]
|
||||
[--log-dir LOG_DIR] [--log-file LOG_FILE]
|
||||
[--log-file-mode LOG_FILE_MODE]
|
||||
[--neutron-admin-auth-url NEUTRON_ADMIN_AUTH_URL]
|
||||
[--neutron-admin-password NEUTRON_ADMIN_PASSWORD]
|
||||
[--neutron-admin-tenant-name NEUTRON_ADMIN_TENANT_NAME]
|
||||
[--neutron-admin-username NEUTRON_ADMIN_USERNAME]
|
||||
[--neutron-auth-strategy NEUTRON_AUTH_STRATEGY]
|
||||
[--neutron-controller-addr NEUTRON_CONTROLLER_ADDR]
|
||||
[--neutron-url NEUTRON_URL]
|
||||
[--neutron-url-timeout NEUTRON_URL_TIMEOUT]
|
||||
[--noexplicit-drop] [--noinstall-lldp-flow]
|
||||
[--noobserve-links] [--nouse-stderr] [--nouse-syslog]
|
||||
[--noverbose] [--observe-links]
|
||||
[--ofp-listen-host OFP_LISTEN_HOST]
|
||||
[--ofp-ssl-listen-port OFP_SSL_LISTEN_PORT]
|
||||
[--ofp-tcp-listen-port OFP_TCP_LISTEN_PORT] [--use-stderr]
|
||||
[--use-syslog] [--verbose] [--version]
|
||||
[--wsapi-host WSAPI_HOST] [--wsapi-port WSAPI_PORT]
|
||||
[--test-switch-dir TEST-SWITCH_DIR]
|
||||
[--test-switch-target TEST-SWITCH_TARGET]
|
||||
[--test-switch-tester TEST-SWITCH_TESTER]
|
||||
[app [app ...]]
|
||||
Synoposis
|
||||
---------
|
||||
**ryu-manager** [*options*] <ryu apps>[, <ryu apps> ...]
|
||||
|
||||
Description
|
||||
-----------
|
||||
:program:`ryu-manager` is the executable for Ryu applications. ryu-manager
|
||||
loads Ryu applications and run it.
|
||||
|
||||
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.
|
||||
:program:`ryu-manger` is an Operating System for Software Defined Networking
|
||||
|
||||
Options
|
||||
-------
|
||||
app
|
||||
application module name to run
|
||||
|
||||
-h, --help
|
||||
show this help message and exit
|
||||
|
||||
--app-lists APP_LISTS
|
||||
application module name to run
|
||||
See also
|
||||
--------
|
||||
:manpage:`ryu-client(1)`
|
||||
|
||||
--ca-certs CA_CERTS
|
||||
CA certificates
|
||||
|
||||
--config-dir 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)
|
||||
specified via previous --config-file, arguments hence
|
||||
over-ridden options in the directory take precedence.
|
||||
|
||||
--config-file PATH
|
||||
Path to a config file to use. Multiple config files
|
||||
can be specified, with values in later files taking
|
||||
precedence. The default files used are: None
|
||||
|
||||
--ctl-cert CTL_CERT
|
||||
controller certificate
|
||||
|
||||
--ctl-privkey CTL_PRIVKEY
|
||||
controller private key
|
||||
|
||||
--default-log-level DEFAULT_LOG_LEVEL
|
||||
default log level
|
||||
|
||||
--explicit-drop
|
||||
link discovery: explicitly drop lldp packet in
|
||||
|
||||
--install-lldp-flow
|
||||
link discovery: explicitly install flow entry to send
|
||||
lldp packet to controller
|
||||
|
||||
--log-config-file LOG_CONFIG_FILE
|
||||
Path to a logging config file to use
|
||||
|
||||
--log-dir LOG_DIR
|
||||
log file directory
|
||||
|
||||
--log-file LOG_FILE
|
||||
log file name
|
||||
|
||||
--log-file-mode LOG_FILE_MODE
|
||||
default log file permission
|
||||
|
||||
--neutron-admin-auth-url NEUTRON_ADMIN_AUTH_URL
|
||||
auth url for connecting to neutron in admin context
|
||||
|
||||
--neutron-admin-password NEUTRON_ADMIN_PASSWORD
|
||||
password for connecting to neutron in admin context
|
||||
|
||||
--neutron-admin-tenant-name NEUTRON_ADMIN_TENANT_NAME
|
||||
tenant name for connecting to neutron in admin context
|
||||
|
||||
--neutron-admin-username NEUTRON_ADMIN_USERNAME
|
||||
username for connecting to neutron in admin context
|
||||
|
||||
--neutron-auth-strategy NEUTRON_AUTH_STRATEGY
|
||||
auth strategy for connecting to neutron in admincontext
|
||||
|
||||
--neutron-controller-addr NEUTRON_CONTROLLER_ADDR
|
||||
openflow method:address:port to set controller ofovs bridge
|
||||
|
||||
--neutron-url NEUTRON_URL
|
||||
URL for connecting to neutron
|
||||
|
||||
--neutron-url-timeout NEUTRON_URL_TIMEOUT
|
||||
timeout value for connecting to neutron in seconds
|
||||
|
||||
--noexplicit-drop
|
||||
The inverse of --explicit-drop
|
||||
|
||||
--noinstall-lldp-flow
|
||||
The inverse of --install-lldp-flow
|
||||
|
||||
--noobserve-links
|
||||
The inverse of --observe-links
|
||||
|
||||
--nouse-stderr
|
||||
The inverse of --use-stderr
|
||||
|
||||
--nouse-syslog
|
||||
The inverse of --use-syslog
|
||||
|
||||
--noverbose
|
||||
The inverse of --verbose
|
||||
|
||||
--observe-links
|
||||
observe link discovery events.
|
||||
|
||||
--ofp-listen-host OFP_LISTEN_HOST
|
||||
openflow listen host
|
||||
|
||||
--ofp-ssl-listen-port OFP_SSL_LISTEN_PORT
|
||||
openflow ssl listen port
|
||||
|
||||
--ofp-tcp-listen-port OFP_TCP_LISTEN_PORT
|
||||
openflow tcp listen port
|
||||
|
||||
--use-stderr
|
||||
log to standard error
|
||||
|
||||
--use-syslog
|
||||
output to syslog
|
||||
|
||||
--verbose
|
||||
show debug output
|
||||
|
||||
--version
|
||||
show program's version number and exit
|
||||
|
||||
--wsapi-host WSAPI_HOST
|
||||
webapp listen host
|
||||
|
||||
--wsapi-port WSAPI_PORT
|
||||
webapp listen port
|
||||
|
||||
--test-switch-dir TEST-SWITCH_DIR
|
||||
test files directory
|
||||
|
||||
--test-switch-target TEST-SWITCH_TARGET
|
||||
target sw dp-id
|
||||
|
||||
--test-switch-tester TEST-SWITCH_TESTER
|
||||
tester sw dp-id
|
||||
Author
|
||||
------
|
||||
Ryu development team
|
||||
|
||||
@ -1,69 +0,0 @@
|
||||
***************************
|
||||
Nicira Extension Structures
|
||||
***************************
|
||||
|
||||
.. _nx_actions_structures:
|
||||
|
||||
Nicira Extension Actions Structures
|
||||
===================================
|
||||
|
||||
The followings shows the supported NXAction classes only in OpenFlow1.0
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_0_parser
|
||||
|
||||
.. autoclass:: NXActionSetQueue
|
||||
.. autoclass:: NXActionDecTtl
|
||||
.. autoclass:: NXActionPushMpls
|
||||
.. autoclass:: NXActionPopMpls
|
||||
.. autoclass:: NXActionSetMplsTtl
|
||||
.. autoclass:: NXActionDecMplsTtl
|
||||
.. autoclass:: NXActionSetMplsLabel
|
||||
.. autoclass:: NXActionSetMplsTc
|
||||
|
||||
The followings shows the supported NXAction classes in OpenFlow1.0 or later
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_3_parser
|
||||
|
||||
.. autoclass:: NXActionPopQueue
|
||||
.. autoclass:: NXActionRegLoad
|
||||
.. autoclass:: NXActionRegLoad2
|
||||
.. autoclass:: NXActionNote
|
||||
.. autoclass:: NXActionSetTunnel
|
||||
.. autoclass:: NXActionSetTunnel64
|
||||
.. autoclass:: NXActionRegMove
|
||||
.. autoclass:: NXActionResubmit
|
||||
.. autoclass:: NXActionResubmitTable
|
||||
.. autoclass:: NXActionOutputReg
|
||||
.. autoclass:: NXActionOutputReg2
|
||||
.. autoclass:: NXActionLearn
|
||||
.. autoclass:: NXActionExit
|
||||
.. autoclass:: NXActionController
|
||||
.. autoclass:: NXActionController2
|
||||
.. autoclass:: NXActionDecTtlCntIds
|
||||
.. autoclass:: NXActionStackPush
|
||||
.. autoclass:: NXActionStackPop
|
||||
.. autoclass:: NXActionSample
|
||||
.. autoclass:: NXActionSample2
|
||||
.. autoclass:: NXActionFinTimeout
|
||||
.. autoclass:: NXActionConjunction
|
||||
.. autoclass:: NXActionMultipath
|
||||
.. autoclass:: NXActionBundle
|
||||
.. autoclass:: NXActionBundleLoad
|
||||
.. autoclass:: NXActionCT
|
||||
.. autoclass:: NXActionNAT
|
||||
.. autoclass:: NXActionOutputTrunc
|
||||
.. autoclass:: NXActionDecNshTtl
|
||||
.. autoclass:: NXFlowSpecMatch
|
||||
.. autoclass:: NXFlowSpecLoad
|
||||
.. autoclass:: NXFlowSpecOutput
|
||||
.. autofunction:: ryu.ofproto.nicira_ext.ofs_nbits
|
||||
|
||||
.. _nx_match_structures:
|
||||
|
||||
Nicira Extended Match Structures
|
||||
================================
|
||||
|
||||
.. automodule:: ryu.ofproto.nicira_ext
|
||||
|
||||
@ -8,8 +8,5 @@ OpenFlow protocol API Reference
|
||||
:maxdepth: 3
|
||||
|
||||
ofproto_base.rst
|
||||
ofproto_v1_0_ref.rst
|
||||
ofproto_v1_2_ref.rst
|
||||
ofproto_v1_3_ref.rst
|
||||
ofproto_v1_4_ref.rst
|
||||
ofproto_v1_5_ref.rst
|
||||
|
||||
@ -1,294 +0,0 @@
|
||||
*************************************
|
||||
OpenFlow v1.0 Messages and Structures
|
||||
*************************************
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_0_parser
|
||||
|
||||
Controller-to-Switch Messages
|
||||
=============================
|
||||
|
||||
Handshake
|
||||
---------
|
||||
|
||||
.. autoclass:: OFPFeaturesRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-5-features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPSwitchFeatures
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-6-ofp_switch_features.packet.json
|
||||
|
||||
Switch Configuration
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPSetConfig
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-7-ofp_set_config.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-8-ofp_get_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigReply
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-9-ofp_get_config_reply.packet.json
|
||||
|
||||
Modify State Messages
|
||||
---------------------
|
||||
|
||||
.. autoclass:: OFPFlowMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-2-ofp_flow_mod.packet.json
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-3-ofp_flow_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPPortMod
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-22-ofp_port_mod.packet.json
|
||||
|
||||
Queue Configuration Messages
|
||||
----------------------------
|
||||
|
||||
.. autoclass:: OFPQueueGetConfigRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-35-ofp_queue_get_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueGetConfigReply
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-36-ofp_queue_get_config_reply.packet.json
|
||||
|
||||
Read State Messages
|
||||
-------------------
|
||||
|
||||
.. autoclass:: OFPDescStatsRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-24-ofp_desc_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPDescStatsReply
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-0-ofp_desc_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStatsRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-11-ofp_flow_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStatsReply
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-12-ofp_flow_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-25-ofp_aggregate_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsReply
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-26-ofp_aggregate_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStatsRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-27-ofp_table_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStatsReply
|
||||
|
||||
.. XXX commented out because it's too long
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-28-ofp_table_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPPortStatsRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-29-ofp_port_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPPortStatsReply
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-30-ofp_port_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStatsRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-37-ofp_queue_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStatsReply
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-38-ofp_queue_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPVendorStatsRequest
|
||||
.. autoclass:: OFPVendorStatsReply
|
||||
|
||||
Send Packet Message
|
||||
-------------------
|
||||
|
||||
.. autoclass:: OFPPacketOut
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-1-ofp_packet_out.packet.json
|
||||
|
||||
Barrier Message
|
||||
---------------
|
||||
|
||||
.. autoclass:: OFPBarrierRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-17-ofp_barrier_request.packet.json
|
||||
|
||||
.. autoclass:: OFPBarrierReply
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-18-ofp_barrier_reply.packet.json
|
||||
|
||||
|
||||
Asynchronous Messages
|
||||
=====================
|
||||
|
||||
Packet-In Message
|
||||
-----------------
|
||||
|
||||
.. autoclass:: OFPPacketIn
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-4-ofp_packet_in.packet.json
|
||||
|
||||
Flow Removed Message
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPFlowRemoved
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-40-ofp_flow_removed.packet.json
|
||||
|
||||
Port Status Message
|
||||
-------------------
|
||||
|
||||
.. autoclass:: OFPPortStatus
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-39-ofp_port_status.packet.json
|
||||
|
||||
Error Message
|
||||
-------------
|
||||
|
||||
.. autoclass:: OFPErrorMsg
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-15-ofp_error_msg.packet.json
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-41-ofp_error_msg_vendor.packet.json
|
||||
|
||||
Symmetric Messages
|
||||
==================
|
||||
|
||||
Hello
|
||||
-----
|
||||
|
||||
.. autoclass:: OFPHello
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-10-ofp_hello.packet.json
|
||||
|
||||
Echo Request
|
||||
------------
|
||||
|
||||
.. autoclass:: OFPEchoRequest
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-13-ofp_echo_request.packet.json
|
||||
|
||||
|
||||
Echo Reply
|
||||
----------
|
||||
|
||||
.. autoclass:: OFPEchoReply
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-14-ofp_echo_reply.packet.json
|
||||
|
||||
|
||||
Vendor
|
||||
------------
|
||||
|
||||
.. autoclass:: OFPVendor
|
||||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-16-ofp_vendor.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
||||
.. autoclass:: OFPPhyPort
|
||||
|
||||
|
||||
Flow Match Structure
|
||||
====================
|
||||
|
||||
.. autoclass:: OFPMatch
|
||||
|
||||
|
||||
Action Structures
|
||||
=================
|
||||
|
||||
.. autoclass:: OFPActionHeader
|
||||
.. autoclass:: OFPAction
|
||||
.. autoclass:: OFPActionOutput
|
||||
.. autoclass:: OFPActionVlanVid
|
||||
.. autoclass:: OFPActionVlanPcp
|
||||
.. autoclass:: OFPActionStripVlan
|
||||
.. autoclass:: OFPActionDlAddr
|
||||
.. autoclass:: OFPActionSetDlSrc
|
||||
.. autoclass:: OFPActionSetDlDst
|
||||
.. autoclass:: OFPActionNwAddr
|
||||
.. autoclass:: OFPActionSetNwSrc
|
||||
.. autoclass:: OFPActionSetNwDst
|
||||
.. autoclass:: OFPActionSetNwTos
|
||||
.. autoclass:: OFPActionTpPort
|
||||
.. autoclass:: OFPActionSetTpSrc
|
||||
.. autoclass:: OFPActionSetTpDst
|
||||
.. autoclass:: OFPActionEnqueue
|
||||
.. autoclass:: OFPActionVendor
|
||||
@ -312,11 +312,6 @@ Experimenter
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-16-ofp_experimenter.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
||||
.. autoclass:: OFPPort
|
||||
|
||||
|
||||
Flow Match Structure
|
||||
====================
|
||||
|
||||
@ -235,9 +235,7 @@ Multipart Messages
|
||||
|
||||
JSON Example:
|
||||
|
||||
See an example in:
|
||||
|
||||
``ryu/tests/unit/ofproto/json/of13/4-56-ofp_table_features_reply.packet.json``
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-56-ofp_table_features_reply.packet.json
|
||||
|
||||
Queue Configuration Messages
|
||||
----------------------------
|
||||
@ -396,11 +394,6 @@ Experimenter
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-16-ofp_experimenter.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
||||
.. autoclass:: OFPPort
|
||||
|
||||
|
||||
Flow Match Structure
|
||||
====================
|
||||
|
||||
@ -1,530 +0,0 @@
|
||||
*************************************
|
||||
OpenFlow v1.4 Messages and Structures
|
||||
*************************************
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_4_parser
|
||||
|
||||
Controller-to-Switch Messages
|
||||
=============================
|
||||
|
||||
Handshake
|
||||
---------
|
||||
|
||||
.. autoclass:: OFPFeaturesRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-5-ofp_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPSwitchFeatures
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-6-ofp_features_reply.packet.json
|
||||
|
||||
Switch Configuration
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPSetConfig
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-7-ofp_set_config.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-8-ofp_get_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-9-ofp_get_config_reply.packet.json
|
||||
|
||||
Modify State Messages
|
||||
---------------------
|
||||
|
||||
.. autoclass:: OFPTableMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-23-ofp_table_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-2-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-3-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-44-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-58-ofp_flow_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-21-ofp_group_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPPortMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-22-ofp_port_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-43-ofp_meter_mod.packet.json
|
||||
|
||||
Multipart Messages
|
||||
------------------
|
||||
|
||||
.. autoclass:: OFPDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-24-ofp_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-0-ofp_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-11-ofp_flow_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-12-ofp_flow_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-25-ofp_aggregate_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-26-ofp_aggregate_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-27-ofp_table_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-28-ofp_table_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-61-ofp_table_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPTableDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-62-ofp_table_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
See an example in:
|
||||
|
||||
``ryu/tests/unit/ofproto/json/of14/5-53-ofp_table_features_request.packet.json``
|
||||
|
||||
.. autoclass:: OFPTableFeaturesStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
See an example in:
|
||||
|
||||
``ryu/tests/unit/ofproto/json/of14/5-54-ofp_table_features_reply.packet.json``
|
||||
|
||||
.. autoclass:: OFPPortStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-29-ofp_port_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPPortStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-30-ofp_port_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPPortDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-51-ofp_port_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPPortDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-52-ofp_port_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-35-ofp_queue_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-36-ofp_queue_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-63-ofp_queue_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-64-ofp_queue_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-55-ofp_group_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-56-ofp_group_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-33-ofp_group_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-34-ofp_group_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-31-ofp_group_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupFeaturesStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-32-ofp_group_features_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-47-ofp_meter_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-48-ofp_meter_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterConfigStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-45-ofp_meter_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterConfigStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-46-ofp_meter_config_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-49-ofp_meter_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterFeaturesStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-50-ofp_meter_features_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowMonitorRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-66-ofp_flow_monitor_request.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowMonitorReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-67-ofp_flow_monitor_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPExperimenterStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-59-ofp_experimenter_request.packet.json
|
||||
|
||||
.. autoclass:: OFPExperimenterStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-60-ofp_experimenter_reply.packet.json
|
||||
|
||||
Packet-Out Message
|
||||
------------------
|
||||
|
||||
.. autoclass:: OFPPacketOut
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-1-ofp_packet_out.packet.json
|
||||
|
||||
Barrier Message
|
||||
---------------
|
||||
|
||||
.. autoclass:: OFPBarrierRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-17-ofp_barrier_request.packet.json
|
||||
|
||||
.. autoclass:: OFPBarrierReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-18-ofp_barrier_reply.packet.json
|
||||
|
||||
Role Request Message
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPRoleRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-19-ofp_role_request.packet.json
|
||||
|
||||
.. autoclass:: OFPRoleReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-20-ofp_role_reply.packet.json
|
||||
|
||||
Bundle Messages
|
||||
---------------
|
||||
|
||||
.. autoclass:: OFPBundleCtrlMsg
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-69-ofp_bundle_ctrl_msg.packet.json
|
||||
|
||||
.. autoclass:: OFPBundleAddMsg
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-70-ofp_bundle_add_msg.packet.json
|
||||
|
||||
Set Asynchronous Configuration Message
|
||||
--------------------------------------
|
||||
|
||||
.. autoclass:: OFPSetAsync
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-42-ofp_set_async.packet.json
|
||||
|
||||
.. autoclass:: OFPGetAsyncRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-40-ofp_get_async_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGetAsyncReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-41-ofp_get_async_reply.packet.json
|
||||
|
||||
|
||||
Asynchronous Messages
|
||||
=====================
|
||||
|
||||
Packet-In Message
|
||||
-----------------
|
||||
|
||||
.. autoclass:: OFPPacketIn
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-4-ofp_packet_in.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-57-ofp_packet_in.packet.json
|
||||
|
||||
Flow Removed Message
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPFlowRemoved
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-38-ofp_flow_removed.packet.json
|
||||
|
||||
Port Status Message
|
||||
-------------------
|
||||
|
||||
.. autoclass:: OFPPortStatus
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-37-ofp_port_status.packet.json
|
||||
|
||||
Controller Role Status Message
|
||||
------------------------------
|
||||
|
||||
.. autoclass:: OFPRoleStatus
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-65-ofp_role_status.packet.json
|
||||
|
||||
Table Status Message
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPTableStatus
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-68-ofp_table_status.packet.json
|
||||
|
||||
Request Forward Message
|
||||
-----------------------
|
||||
|
||||
.. autoclass:: OFPRequestForward
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-71-ofp_requestforward.packet.json
|
||||
|
||||
|
||||
Symmetric Messages
|
||||
==================
|
||||
|
||||
Hello
|
||||
-----
|
||||
|
||||
.. autoclass:: OFPHello
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-10-ofp_hello.packet.json
|
||||
|
||||
.. autoclass:: OFPHelloElemVersionBitmap
|
||||
|
||||
Echo Request
|
||||
------------
|
||||
|
||||
.. autoclass:: OFPEchoRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-13-ofp_echo_request.packet.json
|
||||
|
||||
Echo Reply
|
||||
----------
|
||||
|
||||
.. autoclass:: OFPEchoReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-14-ofp_echo_reply.packet.json
|
||||
|
||||
Error Message
|
||||
-------------
|
||||
|
||||
.. autoclass:: OFPErrorMsg
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-15-ofp_error_msg.packet.json
|
||||
|
||||
Experimenter
|
||||
------------
|
||||
|
||||
.. autoclass:: OFPExperimenter
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-16-ofp_experimenter.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
||||
.. autoclass:: OFPPort
|
||||
|
||||
|
||||
Flow Match Structure
|
||||
====================
|
||||
|
||||
.. autoclass:: OFPMatch
|
||||
|
||||
|
||||
Flow Instruction Structures
|
||||
===========================
|
||||
|
||||
.. autoclass:: OFPInstructionGotoTable
|
||||
.. autoclass:: OFPInstructionWriteMetadata
|
||||
.. autoclass:: OFPInstructionActions
|
||||
.. autoclass:: OFPInstructionMeter
|
||||
|
||||
|
||||
Action Structures
|
||||
=================
|
||||
|
||||
.. autoclass:: OFPActionOutput
|
||||
.. autoclass:: OFPActionCopyTtlOut
|
||||
.. autoclass:: OFPActionCopyTtlIn
|
||||
.. autoclass:: OFPActionSetMplsTtl
|
||||
.. autoclass:: OFPActionDecMplsTtl
|
||||
.. autoclass:: OFPActionPushVlan
|
||||
.. autoclass:: OFPActionPopVlan
|
||||
.. autoclass:: OFPActionPushMpls
|
||||
.. autoclass:: OFPActionPopMpls
|
||||
.. autoclass:: OFPActionSetQueue
|
||||
.. autoclass:: OFPActionGroup
|
||||
.. autoclass:: OFPActionSetNwTtl
|
||||
.. autoclass:: OFPActionDecNwTtl
|
||||
.. autoclass:: OFPActionSetField
|
||||
.. autoclass:: OFPActionPushPbb
|
||||
.. autoclass:: OFPActionPopPbb
|
||||
.. autoclass:: OFPActionExperimenter
|
||||
@ -1,577 +0,0 @@
|
||||
*************************************
|
||||
OpenFlow v1.5 Messages and Structures
|
||||
*************************************
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_5_parser
|
||||
|
||||
Controller-to-Switch Messages
|
||||
=============================
|
||||
|
||||
Handshake
|
||||
---------
|
||||
|
||||
.. autoclass:: OFPFeaturesRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPSwitchFeatures
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-features_reply.packet.json
|
||||
|
||||
Switch Configuration
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPSetConfig
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-set_config.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-get_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-get_config_reply.packet.json
|
||||
|
||||
Modify State Messages
|
||||
---------------------
|
||||
|
||||
.. autoclass:: OFPTableMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_mod.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_mod_conjunction.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_mod_match_conj.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-group_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPPortMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-meter_mod.packet.json
|
||||
|
||||
Multipart Messages
|
||||
------------------
|
||||
|
||||
.. autoclass:: OFPDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-aggregate_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-aggregate_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPPortStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPPortStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPPortDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPPortDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-queue_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-queue_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-queue_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-queue_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-group_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-group_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-group_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-group_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-group_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupFeaturesStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-group_features_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-meter_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-meter_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-meter_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-meter_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-meter_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterFeaturesStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-meter_features_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPControllerStatusStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-controller_status_request.packet.json
|
||||
|
||||
.. autoclass:: OFPControllerStatusStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-controller_status_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPTableDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPTableFeaturesStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_features_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowMonitorRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_monitor_request.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowMonitorReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_monitor_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPBundleFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-bundle_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPBundleFeaturesStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-bundle_features_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPExperimenterStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-experimenter_request.packet.json
|
||||
|
||||
.. autoclass:: OFPExperimenterStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-experimenter_reply.packet.json
|
||||
|
||||
Packet-Out Message
|
||||
------------------
|
||||
|
||||
.. autoclass:: OFPPacketOut
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-packet_out.packet.json
|
||||
|
||||
Barrier Message
|
||||
---------------
|
||||
|
||||
.. autoclass:: OFPBarrierRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-barrier_request.packet.json
|
||||
|
||||
.. autoclass:: OFPBarrierReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-barrier_reply.packet.json
|
||||
|
||||
Role Request Message
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPRoleRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-role_request.packet.json
|
||||
|
||||
.. autoclass:: OFPRoleReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-role_reply.packet.json
|
||||
|
||||
Bundle Messages
|
||||
---------------
|
||||
|
||||
.. autoclass:: OFPBundleCtrlMsg
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-bundle_ctrl.packet.json
|
||||
|
||||
.. autoclass:: OFPBundleAddMsg
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-bundle_add.packet.json
|
||||
|
||||
Set Asynchronous Configuration Message
|
||||
--------------------------------------
|
||||
|
||||
.. autoclass:: OFPSetAsync
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-set_async.packet.json
|
||||
|
||||
.. autoclass:: OFPGetAsyncRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-get_async_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGetAsyncReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-get_async_reply.packet.json
|
||||
|
||||
Asynchronous Messages
|
||||
=====================
|
||||
|
||||
Packet-In Message
|
||||
-----------------
|
||||
|
||||
.. autoclass:: OFPPacketIn
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-packet_in.packet.json
|
||||
|
||||
Flow Removed Message
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPFlowRemoved
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_removed.packet.json
|
||||
|
||||
Port Status Message
|
||||
-------------------
|
||||
|
||||
.. autoclass:: OFPPortStatus
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_status.packet.json
|
||||
|
||||
Controller Role Status Message
|
||||
------------------------------
|
||||
|
||||
.. autoclass:: OFPRoleStatus
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-role_status.packet.json
|
||||
|
||||
Table Status Message
|
||||
--------------------
|
||||
|
||||
.. autoclass:: OFPTableStatus
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_status.packet.json
|
||||
|
||||
Request Forward Message
|
||||
-----------------------
|
||||
|
||||
.. autoclass:: OFPRequestForward
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-requestforward.packet.json
|
||||
|
||||
Controller Status Message
|
||||
-------------------------
|
||||
|
||||
.. autoclass:: OFPControllerStatus
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-controller_status.packet.json
|
||||
|
||||
Symmetric Messages
|
||||
==================
|
||||
|
||||
Hello
|
||||
-----
|
||||
|
||||
.. autoclass:: OFPHello
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-hello.packet.json
|
||||
|
||||
.. autoclass:: OFPHelloElemVersionBitmap
|
||||
|
||||
Echo Request
|
||||
------------
|
||||
|
||||
.. autoclass:: OFPEchoRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-echo_request.packet.json
|
||||
|
||||
Echo Reply
|
||||
----------
|
||||
|
||||
.. autoclass:: OFPEchoReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-echo_reply.packet.json
|
||||
|
||||
Error Message
|
||||
-------------
|
||||
|
||||
.. autoclass:: OFPErrorMsg
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-error_msg.packet.json
|
||||
|
||||
Experimenter
|
||||
------------
|
||||
|
||||
.. autoclass:: OFPExperimenter
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-error_msg_experimenter.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
||||
.. autoclass:: OFPPort
|
||||
|
||||
Flow Match Structure
|
||||
====================
|
||||
|
||||
.. autoclass:: OFPMatch
|
||||
|
||||
Flow Stats Structures
|
||||
=====================
|
||||
|
||||
.. autoclass:: OFPStats
|
||||
|
||||
Flow Instruction Structures
|
||||
===========================
|
||||
|
||||
.. autoclass:: OFPInstructionGotoTable
|
||||
.. autoclass:: OFPInstructionWriteMetadata
|
||||
.. autoclass:: OFPInstructionActions
|
||||
.. autoclass:: OFPInstructionStatTrigger
|
||||
|
||||
Action Structures
|
||||
=================
|
||||
|
||||
.. autoclass:: OFPActionOutput
|
||||
.. autoclass:: OFPActionCopyTtlOut
|
||||
.. autoclass:: OFPActionCopyTtlIn
|
||||
.. autoclass:: OFPActionSetMplsTtl
|
||||
.. autoclass:: OFPActionDecMplsTtl
|
||||
.. autoclass:: OFPActionPushVlan
|
||||
.. autoclass:: OFPActionPopVlan
|
||||
.. autoclass:: OFPActionPushMpls
|
||||
.. autoclass:: OFPActionPopMpls
|
||||
.. autoclass:: OFPActionSetQueue
|
||||
.. autoclass:: OFPActionGroup
|
||||
.. autoclass:: OFPActionSetNwTtl
|
||||
.. autoclass:: OFPActionDecNwTtl
|
||||
.. autoclass:: OFPActionSetField
|
||||
.. autoclass:: OFPActionPushPbb
|
||||
.. autoclass:: OFPActionPopPbb
|
||||
.. autoclass:: OFPActionCopyField
|
||||
.. autoclass:: OFPActionMeter
|
||||
.. autoclass:: OFPActionExperimenter
|
||||
|
||||
Controller Status Structure
|
||||
===========================
|
||||
|
||||
.. autoclass:: OFPControllerStatusStats
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
"""
|
||||
dummy module.
|
||||
"""
|
||||
@ -1,7 +0,0 @@
|
||||
"""
|
||||
dummy module.
|
||||
"""
|
||||
|
||||
class QuantumClientException:
|
||||
pass
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
"""
|
||||
dummy module.
|
||||
"""
|
||||
@ -11,7 +11,7 @@ Threads, events, and event queues
|
||||
Ryu applications are single-threaded entities which implement
|
||||
various functionalities in Ryu. Events are messages between them.
|
||||
|
||||
Ryu applications send asynchronous events to each other.
|
||||
Ryu applications send asynchronous events each other.
|
||||
Besides that, there are some Ryu-internal event sources which
|
||||
are not Ryu applications. One of examples of such event sources
|
||||
is OpenFlow controller.
|
||||
@ -22,11 +22,11 @@ between Ryu applications.
|
||||
Each Ryu application has a receive queue for events.
|
||||
The queue is FIFO and preserves the order of events.
|
||||
Each Ryu application has a thread for event processing.
|
||||
The thread keeps draining the receive queue by dequeueing an event
|
||||
The thread keep draining the receive queue by dequeueing an event
|
||||
and calling the appropritate event handler for the event type.
|
||||
Because the event handler is called in the context of
|
||||
the event processing thread, it should be careful when blocking.
|
||||
While an event handler is blocked, no further events for
|
||||
the event processing thread, it should be careful for blocking.
|
||||
I.e. while an event handler is blocked, no further events for
|
||||
the Ryu application will be processed.
|
||||
|
||||
There are kinds of events which are used to implement synchronous
|
||||
@ -82,10 +82,18 @@ For example, EventOFPPacketIn for packet-in message.
|
||||
The OpenFlow controller part of Ryu automatically decodes OpenFlow messages
|
||||
received from switches and send these events to Ryu applications which
|
||||
expressed an interest using ryu.controller.handler.set_ev_cls.
|
||||
OpenFlow event classes are subclasses of the following class.
|
||||
OpenFlow event classes have at least the following attributes.
|
||||
|
||||
.. autoclass:: ryu.controller.ofp_event.EventOFPMsgBase
|
||||
============ =============================================================
|
||||
Attribute Description
|
||||
============ =============================================================
|
||||
msg An object which describes the corresponding OpenFlow message.
|
||||
msg.datapath A ryu.controller.controller.Datapath instance which describes
|
||||
an OpenFlow switch from which we received this OpenFlow message.
|
||||
============ =============================================================
|
||||
|
||||
The msg object has some more additional members whose values are extracted
|
||||
from the original OpenFlow message.
|
||||
See :ref:`ofproto_ref` for more info about OpenFlow messages.
|
||||
|
||||
ryu.base.app_manager.RyuApp
|
||||
@ -93,87 +101,263 @@ ryu.base.app_manager.RyuApp
|
||||
|
||||
See :ref:`api_ref`.
|
||||
|
||||
ryu.controller.handler.set_ev_cls
|
||||
=================================
|
||||
ryu.controller.handler.set_ev_cls(ev_cls, dispatchers=None)
|
||||
===========================================================
|
||||
|
||||
.. autofunction:: ryu.controller.handler.set_ev_cls
|
||||
A decorator for Ryu application to declare an event handler.
|
||||
Decorated method will become an event handler.
|
||||
ev_cls is an event class whose instances this RyuApp wants to receive.
|
||||
dispatchers argument specifies one of the following negotiation phases
|
||||
(or a list of them) for which events should be generated for this handler.
|
||||
Note that, in case an event changes the phase, the phase before the change
|
||||
is used to check the interest.
|
||||
|
||||
=========================================== ==================================
|
||||
Negotiation phase Description
|
||||
=========================================== ==================================
|
||||
ryu.controller.handler.HANDSHAKE_DISPATCHER Sending and waiting for hello
|
||||
message
|
||||
ryu.controller.handler.CONFIG_DISPATCHER Version negotiated and sent
|
||||
features-request message
|
||||
ryu.controller.handler.MAIN_DISPATCHER Switch-features message received
|
||||
and sent set-config message
|
||||
ryu.controller.handler.DEAD_DISPATCHER Disconnect from the peer. Or
|
||||
disconnecting due to some
|
||||
unrecoverable errors.
|
||||
=========================================== ==================================
|
||||
|
||||
ryu.controller.controller.Datapath
|
||||
==================================
|
||||
|
||||
.. autoclass:: ryu.controller.controller.Datapath
|
||||
A class to describe an OpenFlow switch connected to this controller.
|
||||
An instance has the following attributes.
|
||||
|
||||
====================================== =======================================
|
||||
Attribute Description
|
||||
====================================== =======================================
|
||||
id 64-bit OpenFlow Datapath ID.
|
||||
Only available for
|
||||
ryu.controller.handler.MAIN_DISPATCHER
|
||||
phase.
|
||||
ofproto A module which exports OpenFlow
|
||||
definitions, mainly constants appeared
|
||||
in the specification, for the
|
||||
negotiated OpenFlow version. For
|
||||
example, ryu.ofproto.ofproto_v1_0 for
|
||||
OpenFlow 1.0.
|
||||
ofproto_parser A module which exports OpenFlow wire
|
||||
message encoder and decoder for the
|
||||
negotiated OpenFlow version. For
|
||||
example, ryu.ofproto.ofproto_v1_0_parser
|
||||
for OpenFlow 1.0.
|
||||
ofproto_parser.OFPxxxx(datapath, ....) A callable to prepare an OpenFlow
|
||||
message for the given switch. It can
|
||||
be sent with Datapath.send_msg later.
|
||||
xxxx is a name of the message. For
|
||||
example OFPFlowMod for flow-mod
|
||||
message. Arguemnts depend on the
|
||||
message.
|
||||
set_xid(self, msg) Generate an OpenFlow XID and put it
|
||||
in msg.xid.
|
||||
send_msg(self, msg) Queue an OpenFlow message to send to
|
||||
the corresponding switch. If msg.xid
|
||||
is None, set_xid is automatically
|
||||
called on the message before queueing.
|
||||
send_packet_out deprecated
|
||||
send_flow_mod deprecated
|
||||
send_flow_del deprecated
|
||||
send_delete_all_flows deprecated
|
||||
send_barrier Queue an OpenFlow barrier message to
|
||||
send to the switch.
|
||||
send_nxt_set_flow_format deprecated
|
||||
is_reserved_port deprecated
|
||||
====================================== =======================================
|
||||
|
||||
ryu.controller.event.EventBase
|
||||
==============================
|
||||
|
||||
.. autoclass:: ryu.controller.event.EventBase
|
||||
The base of all event classes.
|
||||
A Ryu application can define its own event type by creating a subclass.
|
||||
|
||||
ryu.controller.event.EventRequestBase
|
||||
=====================================
|
||||
|
||||
.. autoclass:: ryu.controller.event.EventRequestBase
|
||||
The base class for synchronous request for RyuApp.send_request.
|
||||
|
||||
ryu.controller.event.EventReplyBase
|
||||
===================================
|
||||
|
||||
.. autoclass:: ryu.controller.event.EventReplyBase
|
||||
The base class for synchronous request reply for RyuApp.send_reply.
|
||||
|
||||
ryu.controller.ofp_event.EventOFPStateChange
|
||||
============================================
|
||||
|
||||
.. autoclass:: ryu.controller.ofp_event.EventOFPStateChange
|
||||
An event class for negotiation phase change notification.
|
||||
An instance of this class is sent to observer after changing
|
||||
the negotiation phase.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
ryu.controller.ofp_event.EventOFPPortStateChange
|
||||
================================================
|
||||
|
||||
.. autoclass:: ryu.controller.ofp_event.EventOFPPortStateChange
|
||||
========= ====================================================================
|
||||
Attribute Description
|
||||
========= ====================================================================
|
||||
datapath ryu.controller.controller.Datapath instance of the switch
|
||||
========= ====================================================================
|
||||
|
||||
ryu.controller.dpset.EventDP
|
||||
============================
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.EventDP
|
||||
An event class to notify connect/disconnect of a switch.
|
||||
For OpenFlow switches, one can get the same notification by observing
|
||||
ryu.controller.ofp_event.EventOFPStateChange.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
========= ====================================================================
|
||||
Attribute Description
|
||||
========= ====================================================================
|
||||
dp A ryu.controller.controller.Datapath instance of the switch
|
||||
enter True when the switch connected to our controller. False for
|
||||
disconnect.
|
||||
========= ====================================================================
|
||||
|
||||
ryu.controller.dpset.EventPortAdd
|
||||
=================================
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.EventPortAdd
|
||||
An event class for switch port status notification.
|
||||
This event is generated when a new port is added to a switch.
|
||||
For OpenFlow switches, one can get the same notification by observing
|
||||
ryu.controller.ofp_event.EventOFPPortStatus.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
========= ====================================================================
|
||||
Attribute Description
|
||||
========= ====================================================================
|
||||
dp A ryu.controller.controller.Datapath instance of the switch
|
||||
port port number
|
||||
========= ====================================================================
|
||||
|
||||
ryu.controller.dpset.EventPortDelete
|
||||
====================================
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.EventPortDelete
|
||||
An event class for switch port status notification.
|
||||
This event is generated when a port is removed from a switch.
|
||||
For OpenFlow switches, one can get the same notification by observing
|
||||
ryu.controller.ofp_event.EventOFPPortStatus.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
========= ====================================================================
|
||||
Attribute Description
|
||||
========= ====================================================================
|
||||
dp A ryu.controller.controller.Datapath instance of the switch
|
||||
port port number
|
||||
========= ====================================================================
|
||||
|
||||
ryu.controller.dpset.EventPortModify
|
||||
====================================
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.EventPortModify
|
||||
An event class for switch port status notification.
|
||||
This event is generated when some attribute of a port is changed.
|
||||
For OpenFlow switches, one can get the same notification by observing
|
||||
ryu.controller.ofp_event.EventOFPPortStatus.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
========= ====================================================================
|
||||
Attribute Description
|
||||
========= ====================================================================
|
||||
dp A ryu.controller.controller.Datapath instance of the switch
|
||||
port port number
|
||||
========= ====================================================================
|
||||
|
||||
ryu.controller.network.EventNetworkPort
|
||||
=======================================
|
||||
|
||||
.. autoclass:: ryu.controller.network.EventNetworkPort
|
||||
An event class for notification of port arrival and deperture.
|
||||
This event is generated when a port is introduced to or removed from a network
|
||||
by the REST API.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
========== ===================================================================
|
||||
Attribute Description
|
||||
========== ===================================================================
|
||||
network_id Network ID
|
||||
dpid OpenFlow Datapath ID of the switch to which the port belongs.
|
||||
port_no OpenFlow port number of the port
|
||||
add_del True for adding a port. False for removing a port.
|
||||
========== ===================================================================
|
||||
|
||||
ryu.controller.network.EventNetworkDel
|
||||
======================================
|
||||
|
||||
.. autoclass:: ryu.controller.network.EventNetworkDel
|
||||
An event class for network deletion.
|
||||
This event is generated when a network is deleted by the REST API.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
========== ===================================================================
|
||||
Attribute Description
|
||||
========== ===================================================================
|
||||
network_id Network ID
|
||||
========== ===================================================================
|
||||
|
||||
ryu.controller.network.EventMacAddress
|
||||
======================================
|
||||
|
||||
.. autoclass:: ryu.controller.network.EventMacAddress
|
||||
An event class for end-point MAC address registration.
|
||||
This event is generated when a end-point MAC address is updated
|
||||
by the REST API.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
=========== ==================================================================
|
||||
Attribute Description
|
||||
=========== ==================================================================
|
||||
network_id Network ID
|
||||
dpid OpenFlow Datapath ID of the switch to which the port belongs.
|
||||
port_no OpenFlow port number of the port
|
||||
mac_address The old MAC address of the port if add_del is False. Otherwise
|
||||
the new MAC address.
|
||||
add_del False if this event is a result of a port removal. Otherwise
|
||||
True.
|
||||
=========== ==================================================================
|
||||
|
||||
ryu.controller.tunnels.EventTunnelKeyAdd
|
||||
========================================
|
||||
|
||||
.. autoclass:: ryu.controller.tunnels.EventTunnelKeyAdd
|
||||
An event class for tunnel key registration.
|
||||
This event is generated when a tunnel key is registered or updated
|
||||
by the REST API.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
=========== ==================================================================
|
||||
Attribute Description
|
||||
=========== ==================================================================
|
||||
network_id Network ID
|
||||
tunnel_key Tunnel Key
|
||||
=========== ==================================================================
|
||||
|
||||
ryu.controller.tunnels.EventTunnelKeyDel
|
||||
========================================
|
||||
|
||||
.. autoclass:: ryu.controller.tunnels.EventTunnelKeyDel
|
||||
An event class for tunnel key registration.
|
||||
This event is generated when a tunnel key is removed by the REST API.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
=========== ==================================================================
|
||||
Attribute Description
|
||||
=========== ==================================================================
|
||||
network_id Network ID
|
||||
tunnel_key Tunnel Key
|
||||
=========== ==================================================================
|
||||
|
||||
ryu.controller.tunnels.EventTunnelPort
|
||||
======================================
|
||||
|
||||
.. autoclass:: ryu.controller.tunnels.EventTunnelPort
|
||||
An event class for tunnel port registration.
|
||||
This event is generated when a tunnel port is added or removed by the REST API.
|
||||
An instance has at least the following attributes.
|
||||
|
||||
=========== ==================================================================
|
||||
Attribute Description
|
||||
=========== ==================================================================
|
||||
dpid OpenFlow Datapath ID
|
||||
port_no OpenFlow port number
|
||||
remote_dpid OpenFlow port number of the tunnel peer
|
||||
add_del True for adding a tunnel. False for removal.
|
||||
=========== ==================================================================
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user