mirror of
https://github.com/faucetsdn/ryu.git
synced 2026-01-25 18:41:56 +01:00
Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc35ba0178 | ||
|
|
a2106b6676 | ||
|
|
e94ee078ee | ||
|
|
be8f4d656a | ||
|
|
fd81201a52 | ||
|
|
df35e35703 | ||
|
|
fa709ba75b | ||
|
|
5a4d429a6d | ||
|
|
690edd4000 | ||
|
|
f0e9c92f78 | ||
|
|
dca44fee6d | ||
|
|
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
|
# W0614: Unused import %s from wildcard import
|
||||||
# R0801: Similar lines in %s files
|
# R0801: Similar lines in %s files
|
||||||
disable=C0111,W0511,W0142,E0602,C0103,E1101,R0903,W0614,R0801
|
disable=C0111,W0511,W0142,E0602,C0103,E1101,R0903,W0614,R0801
|
||||||
msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}
|
output-format=parseable
|
||||||
reports=yes
|
reports=yes
|
||||||
files-output=no
|
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
|
graft tools
|
||||||
recursive-exclude doc/build *
|
recursive-exclude doc/build *
|
||||||
recursive-exclude ryu/tests/packet_data_generator *
|
recursive-exclude ryu/tests/packet_data_generator *
|
||||||
recursive-exclude ryu/tests/packet_data_generator2 *
|
|
||||||
global-exclude *~
|
global-exclude *~
|
||||||
global-exclude *.pyc
|
global-exclude *.pyc
|
||||||
global-exclude .gitignore
|
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
|
What's Ryu
|
||||||
==========
|
==========
|
||||||
Ryu is a component-based software defined networking framework.
|
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
|
easy for developers to create new network management and control
|
||||||
applications. Ryu supports various protocols for managing network
|
applications. Ryu supports various protocols for managing network
|
||||||
devices, such as OpenFlow, Netconf, OF-config, etc. About OpenFlow,
|
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
|
All of the code is freely available under the Apache 2.0 license. Ryu
|
||||||
is fully written in Python.
|
is fully written in Python.
|
||||||
@ -25,46 +20,25 @@ Installing Ryu is quite easy::
|
|||||||
|
|
||||||
If you prefer to install Ryu from the source code::
|
If you prefer to install Ryu from the source code::
|
||||||
|
|
||||||
% git clone https://github.com/faucetsdn/ryu.git
|
% git clone git://github.com/osrg/ryu.git
|
||||||
% cd ryu; pip install .
|
% 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
|
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::
|
After writing your application, just type::
|
||||||
|
|
||||||
% ryu-manager yourapp.py
|
% 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
|
Support
|
||||||
=======
|
=======
|
||||||
Ryu Official site is `<https://ryu-sdn.org/>`_.
|
Ryu Official site is `<http://osrg.github.io/ryu/>`_.
|
||||||
|
|
||||||
If you have any
|
If you have any
|
||||||
questions, suggestions, and patches, the mailing list is available at
|
questions, suggestions, and patches, the mailing list is available at
|
||||||
|
|||||||
@ -5,59 +5,46 @@ How to Get Your Change Into Ryu
|
|||||||
Submitting a change
|
Submitting a change
|
||||||
===================
|
===================
|
||||||
|
|
||||||
To send patches to ryu, please make a
|
Send patches to ryu-devel@lists.sourceforge.net. Please don't use 'pull
|
||||||
`pull request <https://github.com/faucetsdn/ryu>`_ on GitHub.
|
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
|
http://lxr.linux.no/source/Documentation/SubmittingPatches
|
||||||
unit tests to make sure that they don't break the existing features.
|
|
||||||
The following command does all for you.
|
|
||||||
|
|
||||||
.. 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
|
fujita@rose:~/git/ryu$ ./run_tests.sh
|
||||||
$ pip install -r tools/test-requires
|
|
||||||
|
|
||||||
# Execute autopep8
|
Of course, you are encouraged to add unittests when you add new
|
||||||
# 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
|
|
||||||
features (it's not a must though).
|
features (it's not a must though).
|
||||||
|
|
||||||
Python version and libraries
|
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
|
* standard library + widely used library
|
||||||
on these versions.
|
Basically widely used == OpenStack adopted
|
||||||
|
As usual there are exceptions. gevents. Or python binding library for other
|
||||||
* standard library + widely used library:
|
|
||||||
|
|
||||||
Basically widely used == OpenStack adopted.
|
|
||||||
As usual there are exceptions. Or python binding library for other
|
|
||||||
component.
|
component.
|
||||||
|
|
||||||
Coding style guide
|
Coding style guide
|
||||||
==================
|
==================
|
||||||
* pep8:
|
* pep8
|
||||||
|
|
||||||
As python is used, PEP8 is would be hopefully mandatory for
|
As python is used, PEP8 is would be hopefully mandatory for
|
||||||
https://www.python.org/dev/peps/pep-0008/
|
http://www.python.org/dev/peps/pep-0008/
|
||||||
|
|
||||||
* pylint:
|
|
||||||
|
|
||||||
|
* pylint
|
||||||
Although pylint is useful for finding bugs, but pylint score not very
|
Although pylint is useful for finding bugs, but pylint score not very
|
||||||
important for now because we're still at early development stage.
|
important for now because we're still at early development stage.
|
||||||
https://www.pylint.org/
|
|
||||||
|
|
||||||
* Google python style guide is very helpful:
|
* Google python style guide is very helpful
|
||||||
http://google.github.io/styleguide/pyguide.html
|
http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
|
||||||
|
|
||||||
* Guidelines derived from Guido's Recommendations:
|
Guidelines derived from Guido's Recommendations
|
||||||
|
|
||||||
============================= ================= ========
|
============================= ================= ========
|
||||||
Type Public Internal
|
Type Public Internal
|
||||||
@ -75,11 +62,10 @@ Coding style guide
|
|||||||
Local Variables lower_with_under
|
Local Variables lower_with_under
|
||||||
============================= ================= ========
|
============================= ================= ========
|
||||||
|
|
||||||
* OpenStack Nova style guide:
|
* OpenStack Nova style guide
|
||||||
https://github.com/openstack/nova/blob/master/HACKING.rst
|
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.
|
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 used by unit tests. To make patches easier to read,
|
||||||
they are normalized using tools/normalize_json.py. Please re-run
|
they are normalized using tools/normalize_json.py. Please re-run
|
||||||
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Copyright (C) 2014 Nippon Telegraph and Telephone Corporation.
|
# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
|
||||||
# Copyright (C) 2014 YAMAMOTO Takashi <yamamoto at valinux co jp>
|
# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with 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
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from ryu.cmd.ryu_base import main
|
from ryu.cmd.rpc_cli import main
|
||||||
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
|
.. 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
|
: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:
|
: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
|
# 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.
|
# 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('../..'))
|
||||||
sys.path.insert(0, os.path.abspath('.'))
|
|
||||||
|
|
||||||
from ryu import version as ryu_version
|
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
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||||
# a list of builtin themes.
|
# 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
|
# 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
|
# 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
|
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||||
# typographically correct entities.
|
# typographically correct entities.
|
||||||
#html_use_smartypants = True
|
#html_use_smartypants = True
|
||||||
# (Deprecated since version 1.6)
|
|
||||||
|
|
||||||
# Custom sidebar templates, maps document names to template names.
|
# Custom sidebar templates, maps document names to template names.
|
||||||
#html_sidebars = {}
|
#html_sidebars = {}
|
||||||
@ -216,9 +214,9 @@ latex_documents = [
|
|||||||
# (source start file, name, description, authors, manual section).
|
# (source start file, name, description, authors, manual section).
|
||||||
man_pages = [
|
man_pages = [
|
||||||
('index', 'ryu', u'ryu Documentation',
|
('index', 'ryu', u'ryu Documentation',
|
||||||
[u'Ryu development team'], 8),
|
[u'ryu development team'], 1),
|
||||||
('man/ryu', 'ryu', u'management for Ryu application',
|
('man/rpc_cli', 'rpc-cli', u'a simple msgpack-rpc client',
|
||||||
[u'Ryu development team'], 8),
|
[u'ryu development team'], 1),
|
||||||
('man/ryu_manager', 'ryu-manager', 'management for Ryu application',
|
('man/ryu_manager', 'ryu-manager', u'ryu manager',
|
||||||
[u'Ryu development team'], 8),
|
[u'ryu development team'], 1),
|
||||||
]
|
]
|
||||||
|
|||||||
@ -6,5 +6,4 @@ Configuration
|
|||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
tls.rst
|
tls.rst
|
||||||
gui.rst
|
|
||||||
|
|
||||||
|
|||||||
@ -6,9 +6,7 @@ Writing Your Ryu Application
|
|||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
writing_ryu_app.rst
|
writing_ryu_app.rst
|
||||||
components.rst
|
|
||||||
ryu_app_api.rst
|
ryu_app_api.rst
|
||||||
library.rst
|
library.rst
|
||||||
ofproto_ref.rst
|
ofproto_ref.rst
|
||||||
nicira_ext_ref.rst
|
|
||||||
api_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
|
getting_started.rst
|
||||||
developing.rst
|
developing.rst
|
||||||
configuration.rst
|
configuration.rst
|
||||||
tests.rst
|
using_with_openstack.rst
|
||||||
snort_integrate.rst
|
|
||||||
app.rst
|
|
||||||
|
|
||||||
Indices and tables
|
Indices and tables
|
||||||
==================
|
==================
|
||||||
|
|||||||
@ -9,10 +9,4 @@ Ryu provides some useful library for your network applications.
|
|||||||
|
|
||||||
library_packet.rst
|
library_packet.rst
|
||||||
library_packet_ref.rst
|
library_packet_ref.rst
|
||||||
library_pcap.rst
|
|
||||||
library_of_config.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.
|
is building an arp packet.
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
from ryu.ofproto import ether
|
e = ethernet.ethernet(dst, src, ether.ETH_TYPE_8021Q)
|
||||||
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)
|
|
||||||
a = arp.arp(hwtype=1, proto=0x0800, hlen=6, plen=4, opcode=2,
|
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',
|
src='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')
|
dst='00:00:00:00:00:00', dst_ip='192.0.2.2')
|
||||||
p = packet.Packet()
|
p = packet.Packet()
|
||||||
p.add_protocol(e)
|
p.add_protocol(e)
|
||||||
p.add_protocol(a)
|
p.add_protocol(a)
|
||||||
p.serialize()
|
p.serialize()
|
||||||
print repr(p.data) # the on-wire packet
|
|
||||||
|
|||||||
@ -14,15 +14,103 @@ Stream Parser class
|
|||||||
.. automodule:: ryu.lib.packet.stream_parser
|
.. automodule:: ryu.lib.packet.stream_parser
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
List of the sub-classes:
|
.. autoclass:: ryu.lib.packet.bgp.StreamParser
|
||||||
|
:members:
|
||||||
- :py:mod:`ryu.lib.packet.bgp.StreamParser`
|
|
||||||
|
|
||||||
Protocol Header classes
|
Protocol Header classes
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
.. toctree::
|
.. automodule:: ryu.lib.packet.packet_base
|
||||||
:glob:
|
:members:
|
||||||
|
|
||||||
library_packet_ref/packet_base
|
.. automodule:: ryu.lib.packet.ethernet
|
||||||
library_packet_ref/*
|
: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
|
ryu-manager manual page
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
Synoposis
|
||||||
Synopsis
|
---------
|
||||||
--------
|
**ryu-manager** [*options*] <ryu apps>[, <ryu apps> ...]
|
||||||
**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 ...]]
|
|
||||||
|
|
||||||
Description
|
Description
|
||||||
-----------
|
-----------
|
||||||
:program:`ryu-manager` is the executable for Ryu applications. ryu-manager
|
:program:`ryu-manger` is an Operating System for Software Defined Networking
|
||||||
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.
|
|
||||||
|
|
||||||
Options
|
Options
|
||||||
-------
|
-------
|
||||||
app
|
|
||||||
application module name to run
|
|
||||||
|
|
||||||
-h, --help
|
-h, --help
|
||||||
show this help message and exit
|
|
||||||
|
|
||||||
--app-lists APP_LISTS
|
See also
|
||||||
application module name to run
|
--------
|
||||||
|
:manpage:`ryu-client(1)`
|
||||||
|
|
||||||
--ca-certs CA_CERTS
|
Author
|
||||||
CA certificates
|
------
|
||||||
|
Ryu development team
|
||||||
--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
|
|
||||||
|
|||||||
@ -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
|
:maxdepth: 3
|
||||||
|
|
||||||
ofproto_base.rst
|
ofproto_base.rst
|
||||||
ofproto_v1_0_ref.rst
|
|
||||||
ofproto_v1_2_ref.rst
|
ofproto_v1_2_ref.rst
|
||||||
ofproto_v1_3_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
|
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-16-ofp_experimenter.packet.json
|
||||||
|
|
||||||
Port Structures
|
|
||||||
===============
|
|
||||||
|
|
||||||
.. autoclass:: OFPPort
|
|
||||||
|
|
||||||
|
|
||||||
Flow Match Structure
|
Flow Match Structure
|
||||||
====================
|
====================
|
||||||
|
|||||||
@ -235,9 +235,7 @@ Multipart Messages
|
|||||||
|
|
||||||
JSON Example:
|
JSON Example:
|
||||||
|
|
||||||
See an example in:
|
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-56-ofp_table_features_reply.packet.json
|
||||||
|
|
||||||
``ryu/tests/unit/ofproto/json/of13/4-56-ofp_table_features_reply.packet.json``
|
|
||||||
|
|
||||||
Queue Configuration Messages
|
Queue Configuration Messages
|
||||||
----------------------------
|
----------------------------
|
||||||
@ -396,11 +394,6 @@ Experimenter
|
|||||||
|
|
||||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-16-ofp_experimenter.packet.json
|
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-16-ofp_experimenter.packet.json
|
||||||
|
|
||||||
Port Structures
|
|
||||||
===============
|
|
||||||
|
|
||||||
.. autoclass:: OFPPort
|
|
||||||
|
|
||||||
|
|
||||||
Flow Match Structure
|
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
|
Ryu applications are single-threaded entities which implement
|
||||||
various functionalities in Ryu. Events are messages between them.
|
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
|
Besides that, there are some Ryu-internal event sources which
|
||||||
are not Ryu applications. One of examples of such event sources
|
are not Ryu applications. One of examples of such event sources
|
||||||
is OpenFlow controller.
|
is OpenFlow controller.
|
||||||
@ -22,11 +22,11 @@ between Ryu applications.
|
|||||||
Each Ryu application has a receive queue for events.
|
Each Ryu application has a receive queue for events.
|
||||||
The queue is FIFO and preserves the order of events.
|
The queue is FIFO and preserves the order of events.
|
||||||
Each Ryu application has a thread for event processing.
|
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.
|
and calling the appropritate event handler for the event type.
|
||||||
Because the event handler is called in the context of
|
Because the event handler is called in the context of
|
||||||
the event processing thread, it should be careful when blocking.
|
the event processing thread, it should be careful for blocking.
|
||||||
While an event handler is blocked, no further events for
|
I.e. while an event handler is blocked, no further events for
|
||||||
the Ryu application will be processed.
|
the Ryu application will be processed.
|
||||||
|
|
||||||
There are kinds of events which are used to implement synchronous
|
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
|
The OpenFlow controller part of Ryu automatically decodes OpenFlow messages
|
||||||
received from switches and send these events to Ryu applications which
|
received from switches and send these events to Ryu applications which
|
||||||
expressed an interest using ryu.controller.handler.set_ev_cls.
|
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.
|
See :ref:`ofproto_ref` for more info about OpenFlow messages.
|
||||||
|
|
||||||
ryu.base.app_manager.RyuApp
|
ryu.base.app_manager.RyuApp
|
||||||
@ -93,87 +101,263 @@ ryu.base.app_manager.RyuApp
|
|||||||
|
|
||||||
See :ref:`api_ref`.
|
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
|
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
|
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
|
ryu.controller.event.EventRequestBase
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
.. autoclass:: ryu.controller.event.EventRequestBase
|
The base class for synchronous request for RyuApp.send_request.
|
||||||
|
|
||||||
ryu.controller.event.EventReplyBase
|
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
|
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
|
========= ====================================================================
|
||||||
================================================
|
Attribute Description
|
||||||
|
========= ====================================================================
|
||||||
.. autoclass:: ryu.controller.ofp_event.EventOFPPortStateChange
|
datapath ryu.controller.controller.Datapath instance of the switch
|
||||||
|
========= ====================================================================
|
||||||
|
|
||||||
ryu.controller.dpset.EventDP
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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