Fixup the docs building
This commit enable users to run `tox -e docs` to build docs for os-ken. It fixes several issues to ensure the build will succeed. In addition, the docs from upstream Ryu library is grouped into archived content. The future work is merging those docs into the os-ken contents. Change-Id: I5ee1998e0d2835495650cda530eb0b73c49b091a
This commit is contained in:
parent
b5be390943
commit
52a227c309
|
@ -74,17 +74,17 @@ qthelp:
|
|||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ryu.qhcp"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/os_ken.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ryu.qhc"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/os_ken.qhc"
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/ryu"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ryu"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/os_ken"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/os_ken"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
.. _api_ref:
|
||||
|
||||
*******************************
|
||||
Ryu API Reference
|
||||
OS-Ken API Reference
|
||||
*******************************
|
||||
|
||||
.. XXX list all members explicitly to workaround a sphinx bug
|
||||
.. XXX https://bitbucket.org/birkenfeld/sphinx/issue/1362
|
||||
|
||||
.. py:currentmodule:: ryu.base.app_manager
|
||||
.. autoclass:: ryu.base.app_manager.RyuApp
|
||||
.. py:currentmodule:: os_ken.base.app_manager
|
||||
.. autoclass:: os_ken.base.app_manager.RyuApp
|
||||
:members: OFP_VERSIONS,_CONTEXTS,_EVENTS,close,context_iteritems,reply_to_request,send_event,send_event_to_observers,send_request,start
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.DPSet
|
||||
.. autoclass:: os_ken.controller.dpset.DPSet
|
||||
:members:
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
*************************
|
||||
Built-in Ryu applications
|
||||
*************************
|
||||
****************************
|
||||
Built-in OS-Ken applications
|
||||
****************************
|
||||
|
||||
Ryu has some built-in Ryu applications.
|
||||
OS-Ken has some built-in OS-Ken applications.
|
||||
Some of them are examples.
|
||||
Others provide some functionalities to other Ryu applications.
|
||||
Others provide some functionalities to other OS-Ken applications.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
**************************************
|
||||
ryu.services.protocols.bgp.application
|
||||
**************************************
|
||||
*****************************************
|
||||
os_ken.services.protocols.bgp.application
|
||||
*****************************************
|
||||
|
||||
.. automodule:: ryu.services.protocols.bgp.application
|
||||
.. automodule:: os_ken.services.protocols.bgp.application
|
||||
:members:
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
*************
|
||||
ryu.app.ofctl
|
||||
*************
|
||||
****************
|
||||
os_ken.app.ofctl
|
||||
****************
|
||||
|
||||
ryu.app.ofctl provides a convenient way to use OpenFlow messages
|
||||
os_ken.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.
|
||||
OfctlService os_ken application is automatically loaded if your
|
||||
OS-Ken application imports ofctl.api module.
|
||||
|
||||
Example::
|
||||
|
||||
import ryu.app.ofctl.api
|
||||
import os_ken.app.ofctl.api
|
||||
|
||||
OfctlService application internally uses OpenFlow barrier messages
|
||||
to ensure message boundaries. As OpenFlow messages are asynchronous
|
||||
|
@ -20,11 +20,11 @@ are necessary for correct error handling.
|
|||
api module
|
||||
==========
|
||||
|
||||
.. automodule:: ryu.app.ofctl.api
|
||||
.. automodule:: os_ken.app.ofctl.api
|
||||
:members:
|
||||
|
||||
exceptions
|
||||
==========
|
||||
|
||||
.. automodule:: ryu.app.ofctl.exception
|
||||
.. automodule:: os_ken.app.ofctl.exception
|
||||
:members:
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
******************
|
||||
ryu.app.ofctl_rest
|
||||
******************
|
||||
*********************
|
||||
os_ken.app.ofctl_rest
|
||||
*********************
|
||||
|
||||
ryu.app.ofctl_rest provides REST APIs for retrieving the switch stats
|
||||
os_ken.app.ofctl_rest provides REST APIs for retrieving the switch stats
|
||||
and Updating the switch stats.
|
||||
This application helps you debug your application and get various statistics.
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
*****************
|
||||
ryu.app.rest_vtep
|
||||
*****************
|
||||
********************
|
||||
os_ken.app.rest_vtep
|
||||
********************
|
||||
|
||||
.. automodule:: ryu.app.rest_vtep
|
||||
.. automodule:: os_ken.app.rest_vtep
|
||||
|
||||
REST API
|
||||
========
|
||||
|
||||
.. autoclass:: ryu.app.rest_vtep.RestVtepController
|
||||
.. autoclass:: os_ken.app.rest_vtep.RestVtepController
|
||||
:members:
|
||||
:member-order: bysource
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
*****************
|
||||
Components of Ryu
|
||||
*****************
|
||||
********************
|
||||
Components of OS-Ken
|
||||
********************
|
||||
|
||||
Executables
|
||||
===========
|
||||
|
||||
bin/ryu-manager
|
||||
---------------
|
||||
bin/os_ken-manager
|
||||
------------------
|
||||
|
||||
The main executable.
|
||||
|
||||
|
@ -14,131 +14,131 @@ The main executable.
|
|||
Base components
|
||||
===============
|
||||
|
||||
ryu.base.app_manager
|
||||
--------------------
|
||||
.. automodule:: ryu.base.app_manager
|
||||
os_ken.base.app_manager
|
||||
-----------------------
|
||||
.. automodule:: os_ken.base.app_manager
|
||||
|
||||
|
||||
OpenFlow controller
|
||||
===================
|
||||
|
||||
ryu.controller.controller
|
||||
-------------------------
|
||||
.. automodule:: ryu.controller.controller
|
||||
os_ken.controller.controller
|
||||
----------------------------
|
||||
.. automodule:: os_ken.controller.controller
|
||||
|
||||
ryu.controller.dpset
|
||||
--------------------
|
||||
.. automodule:: ryu.controller.dpset
|
||||
os_ken.controller.dpset
|
||||
-----------------------
|
||||
.. automodule:: os_ken.controller.dpset
|
||||
|
||||
ryu.controller.ofp_event
|
||||
------------------------
|
||||
.. automodule:: ryu.controller.ofp_event
|
||||
os_ken.controller.ofp_event
|
||||
---------------------------
|
||||
.. automodule:: os_ken.controller.ofp_event
|
||||
|
||||
ryu.controller.ofp_handler
|
||||
--------------------------
|
||||
.. automodule:: ryu.controller.ofp_handler
|
||||
os_ken.controller.ofp_handler
|
||||
-----------------------------
|
||||
.. automodule:: os_ken.controller.ofp_handler
|
||||
|
||||
|
||||
OpenFlow wire protocol encoder and decoder
|
||||
==========================================
|
||||
|
||||
ryu.ofproto.ofproto_v1_0
|
||||
os_ken.ofproto.ofproto_v1_0
|
||||
---------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_0
|
||||
|
||||
os_ken.ofproto.ofproto_v1_0_parser
|
||||
----------------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_0_parser
|
||||
|
||||
os_ken.ofproto.ofproto_v1_2
|
||||
---------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_2
|
||||
|
||||
os_ken.ofproto.ofproto_v1_2_parser
|
||||
----------------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_2_parser
|
||||
|
||||
os_ken.ofproto.ofproto_v1_3
|
||||
---------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_3
|
||||
|
||||
os_ken.ofproto.ofproto_v1_3_parser
|
||||
----------------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_3_parser
|
||||
|
||||
os_ken.ofproto.ofproto_v1_4
|
||||
---------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_4
|
||||
|
||||
os_ken.ofproto.ofproto_v1_4_parser
|
||||
----------------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_4_parser
|
||||
|
||||
os_ken.ofproto.ofproto_v1_5
|
||||
---------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_5
|
||||
|
||||
os_ken.ofproto.ofproto_v1_5_parser
|
||||
----------------------------------
|
||||
.. automodule:: os_ken.ofproto.ofproto_v1_5_parser
|
||||
|
||||
|
||||
OS-Ken applications
|
||||
===================
|
||||
|
||||
os_ken.app.cbench
|
||||
-----------------
|
||||
.. automodule:: os_ken.app.cbench
|
||||
|
||||
os_ken.app.simple_switch
|
||||
------------------------
|
||||
.. automodule:: ryu.ofproto.ofproto_v1_0
|
||||
.. automodule:: os_ken.app.simple_switch
|
||||
|
||||
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
|
||||
os_ken.topology
|
||||
---------------
|
||||
.. automodule:: os_ken.topology
|
||||
|
||||
|
||||
Libraries
|
||||
=========
|
||||
|
||||
ryu.lib.packet
|
||||
--------------
|
||||
.. automodule:: ryu.lib.packet
|
||||
|
||||
ryu.lib.ovs
|
||||
-----------
|
||||
.. automodule:: ryu.lib.ovs
|
||||
|
||||
ryu.lib.of_config
|
||||
os_ken.lib.packet
|
||||
-----------------
|
||||
.. automodule:: ryu.lib.of_config
|
||||
.. automodule:: os_ken.lib.packet
|
||||
|
||||
ryu.lib.netconf
|
||||
---------------
|
||||
.. automodule:: ryu.lib.netconf
|
||||
os_ken.lib.ovs
|
||||
--------------
|
||||
.. automodule:: os_ken.lib.ovs
|
||||
|
||||
ryu.lib.xflow
|
||||
-------------
|
||||
.. automodule:: ryu.lib.xflow
|
||||
os_ken.lib.of_config
|
||||
--------------------
|
||||
.. automodule:: os_ken.lib.of_config
|
||||
|
||||
os_ken.lib.netconf
|
||||
------------------
|
||||
.. automodule:: os_ken.lib.netconf
|
||||
|
||||
os_ken.lib.xflow
|
||||
----------------
|
||||
.. automodule:: os_ken.lib.xflow
|
||||
|
||||
|
||||
Third party libraries
|
||||
=====================
|
||||
|
||||
ryu.contrib.ovs
|
||||
---------------
|
||||
os_ken.contrib.ovs
|
||||
------------------
|
||||
|
||||
Open vSwitch python binding. Used by ryu.lib.ovs.
|
||||
Open vSwitch python binding. Used by os_ken.lib.ovs.
|
||||
|
||||
ryu.contrib.oslo.config
|
||||
-----------------------
|
||||
os_ken.contrib.oslo.config
|
||||
--------------------------
|
||||
|
||||
Oslo configuration library. Used for ryu-manager's command-line options
|
||||
Oslo configuration library. Used for os_ken-manager's command-line options
|
||||
and configuration files.
|
||||
|
||||
ryu.contrib.ncclient
|
||||
--------------------
|
||||
os_ken.contrib.ncclient
|
||||
-----------------------
|
||||
|
||||
Python library for NETCONF client. Used by ryu.lib.of_config.
|
||||
Python library for NETCONF client. Used by os_ken.lib.of_config.
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
****************************
|
||||
Writing Your Ryu Application
|
||||
****************************
|
||||
*******************************
|
||||
Writing Your OS-Ken Application
|
||||
*******************************
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
writing_ryu_app.rst
|
||||
writing_os_ken_app.rst
|
||||
components.rst
|
||||
ryu_app_api.rst
|
||||
os_ken_app_api.rst
|
||||
library.rst
|
||||
ofproto_ref.rst
|
||||
nicira_ext_ref.rst
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
***************
|
||||
Getting Started
|
||||
***************
|
||||
|
||||
.. include:: ../../README.rst
|
|
@ -2,15 +2,15 @@
|
|||
Topology Viewer
|
||||
***************
|
||||
|
||||
ryu.app.gui_topology.gui_topology provides topology visualization.
|
||||
os_ken.app.gui_topology.gui_topology provides topology visualization.
|
||||
|
||||
This depends on following ryu applications.
|
||||
This depends on following os_ken 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.
|
||||
===================== =================================================
|
||||
======================== =================================================
|
||||
os_ken.app.rest_topology Get node and link data.
|
||||
os_ken.app.ws_topology Being notified change of link up/down.
|
||||
os_ken.app.ofctl_rest Get flows of datapaths.
|
||||
======================== =================================================
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
@ -21,9 +21,9 @@ Run mininet (or join your real environment)::
|
|||
|
||||
Run GUI application::
|
||||
|
||||
$ PYTHONPATH=. ./bin/ryu run --observe-links ryu/app/gui_topology/gui_topology.py
|
||||
$ PYTHONPATH=. ./bin/os_ken run --observe-links os_ken/app/gui_topology/gui_topology.py
|
||||
|
||||
Access http://<ip address of ryu host>:8080 with your web browser.
|
||||
Access http://<ip address of os_ken host>:8080 with your web browser.
|
||||
|
||||
Screenshot
|
||||
==========
|
||||
|
|
|
@ -20,6 +20,22 @@ Contents:
|
|||
admin/index
|
||||
reference/index
|
||||
|
||||
Archived Contents:
|
||||
|
||||
.. note::
|
||||
|
||||
Contents here are imported from the upstream Ryu documentation.
|
||||
They will be merged into the OS-Ken documentation gradually.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
developing.rst
|
||||
configuration.rst
|
||||
tests.rst
|
||||
snort_integrate.rst
|
||||
app.rst
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Library
|
||||
*******
|
||||
|
||||
Ryu provides some useful library for your network applications.
|
||||
OS-Ken provides some useful library for your network applications.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
|
|
@ -5,7 +5,7 @@ BGP speaker library
|
|||
Introduction
|
||||
============
|
||||
|
||||
Ryu BGP speaker library helps you to enable your code to speak BGP
|
||||
OS-Ken 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.
|
||||
|
||||
|
@ -26,13 +26,13 @@ instance advertizes some prefixes.
|
|||
|
||||
# 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"
|
||||
# No handlers could be found for logger "os_ken.lib.hub"
|
||||
import logging
|
||||
import sys
|
||||
log = logging.getLogger()
|
||||
log.addHandler(logging.StreamHandler(sys.stderr))
|
||||
|
||||
from ryu.services.protocols.bgp.bgpspeaker import BGPSpeaker
|
||||
from os_ken.services.protocols.bgp.bgpspeaker import BGPSpeaker
|
||||
|
||||
def dump_remote_best_path_change(event):
|
||||
print 'the best path changed:', event.remote_as, event.prefix,\
|
||||
|
|
|
@ -5,17 +5,17 @@ BGP speaker library API Reference
|
|||
BGPSpeaker class
|
||||
================
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker
|
||||
.. autoclass:: os_ken.services.protocols.bgp.bgpspeaker.BGPSpeaker
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.bgpspeaker.EventPrefix
|
||||
.. autoclass:: os_ken.services.protocols.bgp.bgpspeaker.EventPrefix
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.info_base.base.PrefixFilter
|
||||
.. autoclass:: os_ken.services.protocols.bgp.info_base.base.PrefixFilter
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.info_base.base.ASPathFilter
|
||||
.. autoclass:: os_ken.services.protocols.bgp.info_base.base.ASPathFilter
|
||||
:members:
|
||||
|
||||
.. autoclass:: ryu.services.protocols.bgp.info_base.base.AttributeMap
|
||||
.. autoclass:: os_ken.services.protocols.bgp.info_base.base.AttributeMap
|
||||
:members:
|
||||
|
|
|
@ -5,7 +5,7 @@ MRT file library
|
|||
Introduction
|
||||
============
|
||||
|
||||
Ryu MRT file library helps you to read/write MRT
|
||||
OS-Ken MRT file library helps you to read/write MRT
|
||||
(Multi-Threaded Routing Toolkit) Routing Information Export Format
|
||||
[`RFC6396`_].
|
||||
|
||||
|
@ -17,7 +17,7 @@ Reading MRT file
|
|||
For loading the routing information contained in MRT files, you can use
|
||||
mrtlib.Reader.
|
||||
|
||||
.. autoclass:: ryu.lib.mrtlib.Reader
|
||||
.. autoclass:: os_ken.lib.mrtlib.Reader
|
||||
|
||||
Writing MRT file
|
||||
================
|
||||
|
@ -25,4 +25,4 @@ Writing MRT file
|
|||
For dumping the routing information which your RyuApp generated, you can use
|
||||
mrtlib.Writer.
|
||||
|
||||
.. autoclass:: ryu.lib.mrtlib.Writer
|
||||
.. autoclass:: os_ken.lib.mrtlib.Writer
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
OF-Config support
|
||||
*****************
|
||||
|
||||
Ryu has a library for OF-Config support.
|
||||
OS-Ken has a library for OF-Config support.
|
||||
|
||||
XML schema files for NETCONFIG and OFConfig
|
||||
===========================================
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
OVSDB library
|
||||
*************
|
||||
|
||||
Path: ``ryu.lib.ovs``
|
||||
Path: ``os_ken.lib.ovs``
|
||||
|
||||
Similar to the :doc:`library_ovsdb_manager`, this library enables your
|
||||
application to speak the OVSDB protocol (RFC7047_), but differ from the
|
||||
|
@ -27,19 +27,19 @@ See manpage of ovs-vsctl_ command for more details.
|
|||
Basic Usage
|
||||
===========
|
||||
|
||||
1. Instantiate :py:mod:`ryu.lib.ovs.vsctl.VSCtl`.
|
||||
1. Instantiate :py:mod:`os_ken.lib.ovs.vsctl.VSCtl`.
|
||||
|
||||
2. Construct commands with :py:mod:`ryu.lib.ovs.vsctl.VSCtlCommand`.
|
||||
2. Construct commands with :py:mod:`os_ken.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`.
|
||||
3. Execute commands via :py:mod:`os_ken.lib.ovs.vsctl.VSCtl.run_command`.
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from ryu.lib.ovs import vsctl
|
||||
from os_ken.lib.ovs import vsctl
|
||||
|
||||
OVSDB_ADDR = 'tcp:127.0.0.1:6640'
|
||||
ovs_vsctl = vsctl.VSCtl(OVSDB_ADDR)
|
||||
|
@ -63,14 +63,14 @@ Example
|
|||
API Reference
|
||||
=============
|
||||
|
||||
ryu.lib.ovs.vsctl
|
||||
-----------------
|
||||
os_ken.lib.ovs.vsctl
|
||||
--------------------
|
||||
|
||||
.. automodule:: ryu.lib.ovs.vsctl
|
||||
.. automodule:: os_ken.lib.ovs.vsctl
|
||||
:members:
|
||||
|
||||
ryu.lib.ovs.bridge
|
||||
------------------
|
||||
os_ken.lib.ovs.bridge
|
||||
---------------------
|
||||
|
||||
.. automodule:: ryu.lib.ovs.bridge
|
||||
.. automodule:: os_ken.lib.ovs.bridge
|
||||
:members:
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
OVSDB Manager library
|
||||
*********************
|
||||
|
||||
Path: ``ryu.services.protocols.ovsdb``
|
||||
Path: ``os_ken.services.protocols.ovsdb``
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Ryu OVSDB Manager library allows your code to interact with devices
|
||||
OS-Ken 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
|
||||
Then, to make your devices connect to OS-Ken, you need to tell the controller IP
|
||||
address and port to your devices.
|
||||
|
||||
.. code-block:: bash
|
||||
|
@ -50,10 +50,10 @@ and also provides the API "create_port" for creating a port on a bridge.
|
|||
|
||||
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
|
||||
from os_ken.base import app_manager
|
||||
from os_ken.controller.handler import set_ev_cls
|
||||
from os_ken.services.protocols.ovsdb import api as ovsdb
|
||||
from os_ken.services.protocols.ovsdb import event as ovsdb_event
|
||||
|
||||
|
||||
class MyApp(app_manager.RyuApp):
|
||||
|
|
|
@ -5,7 +5,7 @@ Packet library
|
|||
Introduction
|
||||
============
|
||||
|
||||
Ryu packet library helps you to parse and build various protocol
|
||||
OS-Ken packet library helps you to parse and build various protocol
|
||||
packets. dpkt is the popular library for the same purpose, however it
|
||||
is not designed to handle protocols that are interleaved; vlan, mpls,
|
||||
gre, etc. So we implemented our own packet library.
|
||||
|
@ -24,9 +24,9 @@ First, let's look at how we can use the library to parse the received
|
|||
packets in a handler for OFPPacketIn messages.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from ryu.lib.packet import packet
|
||||
|
||||
|
||||
from os_ken.lib.packet import packet
|
||||
|
||||
@handler.set_ev_cls(ofp_event.EventOFPPacketIn, handler.MAIN_DISPATCHER)
|
||||
def packet_in_handler(self, ev):
|
||||
pkt = packet.Packet(array.array('B', ev.msg.data))
|
||||
|
@ -40,24 +40,24 @@ the protocol class instances.
|
|||
|
||||
If a TCP packet is received, something like the following is printed::
|
||||
|
||||
<ryu.lib.packet.ethernet.ethernet object at 0x107a5d790>
|
||||
<ryu.lib.packet.vlan.vlan object at 0x107a5d7d0>
|
||||
<ryu.lib.packet.ipv4.ipv4 object at 0x107a5d810>
|
||||
<ryu.lib.packet.tcp.tcp object at 0x107a5d850>
|
||||
<os_ken.lib.packet.ethernet.ethernet object at 0x107a5d790>
|
||||
<os_ken.lib.packet.vlan.vlan object at 0x107a5d7d0>
|
||||
<os_ken.lib.packet.ipv4.ipv4 object at 0x107a5d810>
|
||||
<os_ken.lib.packet.tcp.tcp object at 0x107a5d850>
|
||||
|
||||
If vlan is not used, you see something like::
|
||||
|
||||
<ryu.lib.packet.ethernet.ethernet object at 0x107a5d790>
|
||||
<ryu.lib.packet.ipv4.ipv4 object at 0x107a5d810>
|
||||
<ryu.lib.packet.tcp.tcp object at 0x107a5d850>
|
||||
<os_ken.lib.packet.ethernet.ethernet object at 0x107a5d790>
|
||||
<os_ken.lib.packet.ipv4.ipv4 object at 0x107a5d810>
|
||||
<os_ken.lib.packet.tcp.tcp object at 0x107a5d850>
|
||||
|
||||
You can access to a specific protocol class instance by using the
|
||||
packet class iterator. Let's try to check VLAN id if VLAN is used:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from ryu.lib.packet import packet
|
||||
|
||||
|
||||
from os_ken.lib.packet import packet
|
||||
|
||||
@handler.set_ev_cls(ofp_event.EventOFPPacketIn, handler.MAIN_DISPATCHER)
|
||||
def packet_in_handler(self, ev):
|
||||
pkt = packet.Packet(array.array('B', ev.msg.data))
|
||||
|
@ -68,11 +68,11 @@ packet class iterator. Let's try to check VLAN id if VLAN is used:
|
|||
|
||||
You see something like::
|
||||
|
||||
ethernet <ryu.lib.packet.ethernet.ethernet object at 0x107a5d790>
|
||||
vlan <ryu.lib.packet.vlan.vlan object at 0x107a5d7d0>
|
||||
ethernet <os_ken.lib.packet.ethernet.ethernet object at 0x107a5d790>
|
||||
vlan <os_ken.lib.packet.vlan.vlan object at 0x107a5d7d0>
|
||||
vid = 10
|
||||
ipv4 <ryu.lib.packet.ipv4.ipv4 object at 0x107a5d810>
|
||||
tcp <ryu.lib.packet.tcp.tcp object at 0x107a5d850>
|
||||
ipv4 <os_ken.lib.packet.ipv4.ipv4 object at 0x107a5d810>
|
||||
tcp <os_ken.lib.packet.tcp.tcp object at 0x107a5d850>
|
||||
|
||||
|
||||
|
||||
|
@ -86,8 +86,8 @@ is building an arp packet.
|
|||
|
||||
.. code-block:: python
|
||||
|
||||
from ryu.ofproto import ether
|
||||
from ryu.lib.packet import ethernet, arp, packet
|
||||
from os_ken.ofproto import ether
|
||||
from os_ken.lib.packet import ethernet, arp, packet
|
||||
|
||||
e = ethernet.ethernet(dst='ff:ff:ff:ff:ff:ff',
|
||||
src='08:60:6e:7f:74:e7',
|
||||
|
|
|
@ -5,18 +5,18 @@ Packet library API Reference
|
|||
Packet class
|
||||
============
|
||||
|
||||
.. automodule:: ryu.lib.packet.packet
|
||||
.. automodule:: os_ken.lib.packet.packet
|
||||
:members:
|
||||
|
||||
Stream Parser class
|
||||
===================
|
||||
|
||||
.. automodule:: ryu.lib.packet.stream_parser
|
||||
.. automodule:: os_ken.lib.packet.stream_parser
|
||||
:members:
|
||||
|
||||
List of the sub-classes:
|
||||
|
||||
- :py:mod:`ryu.lib.packet.bgp.StreamParser`
|
||||
- :py:mod:`os_ken.lib.packet.bgp.StreamParser`
|
||||
|
||||
Protocol Header classes
|
||||
=======================
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
ARP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.arp
|
||||
.. automodule:: os_ken.lib.packet.arp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
Packet Base Class
|
||||
*****************
|
||||
|
||||
.. automodule:: ryu.lib.packet.packet_base
|
||||
.. automodule:: os_ken.lib.packet.packet_base
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
BFD
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.bfd
|
||||
.. automodule:: os_ken.lib.packet.bfd
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
BGP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.bgp
|
||||
.. automodule:: os_ken.lib.packet.bgp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
BMP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.bmp
|
||||
.. automodule:: os_ken.lib.packet.bmp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
BPDU
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.bpdu
|
||||
.. automodule:: os_ken.lib.packet.bpdu
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
CFM
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.cfm
|
||||
.. automodule:: os_ken.lib.packet.cfm
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
DHCP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.dhcp
|
||||
.. automodule:: os_ken.lib.packet.dhcp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
DHCP6
|
||||
*****
|
||||
|
||||
.. automodule:: ryu.lib.packet.dhcp6
|
||||
.. automodule:: os_ken.lib.packet.dhcp6
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
Ethernet
|
||||
********
|
||||
|
||||
.. automodule:: ryu.lib.packet.ethernet
|
||||
.. automodule:: os_ken.lib.packet.ethernet
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
Geneve
|
||||
******
|
||||
|
||||
.. automodule:: ryu.lib.packet.geneve
|
||||
.. automodule:: os_ken.lib.packet.geneve
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
GRE
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.gre
|
||||
.. automodule:: os_ken.lib.packet.gre
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
ICMP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.icmp
|
||||
.. automodule:: os_ken.lib.packet.icmp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
ICMPv6
|
||||
******
|
||||
|
||||
.. automodule:: ryu.lib.packet.icmpv6
|
||||
.. automodule:: os_ken.lib.packet.icmpv6
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
IGMP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.igmp
|
||||
.. automodule:: os_ken.lib.packet.igmp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
IPv4
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.ipv4
|
||||
.. automodule:: os_ken.lib.packet.ipv4
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
IPv6
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.ipv6
|
||||
.. automodule:: os_ken.lib.packet.ipv6
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
LLC
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.llc
|
||||
.. automodule:: os_ken.lib.packet.llc
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
LLDP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.lldp
|
||||
.. automodule:: os_ken.lib.packet.lldp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
MPLS
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.mpls
|
||||
.. automodule:: os_ken.lib.packet.mpls
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
OpenFlow
|
||||
********
|
||||
|
||||
.. automodule:: ryu.lib.packet.openflow
|
||||
.. automodule:: os_ken.lib.packet.openflow
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
OSPF
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.ospf
|
||||
.. automodule:: os_ken.lib.packet.ospf
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
PBB
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.pbb
|
||||
.. automodule:: os_ken.lib.packet.pbb
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
SCTP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.sctp
|
||||
.. automodule:: os_ken.lib.packet.sctp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
Slow
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.slow
|
||||
.. automodule:: os_ken.lib.packet.slow
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
TCP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.tcp
|
||||
.. automodule:: os_ken.lib.packet.tcp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
UDP
|
||||
***
|
||||
|
||||
.. automodule:: ryu.lib.packet.udp
|
||||
.. automodule:: os_ken.lib.packet.udp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
VLAN
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.vlan
|
||||
.. automodule:: os_ken.lib.packet.vlan
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
VRRP
|
||||
****
|
||||
|
||||
.. automodule:: ryu.lib.packet.vrrp
|
||||
.. automodule:: os_ken.lib.packet.vrrp
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
VXLAN
|
||||
*****
|
||||
|
||||
.. automodule:: ryu.lib.packet.vxlan
|
||||
.. automodule:: os_ken.lib.packet.vxlan
|
||||
:members:
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
Zebra
|
||||
*****
|
||||
|
||||
.. automodule:: ryu.lib.packet.zebra
|
||||
.. automodule:: os_ken.lib.packet.zebra
|
||||
:members:
|
||||
|
|
|
@ -5,7 +5,7 @@ PCAP file library
|
|||
Introduction
|
||||
============
|
||||
|
||||
Ryu PCAP file library helps you to read/write PCAP file which file
|
||||
OS-Ken 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
|
||||
|
@ -16,7 +16,7 @@ Reading PCAP file
|
|||
For loading the packet data containing in PCAP files, you can use
|
||||
pcaplib.Reader.
|
||||
|
||||
.. autoclass:: ryu.lib.pcaplib.Reader
|
||||
.. autoclass:: os_ken.lib.pcaplib.Reader
|
||||
|
||||
Writing PCAP file
|
||||
=================
|
||||
|
@ -24,4 +24,4 @@ Writing PCAP file
|
|||
For dumping the packet data which your RyuApp received, you can use
|
||||
pcaplib.Writer.
|
||||
|
||||
.. autoclass:: ryu.lib.pcaplib.Writer
|
||||
.. autoclass:: os_ken.lib.pcaplib.Writer
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
:orphan:
|
||||
|
||||
ryu manual page
|
||||
===============
|
||||
os_ken manual page
|
||||
==================
|
||||
|
||||
Synopsis
|
||||
--------
|
||||
**ryu** [-h] [--config-dir DIR] [--config-file PATH] [--version] [subcommand] ...
|
||||
**os_ken** [-h] [--config-dir DIR] [--config-file PATH] [--version] [subcommand] ...
|
||||
|
||||
Description
|
||||
-----------
|
||||
:program:`ryu` is the executable for Ryu applications. ryu loads a sub-module
|
||||
:program:`os_ken` is the executable for OS-Ken applications. os_ken loads a sub-module
|
||||
corresponding to the sub-command and run it. 'run' sub-command is an
|
||||
equivalent to ryu-manager.
|
||||
equivalent to os_ken-manager.
|
||||
|
||||
Ryu is a component-based software defined networking framework. Ryu
|
||||
OS-Ken is a component-based software defined networking framework. OS-Ken
|
||||
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
|
||||
OS-Ken supports various protocols for managing network devices, such as
|
||||
OpenFlow, Netconf, OF-config, etc. About OpenFlow, OS-Ken supports fully
|
||||
1.0, 1.2, 1.3, 1.4 and Nicira Extensions.
|
||||
|
||||
Options
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
:orphan:
|
||||
|
||||
ryu-manager manual page
|
||||
=======================
|
||||
os_ken-manager manual page
|
||||
==========================
|
||||
|
||||
|
||||
Synopsis
|
||||
--------
|
||||
**ryu-manager** [-h]
|
||||
**os_ken-manager** [-h]
|
||||
[--app-lists APP_LISTS] [--ca-certs CA_CERTS]
|
||||
[--config-dir DIR] [--config-file PATH]
|
||||
[--ctl-cert CTL_CERT] [--ctl-privkey CTL_PRIVKEY]
|
||||
|
@ -37,14 +37,14 @@ Synopsis
|
|||
|
||||
Description
|
||||
-----------
|
||||
:program:`ryu-manager` is the executable for Ryu applications. ryu-manager
|
||||
loads Ryu applications and run it.
|
||||
:program:`os_ken-manager` is the executable for OS-Ken applications. os_ken-manager
|
||||
loads OS-Ken applications and run it.
|
||||
|
||||
Ryu is a component-based software defined networking framework. Ryu
|
||||
OS-Ken is a component-based software defined networking framework. OS-Ken
|
||||
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
|
||||
OS-Ken supports various protocols for managing network devices, such as
|
||||
OpenFlow, Netconf, OF-config, etc. About OpenFlow, OS-Ken supports fully
|
||||
1.0, 1.2, 1.3, 1.4 and Nicira Extensions.
|
||||
|
||||
Options
|
||||
|
|
|
@ -10,7 +10,7 @@ Nicira Extension Actions Structures
|
|||
The followings shows the supported NXAction classes only in OpenFlow1.0
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_0_parser
|
||||
.. py:currentmodule:: os_ken.ofproto.ofproto_v1_0_parser
|
||||
|
||||
.. autoclass:: NXActionSetQueue
|
||||
.. autoclass:: NXActionDecTtl
|
||||
|
@ -24,7 +24,7 @@ The followings shows the supported NXAction classes only in OpenFlow1.0
|
|||
The followings shows the supported NXAction classes in OpenFlow1.0 or later
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_3_parser
|
||||
.. py:currentmodule:: os_ken.ofproto.ofproto_v1_3_parser
|
||||
|
||||
.. autoclass:: NXActionPopQueue
|
||||
.. autoclass:: NXActionRegLoad
|
||||
|
@ -58,12 +58,12 @@ The followings shows the supported NXAction classes in OpenFlow1.0 or later
|
|||
.. autoclass:: NXFlowSpecMatch
|
||||
.. autoclass:: NXFlowSpecLoad
|
||||
.. autoclass:: NXFlowSpecOutput
|
||||
.. autofunction:: ryu.ofproto.nicira_ext.ofs_nbits
|
||||
.. autofunction:: os_ken.ofproto.nicira_ext.ofs_nbits
|
||||
|
||||
.. _nx_match_structures:
|
||||
|
||||
Nicira Extended Match Structures
|
||||
================================
|
||||
|
||||
.. automodule:: ryu.ofproto.nicira_ext
|
||||
.. automodule:: os_ken.ofproto.nicira_ext
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
OpenFlow version independent classes and functions
|
||||
**************************************************
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_parser
|
||||
.. py:currentmodule:: os_ken.ofproto.ofproto_parser
|
||||
|
||||
Base class for OpenFlow messages
|
||||
--------------------------------
|
||||
|
||||
.. XXX
|
||||
.. the descrption of _TYPE is inlined from ryu/lib/stringify.py.
|
||||
.. the descrption of _TYPE is inlined from os_ken/lib/stringify.py.
|
||||
.. this is a work around for a sphinx bug.
|
||||
.. https://bitbucket.org/birkenfeld/sphinx/issue/741/autodoc-inherited-members-wont-work-for
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
OpenFlow v1.0 Messages and Structures
|
||||
*************************************
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_0_parser
|
||||
.. py:currentmodule:: os_ken.ofproto.ofproto_v1_0_parser
|
||||
|
||||
Controller-to-Switch Messages
|
||||
=============================
|
||||
|
@ -14,13 +14,13 @@ Handshake
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-5-features_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-6-ofp_switch_features.packet.json
|
||||
|
||||
Switch Configuration
|
||||
--------------------
|
||||
|
@ -29,19 +29,19 @@ Switch Configuration
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-7-ofp_set_config.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-9-ofp_get_config_reply.packet.json
|
||||
|
||||
Modify State Messages
|
||||
---------------------
|
||||
|
@ -50,14 +50,14 @@ Modify State Messages
|
|||
|
||||
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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-2-ofp_flow_mod.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-22-ofp_port_mod.packet.json
|
||||
|
||||
Queue Configuration Messages
|
||||
----------------------------
|
||||
|
@ -66,13 +66,13 @@ Queue Configuration Messages
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-35-ofp_queue_get_config_request.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-36-ofp_queue_get_config_reply.packet.json
|
||||
|
||||
Read State Messages
|
||||
-------------------
|
||||
|
@ -81,74 +81,74 @@ Read State Messages
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-24-ofp_desc_stats_request.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-38-ofp_queue_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPVendorStatsRequest
|
||||
.. autoclass:: OFPVendorStatsReply
|
||||
|
@ -160,7 +160,7 @@ Send Packet Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-1-ofp_packet_out.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-1-ofp_packet_out.packet.json
|
||||
|
||||
Barrier Message
|
||||
---------------
|
||||
|
@ -169,13 +169,13 @@ Barrier Message
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-17-ofp_barrier_request.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/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
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-18-ofp_barrier_reply.packet.json
|
||||
|
||||
|
||||
Asynchronous Messages
|
||||
|
@ -188,7 +188,7 @@ Packet-In Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-4-ofp_packet_in.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-4-ofp_packet_in.packet.json
|
||||
|
||||
Flow Removed Message
|
||||
--------------------
|
||||
|
@ -197,7 +197,7 @@ Flow Removed Message
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-40-ofp_flow_removed.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-40-ofp_flow_removed.packet.json
|
||||
|
||||
Port Status Message
|
||||
-------------------
|
||||
|
@ -206,7 +206,7 @@ Port Status Message
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-39-ofp_port_status.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-39-ofp_port_status.packet.json
|
||||
|
||||
Error Message
|
||||
-------------
|
||||
|
@ -215,8 +215,8 @@ Error Message
|
|||
|
||||
.. 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
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-15-ofp_error_msg.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-41-ofp_error_msg_vendor.packet.json
|
||||
|
||||
Symmetric Messages
|
||||
==================
|
||||
|
@ -228,7 +228,7 @@ Hello
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-10-ofp_hello.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-10-ofp_hello.packet.json
|
||||
|
||||
Echo Request
|
||||
------------
|
||||
|
@ -237,7 +237,7 @@ Echo Request
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-13-ofp_echo_request.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-13-ofp_echo_request.packet.json
|
||||
|
||||
|
||||
Echo Reply
|
||||
|
@ -247,7 +247,7 @@ Echo Reply
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-14-ofp_echo_reply.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-14-ofp_echo_reply.packet.json
|
||||
|
||||
|
||||
Vendor
|
||||
|
@ -257,7 +257,7 @@ Vendor
|
|||
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of10/1-16-ofp_vendor.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of10/1-16-ofp_vendor.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
OpenFlow v1.2 Messages and Structures
|
||||
*************************************
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_2_parser
|
||||
.. py:currentmodule:: os_ken.ofproto.ofproto_v1_2_parser
|
||||
|
||||
Controller-to-Switch Messages
|
||||
=============================
|
||||
|
@ -14,13 +14,13 @@ Handshake
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-5-ofp_features_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-5-ofp_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPSwitchFeatures
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-6-ofp_features_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-6-ofp_features_reply.packet.json
|
||||
|
||||
Switch Configuration
|
||||
--------------------
|
||||
|
@ -29,19 +29,19 @@ Switch Configuration
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-7-ofp_set_config.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-7-ofp_set_config.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-8-ofp_get_config_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-8-ofp_get_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-9-ofp_get_config_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-9-ofp_get_config_reply.packet.json
|
||||
|
||||
Flow Table Configuration
|
||||
------------------------
|
||||
|
@ -50,7 +50,7 @@ Flow Table Configuration
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-23-ofp_table_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-23-ofp_table_mod.packet.json
|
||||
|
||||
Modify State Messages
|
||||
---------------------
|
||||
|
@ -59,20 +59,20 @@ Modify State Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-2-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-3-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-2-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-3-ofp_flow_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-21-ofp_group_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-21-ofp_group_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPPortMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-22-ofp_port_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-22-ofp_port_mod.packet.json
|
||||
|
||||
Read State Messages
|
||||
-------------------
|
||||
|
@ -81,74 +81,74 @@ Read State Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-24-ofp_desc_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-24-ofp_desc_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPDescStats
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-0-ofp_desc_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-0-ofp_desc_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-11-ofp_flow_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-11-ofp_flow_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStats
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-12-ofp_flow_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-12-ofp_flow_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-25-ofp_aggregate_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-25-ofp_aggregate_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-26-ofp_aggregate_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-26-ofp_aggregate_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-27-ofp_table_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-27-ofp_table_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStats
|
||||
|
||||
.. XXX commented out because it's too long
|
||||
.. JSON Example:
|
||||
..
|
||||
.. .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-28-ofp_table_stats_reply.packet.json
|
||||
.. .. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-28-ofp_table_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPPortStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-29-ofp_port_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-29-ofp_port_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPPortStats
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-30-ofp_port_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-30-ofp_port_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-37-ofp_queue_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-37-ofp_queue_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStats
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-38-ofp_queue_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-38-ofp_queue_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupStatsRequest
|
||||
.. autoclass:: OFPGroupStats
|
||||
|
@ -156,25 +156,25 @@ Read State Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-33-ofp_group_desc_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-33-ofp_group_desc_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupDescStats
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-34-ofp_group_desc_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-34-ofp_group_desc_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-31-ofp_group_features_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-31-ofp_group_features_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupFeaturesStats
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-32-ofp_group_features_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-32-ofp_group_features_stats_reply.packet.json
|
||||
|
||||
Queue Configuration Messages
|
||||
----------------------------
|
||||
|
@ -183,13 +183,13 @@ Queue Configuration Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-35-ofp_queue_get_config_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-35-ofp_queue_get_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueGetConfigReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-36-ofp_queue_get_config_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-36-ofp_queue_get_config_reply.packet.json
|
||||
|
||||
Packet-Out Message
|
||||
------------------
|
||||
|
@ -198,7 +198,7 @@ Packet-Out Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-1-ofp_packet_out.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-1-ofp_packet_out.packet.json
|
||||
|
||||
Barrier Message
|
||||
---------------
|
||||
|
@ -207,13 +207,13 @@ Barrier Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-17-ofp_barrier_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-17-ofp_barrier_request.packet.json
|
||||
|
||||
.. autoclass:: OFPBarrierReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-18-ofp_barrier_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-18-ofp_barrier_reply.packet.json
|
||||
|
||||
Role Request Message
|
||||
--------------------
|
||||
|
@ -222,13 +222,13 @@ Role Request Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-19-ofp_role_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-19-ofp_role_request.packet.json
|
||||
|
||||
.. autoclass:: OFPRoleReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-20-ofp_role_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-20-ofp_role_reply.packet.json
|
||||
|
||||
|
||||
Asynchronous Messages
|
||||
|
@ -241,7 +241,7 @@ Packet-In Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-4-ofp_packet_in.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-4-ofp_packet_in.packet.json
|
||||
|
||||
Flow Removed Message
|
||||
--------------------
|
||||
|
@ -250,7 +250,7 @@ Flow Removed Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-40-ofp_flow_removed.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-40-ofp_flow_removed.packet.json
|
||||
|
||||
Port Status Message
|
||||
-------------------
|
||||
|
@ -259,7 +259,7 @@ Port Status Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-39-ofp_port_status.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-39-ofp_port_status.packet.json
|
||||
|
||||
Error Message
|
||||
-------------
|
||||
|
@ -268,8 +268,8 @@ Error Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-15-ofp_error_msg.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-41-ofp_error_msg_experimenter.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-15-ofp_error_msg.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-41-ofp_error_msg_experimenter.packet.json
|
||||
|
||||
Symmetric Messages
|
||||
==================
|
||||
|
@ -281,7 +281,7 @@ Hello
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-10-ofp_hello.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-10-ofp_hello.packet.json
|
||||
|
||||
Echo Request
|
||||
------------
|
||||
|
@ -290,7 +290,7 @@ Echo Request
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-13-ofp_echo_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-13-ofp_echo_request.packet.json
|
||||
|
||||
|
||||
Echo Reply
|
||||
|
@ -300,7 +300,7 @@ Echo Reply
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-14-ofp_echo_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-14-ofp_echo_reply.packet.json
|
||||
|
||||
|
||||
Experimenter
|
||||
|
@ -310,7 +310,7 @@ Experimenter
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of12/3-16-ofp_experimenter.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of12/3-16-ofp_experimenter.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
OpenFlow v1.3 Messages and Structures
|
||||
*************************************
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_3_parser
|
||||
.. py:currentmodule:: os_ken.ofproto.ofproto_v1_3_parser
|
||||
|
||||
Controller-to-Switch Messages
|
||||
=============================
|
||||
|
@ -14,13 +14,13 @@ Handshake
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-5-ofp_features_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-5-ofp_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPSwitchFeatures
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-6-ofp_features_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-6-ofp_features_reply.packet.json
|
||||
|
||||
Switch Configuration
|
||||
--------------------
|
||||
|
@ -29,19 +29,19 @@ Switch Configuration
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-7-ofp_set_config.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-7-ofp_set_config.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-8-ofp_get_config_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-8-ofp_get_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGetConfigReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-9-ofp_get_config_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-9-ofp_get_config_reply.packet.json
|
||||
|
||||
Flow Table Configuration
|
||||
------------------------
|
||||
|
@ -50,7 +50,7 @@ Flow Table Configuration
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-23-ofp_table_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-23-ofp_table_mod.packet.json
|
||||
|
||||
Modify State Messages
|
||||
---------------------
|
||||
|
@ -59,27 +59,27 @@ Modify State Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-2-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-3-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-46-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-2-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-3-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-46-ofp_flow_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-21-ofp_group_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-21-ofp_group_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPPortMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-22-ofp_port_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-22-ofp_port_mod.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterMod
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-45-ofp_meter_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-45-ofp_meter_mod.packet.json
|
||||
|
||||
Multipart Messages
|
||||
------------------
|
||||
|
@ -88,85 +88,85 @@ Multipart Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-24-ofp_desc_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-24-ofp_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-0-ofp_desc_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-0-ofp_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-11-ofp_flow_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-11-ofp_flow_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPFlowStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-12-ofp_flow_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-12-ofp_flow_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-25-ofp_aggregate_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-25-ofp_aggregate_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPAggregateStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-26-ofp_aggregate_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-26-ofp_aggregate_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-27-ofp_table_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-27-ofp_table_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPTableStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-28-ofp_table_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-28-ofp_table_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPPortStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-29-ofp_port_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-29-ofp_port_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPPortStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-30-ofp_port_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-30-ofp_port_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPPortDescStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-53-ofp_port_desc_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-53-ofp_port_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPPortDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-54-ofp_port_desc_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-54-ofp_port_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-37-ofp_queue_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-37-ofp_queue_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-38-ofp_queue_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-38-ofp_queue_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupStatsRequest
|
||||
.. autoclass:: OFPGroupStatsReply
|
||||
|
@ -174,61 +174,61 @@ Multipart Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-33-ofp_group_desc_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-33-ofp_group_desc_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupDescStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-34-ofp_group_desc_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-34-ofp_group_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-31-ofp_group_features_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-31-ofp_group_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGroupFeaturesStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-32-ofp_group_features_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-32-ofp_group_features_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-49-ofp_meter_stats_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-49-ofp_meter_stats_request.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-50-ofp_meter_stats_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-50-ofp_meter_stats_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterConfigStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-47-ofp_meter_config_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-47-ofp_meter_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterConfigStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-48-ofp_meter_config_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-48-ofp_meter_config_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterFeaturesStatsRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-51-ofp_meter_features_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-51-ofp_meter_features_request.packet.json
|
||||
|
||||
.. autoclass:: OFPMeterFeaturesStatsReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-52-ofp_meter_features_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-52-ofp_meter_features_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableFeaturesStatsRequest
|
||||
.. autoclass:: OFPTableFeaturesStatsReply
|
||||
|
@ -237,7 +237,7 @@ Multipart Messages
|
|||
|
||||
See an example in:
|
||||
|
||||
``ryu/tests/unit/ofproto/json/of13/4-56-ofp_table_features_reply.packet.json``
|
||||
``os_ken/tests/unit/ofproto/json/of13/4-56-ofp_table_features_reply.packet.json``
|
||||
|
||||
Queue Configuration Messages
|
||||
----------------------------
|
||||
|
@ -246,13 +246,13 @@ Queue Configuration Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-35-ofp_queue_get_config_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-35-ofp_queue_get_config_request.packet.json
|
||||
|
||||
.. autoclass:: OFPQueueGetConfigReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-36-ofp_queue_get_config_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-36-ofp_queue_get_config_reply.packet.json
|
||||
|
||||
Packet-Out Message
|
||||
------------------
|
||||
|
@ -261,7 +261,7 @@ Packet-Out Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-1-ofp_packet_out.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-1-ofp_packet_out.packet.json
|
||||
|
||||
Barrier Message
|
||||
---------------
|
||||
|
@ -270,13 +270,13 @@ Barrier Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-17-ofp_barrier_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-17-ofp_barrier_request.packet.json
|
||||
|
||||
.. autoclass:: OFPBarrierReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-18-ofp_barrier_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-18-ofp_barrier_reply.packet.json
|
||||
|
||||
Role Request Message
|
||||
--------------------
|
||||
|
@ -285,13 +285,13 @@ Role Request Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-19-ofp_role_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-19-ofp_role_request.packet.json
|
||||
|
||||
.. autoclass:: OFPRoleReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-20-ofp_role_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-20-ofp_role_reply.packet.json
|
||||
|
||||
Set Asynchronous Configuration Message
|
||||
--------------------------------------
|
||||
|
@ -300,19 +300,19 @@ Set Asynchronous Configuration Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-44-ofp_set_async.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-44-ofp_set_async.packet.json
|
||||
|
||||
.. autoclass:: OFPGetAsyncRequest
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-42-ofp_get_async_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-42-ofp_get_async_request.packet.json
|
||||
|
||||
.. autoclass:: OFPGetAsyncReply
|
||||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-43-ofp_get_async_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-43-ofp_get_async_reply.packet.json
|
||||
|
||||
|
||||
Asynchronous Messages
|
||||
|
@ -325,7 +325,7 @@ Packet-In Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-4-ofp_packet_in.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-4-ofp_packet_in.packet.json
|
||||
|
||||
Flow Removed Message
|
||||
--------------------
|
||||
|
@ -334,7 +334,7 @@ Flow Removed Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-40-ofp_flow_removed.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-40-ofp_flow_removed.packet.json
|
||||
|
||||
Port Status Message
|
||||
-------------------
|
||||
|
@ -343,7 +343,7 @@ Port Status Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-39-ofp_port_status.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-39-ofp_port_status.packet.json
|
||||
|
||||
Error Message
|
||||
-------------
|
||||
|
@ -352,7 +352,7 @@ Error Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-15-ofp_error_msg.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-15-ofp_error_msg.packet.json
|
||||
|
||||
|
||||
Symmetric Messages
|
||||
|
@ -365,7 +365,7 @@ Hello
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-10-ofp_hello.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-10-ofp_hello.packet.json
|
||||
|
||||
.. autoclass:: OFPHelloElemVersionBitmap
|
||||
|
||||
|
@ -376,7 +376,7 @@ Echo Request
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-13-ofp_echo_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-13-ofp_echo_request.packet.json
|
||||
|
||||
Echo Reply
|
||||
----------
|
||||
|
@ -385,7 +385,7 @@ Echo Reply
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-14-ofp_echo_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-14-ofp_echo_reply.packet.json
|
||||
|
||||
Experimenter
|
||||
------------
|
||||
|
@ -394,7 +394,7 @@ Experimenter
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of13/4-16-ofp_experimenter.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of13/4-16-ofp_experimenter.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
OpenFlow v1.4 Messages and Structures
|
||||
*************************************
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_4_parser
|
||||
.. py:currentmodule:: os_ken.ofproto.ofproto_v1_4_parser
|
||||
|
||||
Controller-to-Switch Messages
|
||||
=============================
|
||||
|
@ -14,13 +14,13 @@ Handshake
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-5-ofp_features_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-6-ofp_features_reply.packet.json
|
||||
|
||||
Switch Configuration
|
||||
--------------------
|
||||
|
@ -29,19 +29,19 @@ Switch Configuration
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-7-ofp_set_config.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-9-ofp_get_config_reply.packet.json
|
||||
|
||||
Modify State Messages
|
||||
---------------------
|
||||
|
@ -50,34 +50,34 @@ Modify State Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-23-ofp_table_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-2-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-3-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-44-ofp_flow_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-43-ofp_meter_mod.packet.json
|
||||
|
||||
Multipart Messages
|
||||
------------------
|
||||
|
@ -86,61 +86,61 @@ Multipart Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-24-ofp_desc_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-62-ofp_table_desc_reply.packet.json
|
||||
|
||||
.. autoclass:: OFPTableFeaturesStatsRequest
|
||||
|
||||
|
@ -148,7 +148,7 @@ Multipart Messages
|
|||
|
||||
See an example in:
|
||||
|
||||
``ryu/tests/unit/ofproto/json/of14/5-53-ofp_table_features_request.packet.json``
|
||||
``os_ken/tests/unit/ofproto/json/of14/5-53-ofp_table_features_request.packet.json``
|
||||
|
||||
.. autoclass:: OFPTableFeaturesStatsReply
|
||||
|
||||
|
@ -156,151 +156,151 @@ Multipart Messages
|
|||
|
||||
See an example in:
|
||||
|
||||
``ryu/tests/unit/ofproto/json/of14/5-54-ofp_table_features_reply.packet.json``
|
||||
``os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-60-ofp_experimenter_reply.packet.json
|
||||
|
||||
Packet-Out Message
|
||||
------------------
|
||||
|
@ -309,7 +309,7 @@ Packet-Out Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-1-ofp_packet_out.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-1-ofp_packet_out.packet.json
|
||||
|
||||
Barrier Message
|
||||
---------------
|
||||
|
@ -318,13 +318,13 @@ Barrier Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-17-ofp_barrier_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-18-ofp_barrier_reply.packet.json
|
||||
|
||||
Role Request Message
|
||||
--------------------
|
||||
|
@ -333,13 +333,13 @@ Role Request Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-19-ofp_role_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-20-ofp_role_reply.packet.json
|
||||
|
||||
Bundle Messages
|
||||
---------------
|
||||
|
@ -348,13 +348,13 @@ Bundle Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-69-ofp_bundle_ctrl_msg.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-70-ofp_bundle_add_msg.packet.json
|
||||
|
||||
Set Asynchronous Configuration Message
|
||||
--------------------------------------
|
||||
|
@ -363,19 +363,19 @@ Set Asynchronous Configuration Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-42-ofp_set_async.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-41-ofp_get_async_reply.packet.json
|
||||
|
||||
|
||||
Asynchronous Messages
|
||||
|
@ -388,8 +388,8 @@ Packet-In Message
|
|||
|
||||
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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-4-ofp_packet_in.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-57-ofp_packet_in.packet.json
|
||||
|
||||
Flow Removed Message
|
||||
--------------------
|
||||
|
@ -398,7 +398,7 @@ Flow Removed Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-38-ofp_flow_removed.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-38-ofp_flow_removed.packet.json
|
||||
|
||||
Port Status Message
|
||||
-------------------
|
||||
|
@ -407,7 +407,7 @@ Port Status Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-37-ofp_port_status.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-37-ofp_port_status.packet.json
|
||||
|
||||
Controller Role Status Message
|
||||
------------------------------
|
||||
|
@ -416,7 +416,7 @@ Controller Role Status Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-65-ofp_role_status.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-65-ofp_role_status.packet.json
|
||||
|
||||
Table Status Message
|
||||
--------------------
|
||||
|
@ -425,7 +425,7 @@ Table Status Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-68-ofp_table_status.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-68-ofp_table_status.packet.json
|
||||
|
||||
Request Forward Message
|
||||
-----------------------
|
||||
|
@ -434,7 +434,7 @@ Request Forward Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-71-ofp_requestforward.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-71-ofp_requestforward.packet.json
|
||||
|
||||
|
||||
Symmetric Messages
|
||||
|
@ -447,7 +447,7 @@ Hello
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-10-ofp_hello.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-10-ofp_hello.packet.json
|
||||
|
||||
.. autoclass:: OFPHelloElemVersionBitmap
|
||||
|
||||
|
@ -458,7 +458,7 @@ Echo Request
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-13-ofp_echo_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-13-ofp_echo_request.packet.json
|
||||
|
||||
Echo Reply
|
||||
----------
|
||||
|
@ -467,7 +467,7 @@ Echo Reply
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-14-ofp_echo_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-14-ofp_echo_reply.packet.json
|
||||
|
||||
Error Message
|
||||
-------------
|
||||
|
@ -476,7 +476,7 @@ Error Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-15-ofp_error_msg.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-15-ofp_error_msg.packet.json
|
||||
|
||||
Experimenter
|
||||
------------
|
||||
|
@ -485,7 +485,7 @@ Experimenter
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-16-ofp_experimenter.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of14/5-16-ofp_experimenter.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
OpenFlow v1.5 Messages and Structures
|
||||
*************************************
|
||||
|
||||
.. py:currentmodule:: ryu.ofproto.ofproto_v1_5_parser
|
||||
.. py:currentmodule:: os_ken.ofproto.ofproto_v1_5_parser
|
||||
|
||||
Controller-to-Switch Messages
|
||||
=============================
|
||||
|
@ -14,13 +14,13 @@ Handshake
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-features_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-features_reply.packet.json
|
||||
|
||||
Switch Configuration
|
||||
--------------------
|
||||
|
@ -29,19 +29,19 @@ Switch Configuration
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-set_config.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-get_config_reply.packet.json
|
||||
|
||||
Modify State Messages
|
||||
---------------------
|
||||
|
@ -50,33 +50,33 @@ Modify State Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_mod.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_mod_conjunction.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-meter_mod.packet.json
|
||||
|
||||
Multipart Messages
|
||||
------------------
|
||||
|
@ -85,253 +85,253 @@ Multipart Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-desc_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-experimenter_reply.packet.json
|
||||
|
||||
Packet-Out Message
|
||||
------------------
|
||||
|
@ -340,7 +340,7 @@ Packet-Out Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-packet_out.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-packet_out.packet.json
|
||||
|
||||
Barrier Message
|
||||
---------------
|
||||
|
@ -349,13 +349,13 @@ Barrier Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-barrier_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-barrier_reply.packet.json
|
||||
|
||||
Role Request Message
|
||||
--------------------
|
||||
|
@ -364,13 +364,13 @@ Role Request Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-role_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-role_reply.packet.json
|
||||
|
||||
Bundle Messages
|
||||
---------------
|
||||
|
@ -379,13 +379,13 @@ Bundle Messages
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-bundle_ctrl.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-bundle_add.packet.json
|
||||
|
||||
Set Asynchronous Configuration Message
|
||||
--------------------------------------
|
||||
|
@ -394,19 +394,19 @@ Set Asynchronous Configuration Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-set_async.packet.json
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/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
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-get_async_reply.packet.json
|
||||
|
||||
Asynchronous Messages
|
||||
=====================
|
||||
|
@ -418,7 +418,7 @@ Packet-In Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-packet_in.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-packet_in.packet.json
|
||||
|
||||
Flow Removed Message
|
||||
--------------------
|
||||
|
@ -427,7 +427,7 @@ Flow Removed Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_removed.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-flow_removed.packet.json
|
||||
|
||||
Port Status Message
|
||||
-------------------
|
||||
|
@ -436,7 +436,7 @@ Port Status Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_status.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-port_status.packet.json
|
||||
|
||||
Controller Role Status Message
|
||||
------------------------------
|
||||
|
@ -445,7 +445,7 @@ Controller Role Status Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-role_status.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-role_status.packet.json
|
||||
|
||||
Table Status Message
|
||||
--------------------
|
||||
|
@ -454,7 +454,7 @@ Table Status Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-table_status.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-table_status.packet.json
|
||||
|
||||
Request Forward Message
|
||||
-----------------------
|
||||
|
@ -463,7 +463,7 @@ Request Forward Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-requestforward.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-requestforward.packet.json
|
||||
|
||||
Controller Status Message
|
||||
-------------------------
|
||||
|
@ -472,7 +472,7 @@ Controller Status Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-controller_status.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-controller_status.packet.json
|
||||
|
||||
Symmetric Messages
|
||||
==================
|
||||
|
@ -484,7 +484,7 @@ Hello
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-hello.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-hello.packet.json
|
||||
|
||||
.. autoclass:: OFPHelloElemVersionBitmap
|
||||
|
||||
|
@ -495,7 +495,7 @@ Echo Request
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-echo_request.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-echo_request.packet.json
|
||||
|
||||
Echo Reply
|
||||
----------
|
||||
|
@ -504,7 +504,7 @@ Echo Reply
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-echo_reply.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-echo_reply.packet.json
|
||||
|
||||
Error Message
|
||||
-------------
|
||||
|
@ -513,7 +513,7 @@ Error Message
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-error_msg.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-error_msg.packet.json
|
||||
|
||||
Experimenter
|
||||
------------
|
||||
|
@ -522,7 +522,7 @@ Experimenter
|
|||
|
||||
JSON Example:
|
||||
|
||||
.. literalinclude:: ../../ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-error_msg_experimenter.packet.json
|
||||
.. literalinclude:: ../../os_ken/tests/unit/ofproto/json/of15/libofproto-OFP15-error_msg_experimenter.packet.json
|
||||
|
||||
Port Structures
|
||||
===============
|
||||
|
|
|
@ -0,0 +1,179 @@
|
|||
**********************
|
||||
OS-Ken application API
|
||||
**********************
|
||||
|
||||
OS-Ken application programming model
|
||||
====================================
|
||||
|
||||
Threads, events, and event queues
|
||||
---------------------------------
|
||||
|
||||
OS-Ken applications are single-threaded entities which implement
|
||||
various functionalities in OS-Ken. Events are messages between them.
|
||||
|
||||
OS-Ken applications send asynchronous events to each other.
|
||||
Besides that, there are some OS-Ken-internal event sources which
|
||||
are not OS-Ken applications. One of the examples of such event sources
|
||||
is the OpenFlow controller.
|
||||
While an event can currently contain arbitrary python objects,
|
||||
it's discouraged to pass complex objects (eg. unpickleable objects)
|
||||
between OS-Ken applications.
|
||||
|
||||
Each OS-Ken application has a receive queue for events.
|
||||
The queue is FIFO and preserves the order of events.
|
||||
Each OS-Ken application has a thread for event processing.
|
||||
The thread keeps draining the receive queue by dequeueing an event
|
||||
and calling the appropritate event handler for the event type.
|
||||
Because the event handler is called in the context of
|
||||
the event processing thread, it should be careful when blocking.
|
||||
While an event handler is blocked, no further events for
|
||||
the OS-Ken application will be processed.
|
||||
|
||||
There are kinds of events which are used to implement synchronous
|
||||
inter-application calls between OS-Ken applications.
|
||||
While such requests use the same machinery as ordinary
|
||||
events, their replies are put on a queue dedicated to the transaction
|
||||
to avoid deadlock.
|
||||
|
||||
While threads and queues are currently implemented with eventlet/greenlet,
|
||||
a direct use of them in a OS-Ken application is strongly discouraged.
|
||||
|
||||
Contexts
|
||||
--------
|
||||
Contexts are ordinary python objects shared among OS-Ken applications.
|
||||
The use of contexts is discouraged for new code.
|
||||
|
||||
Create a OS-Ken application
|
||||
===========================
|
||||
A OS-Ken application is a python module which defines a subclass of
|
||||
os_ken.base.app_manager.RyuApp.
|
||||
If two or more such classes are defined in a module, the first one
|
||||
(by name order) will be picked by app_manager.
|
||||
An OS-Ken application is singleton: only a single instance of a given OS-Ken
|
||||
application is supported.
|
||||
|
||||
Observe events
|
||||
==============
|
||||
A OS-Ken application can register itself to listen for specific events
|
||||
using os_ken.controller.handler.set_ev_cls decorator.
|
||||
|
||||
Generate events
|
||||
===============
|
||||
A OS-Ken application can raise events by calling appropriate
|
||||
os_ken.base.app_manager.RyuApp's methods like send_event or
|
||||
send_event_to_observers.
|
||||
|
||||
Event classes
|
||||
=============
|
||||
An event class describes a OS-Ken event generated in the system.
|
||||
By convention, event class names are prefixed by "Event".
|
||||
Events are generated either by the core part of OS-Ken or OS-Ken applications.
|
||||
A OS-Ken application can register its interest for a specific type of
|
||||
event by providing a handler method using the
|
||||
os_ken.controller.handler.set_ev_cls decorator.
|
||||
|
||||
OpenFlow event classes
|
||||
----------------------
|
||||
os_ken.controller.ofp_event module exports event classes which describe
|
||||
receptions of OpenFlow messages from connected switches.
|
||||
By convention, they are named as os_ken.controller.ofp_event.EventOFPxxxx
|
||||
where xxxx is the name of the corresponding OpenFlow message.
|
||||
For example, EventOFPPacketIn for the packet-in message.
|
||||
The OpenFlow controller part of OS-Ken automatically decodes OpenFlow messages
|
||||
received from switches and send these events to OS-Ken applications which
|
||||
expressed an interest using os_ken.controller.handler.set_ev_cls.
|
||||
OpenFlow event classes are subclasses of the following class.
|
||||
|
||||
.. autoclass:: os_ken.controller.ofp_event.EventOFPMsgBase
|
||||
|
||||
See :ref:`ofproto_ref` for more info about OpenFlow messages.
|
||||
|
||||
os_ken.base.app_manager.RyuApp
|
||||
==============================
|
||||
|
||||
See :ref:`api_ref`.
|
||||
|
||||
os_ken.controller.handler.set_ev_cls
|
||||
====================================
|
||||
|
||||
.. autofunction:: os_ken.controller.handler.set_ev_cls
|
||||
|
||||
os_ken.controller.controller.Datapath
|
||||
=====================================
|
||||
|
||||
.. autoclass:: os_ken.controller.controller.Datapath
|
||||
|
||||
os_ken.controller.event.EventBase
|
||||
=================================
|
||||
|
||||
.. autoclass:: os_ken.controller.event.EventBase
|
||||
|
||||
os_ken.controller.event.EventRequestBase
|
||||
========================================
|
||||
|
||||
.. autoclass:: os_ken.controller.event.EventRequestBase
|
||||
|
||||
os_ken.controller.event.EventReplyBase
|
||||
======================================
|
||||
|
||||
.. autoclass:: os_ken.controller.event.EventReplyBase
|
||||
|
||||
os_ken.controller.ofp_event.EventOFPStateChange
|
||||
===============================================
|
||||
|
||||
.. autoclass:: os_ken.controller.ofp_event.EventOFPStateChange
|
||||
|
||||
os_ken.controller.ofp_event.EventOFPPortStateChange
|
||||
===================================================
|
||||
|
||||
.. autoclass:: os_ken.controller.ofp_event.EventOFPPortStateChange
|
||||
|
||||
os_ken.controller.dpset.EventDP
|
||||
===============================
|
||||
|
||||
.. autoclass:: os_ken.controller.dpset.EventDP
|
||||
|
||||
os_ken.controller.dpset.EventPortAdd
|
||||
====================================
|
||||
|
||||
.. autoclass:: os_ken.controller.dpset.EventPortAdd
|
||||
|
||||
os_ken.controller.dpset.EventPortDelete
|
||||
=======================================
|
||||
|
||||
.. autoclass:: os_ken.controller.dpset.EventPortDelete
|
||||
|
||||
os_ken.controller.dpset.EventPortModify
|
||||
=======================================
|
||||
|
||||
.. autoclass:: os_ken.controller.dpset.EventPortModify
|
||||
|
||||
os_ken.controller.network.EventNetworkPort
|
||||
==========================================
|
||||
|
||||
.. autoclass:: os_ken.controller.network.EventNetworkPort
|
||||
|
||||
os_ken.controller.network.EventNetworkDel
|
||||
=========================================
|
||||
|
||||
.. autoclass:: os_ken.controller.network.EventNetworkDel
|
||||
|
||||
os_ken.controller.network.EventMacAddress
|
||||
=========================================
|
||||
|
||||
.. autoclass:: os_ken.controller.network.EventMacAddress
|
||||
|
||||
os_ken.controller.tunnels.EventTunnelKeyAdd
|
||||
===========================================
|
||||
|
||||
.. autoclass:: os_ken.controller.tunnels.EventTunnelKeyAdd
|
||||
|
||||
os_ken.controller.tunnels.EventTunnelKeyDel
|
||||
===========================================
|
||||
|
||||
.. autoclass:: os_ken.controller.tunnels.EventTunnelKeyDel
|
||||
|
||||
os_ken.controller.tunnels.EventTunnelPort
|
||||
=========================================
|
||||
|
||||
.. autoclass:: os_ken.controller.tunnels.EventTunnelPort
|
|
@ -6,9 +6,9 @@
|
|||
Getting Started
|
||||
***************
|
||||
|
||||
Overview/What's Ryu the Network Operating System
|
||||
================================================
|
||||
Ryu is an open-sourced Network Operating System which is licensed under Apache v2.0.
|
||||
Overview/What's OS-Ken the Network Operating System
|
||||
===================================================
|
||||
OS-Ken is an open-sourced Network Operating System which is licensed under Apache v2.0.
|
||||
It supports openflow protocol.
|
||||
|
||||
If you are not familiar with Software Defined Network(SDN) and
|
||||
|
@ -16,40 +16,38 @@ OpenFlow/openflow controller,
|
|||
please refer to `openflow org <http://www.openflow.org/>`_ .
|
||||
|
||||
The mailing list is available at
|
||||
`ryu-devel ML <https://lists.sourceforge.net/lists/listinfo/ryu-devel>`_
|
||||
`OpenStack-dev ML <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>`_
|
||||
|
||||
|
||||
Installing Ryu Network Operating System
|
||||
=======================================
|
||||
Installing OS-Ken Network Operating System
|
||||
==========================================
|
||||
Extract source code and just type::
|
||||
|
||||
% python ./setup.py install
|
||||
|
||||
Then, run ryu-manager.
|
||||
Then, run os_ken-manager.
|
||||
It listens to ip address 0.0.0.0 and port 6633 by default.
|
||||
Then have your openflow switch (hardware or openvswitch OVS) to connect to
|
||||
ryu-manager.
|
||||
os_ken-manager.
|
||||
|
||||
For OVS case, you can done it by
|
||||
|
||||
% ovs-vsctl set-controller <your bridge> tcp:<ip addr>[:<port: default 6633>]
|
||||
|
||||
At the moment, ryu-manager supports only tcp method.
|
||||
If you want to use it with openstack nova and quantum OVS plugin,
|
||||
Please refer to :ref:`using_with_openstack`.
|
||||
At the moment, os_ken-manager supports only tcp method.
|
||||
|
||||
invoking application and Configuration
|
||||
======================================
|
||||
It can be configured by passing configuration file like::
|
||||
|
||||
ryu-manager [generic/application specific options...]
|
||||
os_ken-manager [generic/application specific options...]
|
||||
|
||||
At the moment applications including the following ones are available
|
||||
(And more to come as Ryu evolves.)
|
||||
(And more to come as OS-Ken evolves.)
|
||||
|
||||
* ryu.app.simple_isolation.SimpleIsolation
|
||||
* ryu.app.rest.RestAPI
|
||||
* ryu.app.simple_bridge.SimpleSwitch
|
||||
* os_ken.app.simple_isolation.SimpleIsolation
|
||||
* os_ken.app.rest.RestAPI
|
||||
* os_ken.app.simple_bridge.SimpleSwitch
|
||||
|
||||
The generic available is as follows::
|
||||
|
||||
|
@ -104,16 +102,16 @@ Invoking Example
|
|||
================
|
||||
The example is as follows::
|
||||
|
||||
% PYTHONPATH=. ./bin/ryu-manager --wsapi-port 8081 --verbose --app-lists ryu.app.simple_isolation,ryu.app.rest
|
||||
loading app ryu.app.simple_isolation
|
||||
loading app ryu.app.rest
|
||||
loading app ryu.controller.ofp_handler
|
||||
% PYTHONPATH=. ./bin/os_ken-manager --wsapi-port 8081 --verbose --app-lists os_ken.app.simple_isolation,os_ken.app.rest
|
||||
loading app os_ken.app.simple_isolation
|
||||
loading app os_ken.app.rest
|
||||
loading app os_ken.controller.ofp_handler
|
||||
creating context dpset
|
||||
creating context wsgi
|
||||
creating context network
|
||||
instantiating app ryu.app.simple_isolation
|
||||
instantiating app ryu.app.rest
|
||||
instantiating app ryu.controller.ofp_handler
|
||||
instantiating app os_ken.app.simple_isolation
|
||||
instantiating app os_ken.app.rest
|
||||
instantiating app os_ken.controller.ofp_handler
|
||||
BRICK dpset
|
||||
CONSUMES EventOFPStateChange
|
||||
CONSUMES EventOFPPortStatus
|
||||
|
|
|
@ -1,179 +0,0 @@
|
|||
*******************
|
||||
Ryu application API
|
||||
*******************
|
||||
|
||||
Ryu application programming model
|
||||
=================================
|
||||
|
||||
Threads, events, and event queues
|
||||
---------------------------------
|
||||
|
||||
Ryu applications are single-threaded entities which implement
|
||||
various functionalities in Ryu. Events are messages between them.
|
||||
|
||||
Ryu applications send asynchronous events to each other.
|
||||
Besides that, there are some Ryu-internal event sources which
|
||||
are not Ryu applications. One of examples of such event sources
|
||||
is OpenFlow controller.
|
||||
While an event can currently contain arbitrary python objects,
|
||||
it's discouraged to pass complex objects (eg. unpickleable objects)
|
||||
between Ryu applications.
|
||||
|
||||
Each Ryu application has a receive queue for events.
|
||||
The queue is FIFO and preserves the order of events.
|
||||
Each Ryu application has a thread for event processing.
|
||||
The thread keeps draining the receive queue by dequeueing an event
|
||||
and calling the appropritate event handler for the event type.
|
||||
Because the event handler is called in the context of
|
||||
the event processing thread, it should be careful when blocking.
|
||||
While an event handler is blocked, no further events for
|
||||
the Ryu application will be processed.
|
||||
|
||||
There are kinds of events which are used to implement synchronous
|
||||
inter-application calls between Ryu applications.
|
||||
While such requests uses the same machinary as ordinary
|
||||
events, their replies are put on a queue dedicated to the transaction
|
||||
to avoid deadlock.
|
||||
|
||||
While threads and queues is currently implemented with eventlet/greenlet,
|
||||
a direct use of them in a Ryu application is strongly discouraged.
|
||||
|
||||
Contexts
|
||||
--------
|
||||
Contexts are ordinary python objects shared among Ryu applications.
|
||||
The use of contexts are discouraged for new code.
|
||||
|
||||
Create a Ryu application
|
||||
========================
|
||||
A Ryu application is a python module which defines a subclass of
|
||||
ryu.base.app_manager.RyuApp.
|
||||
If two or more such classes are defined in a module, the first one
|
||||
(by name order) will be picked by app_manager.
|
||||
Ryu application is singleton: only single instance of a given Ryu
|
||||
application is supported.
|
||||
|
||||
Observe events
|
||||
==============
|
||||
A Ryu application can register itself to listen for specific events
|
||||
using ryu.controller.handler.set_ev_cls decorator.
|
||||
|
||||
Generate events
|
||||
===============
|
||||
A Ryu application can raise events by calling appropriate
|
||||
ryu.base.app_manager.RyuApp's methods like send_event or
|
||||
send_event_to_observers.
|
||||
|
||||
Event classes
|
||||
=============
|
||||
An event class describes a Ryu event generated in the system.
|
||||
By convention, event class names are prefixed by "Event".
|
||||
Events are generated either by the core part of Ryu or Ryu applications.
|
||||
A Ryu application can register its interest for a specific type of
|
||||
event by providing a handler method using
|
||||
ryu.controller.handler.set_ev_cls decorator.
|
||||
|
||||
OpenFlow event classes
|
||||
----------------------
|
||||
ryu.controller.ofp_event module exports event classes which describe
|
||||
receptions of OpenFlow messages from connected switches.
|
||||
By convention, they are named as ryu.controller.ofp_event.EventOFPxxxx
|
||||
where xxxx is the name of the corresponding OpenFlow message.
|
||||
For example, EventOFPPacketIn for packet-in message.
|
||||
The OpenFlow controller part of Ryu automatically decodes OpenFlow messages
|
||||
received from switches and send these events to Ryu applications which
|
||||
expressed an interest using ryu.controller.handler.set_ev_cls.
|
||||
OpenFlow event classes are subclasses of the following class.
|
||||
|
||||
.. autoclass:: ryu.controller.ofp_event.EventOFPMsgBase
|
||||
|
||||
See :ref:`ofproto_ref` for more info about OpenFlow messages.
|
||||
|
||||
ryu.base.app_manager.RyuApp
|
||||
===========================
|
||||
|
||||
See :ref:`api_ref`.
|
||||
|
||||
ryu.controller.handler.set_ev_cls
|
||||
=================================
|
||||
|
||||
.. autofunction:: ryu.controller.handler.set_ev_cls
|
||||
|
||||
ryu.controller.controller.Datapath
|
||||
==================================
|
||||
|
||||
.. autoclass:: ryu.controller.controller.Datapath
|
||||
|
||||
ryu.controller.event.EventBase
|
||||
==============================
|
||||
|
||||
.. autoclass:: ryu.controller.event.EventBase
|
||||
|
||||
ryu.controller.event.EventRequestBase
|
||||
=====================================
|
||||
|
||||
.. autoclass:: ryu.controller.event.EventRequestBase
|
||||
|
||||
ryu.controller.event.EventReplyBase
|
||||
===================================
|
||||
|
||||
.. autoclass:: ryu.controller.event.EventReplyBase
|
||||
|
||||
ryu.controller.ofp_event.EventOFPStateChange
|
||||
============================================
|
||||
|
||||
.. autoclass:: ryu.controller.ofp_event.EventOFPStateChange
|
||||
|
||||
ryu.controller.ofp_event.EventOFPPortStateChange
|
||||
================================================
|
||||
|
||||
.. autoclass:: ryu.controller.ofp_event.EventOFPPortStateChange
|
||||
|
||||
ryu.controller.dpset.EventDP
|
||||
============================
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.EventDP
|
||||
|
||||
ryu.controller.dpset.EventPortAdd
|
||||
=================================
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.EventPortAdd
|
||||
|
||||
ryu.controller.dpset.EventPortDelete
|
||||
====================================
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.EventPortDelete
|
||||
|
||||
ryu.controller.dpset.EventPortModify
|
||||
====================================
|
||||
|
||||
.. autoclass:: ryu.controller.dpset.EventPortModify
|
||||
|
||||
ryu.controller.network.EventNetworkPort
|
||||
=======================================
|
||||
|
||||
.. autoclass:: ryu.controller.network.EventNetworkPort
|
||||
|
||||
ryu.controller.network.EventNetworkDel
|
||||
======================================
|
||||
|
||||
.. autoclass:: ryu.controller.network.EventNetworkDel
|
||||
|
||||
ryu.controller.network.EventMacAddress
|
||||
======================================
|
||||
|
||||
.. autoclass:: ryu.controller.network.EventMacAddress
|
||||
|
||||
ryu.controller.tunnels.EventTunnelKeyAdd
|
||||
========================================
|
||||
|
||||
.. autoclass:: ryu.controller.tunnels.EventTunnelKeyAdd
|
||||
|
||||
ryu.controller.tunnels.EventTunnelKeyDel
|
||||
========================================
|
||||
|
||||
.. autoclass:: ryu.controller.tunnels.EventTunnelKeyDel
|
||||
|
||||
ryu.controller.tunnels.EventTunnelPort
|
||||
======================================
|
||||
|
||||
.. autoclass:: ryu.controller.tunnels.EventTunnelPort
|
|
@ -2,30 +2,30 @@
|
|||
Snort Intergration
|
||||
******************
|
||||
|
||||
This document describes how to integrate Ryu with Snort.
|
||||
This document describes how to integrate OS-Ken with Snort.
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
There are two options can send alert to Ryu controller. The Option 1 is easier if you just want to demonstrate or test. Since Snort need very large computation power for analyzing packets you can choose Option 2 to separate them.
|
||||
There are two options can send alert to OS-Ken controller. The Option 1 is easier if you just want to demonstrate or test. Since Snort need very large computation power for analyzing packets you can choose Option 2 to separate them.
|
||||
|
||||
**[Option 1] Ryu and Snort are on the same machine**
|
||||
**[Option 1] OS-Ken and Snort are on the same machine**
|
||||
::
|
||||
|
||||
+---------------------+
|
||||
| unixsock |
|
||||
| Ryu == snort |
|
||||
+----eth0-----eth1----+
|
||||
+------------------------+
|
||||
| unixsock |
|
||||
| OS-Ken == snort |
|
||||
+----eth0-----eth1-------+
|
||||
| |
|
||||
+-------+ +----------+ +-------+
|
||||
| HostA |---| OFSwitch |---| HostB |
|
||||
+-------+ +----------+ +-------+
|
||||
|
||||
|
||||
The above depicts Ryu and Snort architecture. Ryu receives Snort alert packet via **Unix Domain Socket** . To monitor packets between HostA and HostB, installing a flow that mirrors packets to Snort.
|
||||
The above depicts OS-Ken and Snort architecture. OS-Ken receives Snort alert packet via **Unix Domain Socket** . To monitor packets between HostA and HostB, installing a flow that mirrors packets to Snort.
|
||||
|
||||
|
||||
**[Option 2] Ryu and Snort are on the different machines**
|
||||
**[Option 2] OS-Ken and Snort are on the different machines**
|
||||
::
|
||||
|
||||
+---------------+
|
||||
|
@ -37,14 +37,14 @@ The above depicts Ryu and Snort architecture. Ryu receives Snort alert packet vi
|
|||
| HostA |---| OFSwitch |---| LAN (*CP) |
|
||||
+-------+ +----------+ +-----------+
|
||||
| |
|
||||
+----------+ +----------+
|
||||
| HostB | | Ryu |
|
||||
+----------+ +----------+
|
||||
+----------+ +-------------+
|
||||
| HostB | | OS-Ken |
|
||||
+----------+ +-------------+
|
||||
|
||||
|
||||
**\*CP: Control Plane**
|
||||
|
||||
The above depicts Ryu and Snort architecture. Ryu receives Snort alert packet via **Network Socket** . To monitor packets between HostA and HostB, installing a flow that mirrors packets to Snort.
|
||||
The above depicts OS-Ken and Snort architecture. OS-Ken receives Snort alert packet via **Network Socket** . To monitor packets between HostA and HostB, installing a flow that mirrors packets to Snort.
|
||||
|
||||
|
||||
|
||||
|
@ -85,9 +85,9 @@ Usage
|
|||
# False: Network Socket Server [Option2]
|
||||
|
||||
|
||||
2. Run Ryu with sample application: ::
|
||||
2. Run OS-Ken with sample application: ::
|
||||
|
||||
$ sudo ./bin/ryu-manager ryu/app/simple_switch_snort.py
|
||||
$ sudo ./bin/os_ken-manager os_ken/app/simple_switch_snort.py
|
||||
|
||||
The incoming packets will all mirror to **port 3** which should be connect to Snort network interface. You can modify the mirror port by assign a new value in the ``self.snort_port = 3`` of ``simple_switch_snort.py``
|
||||
|
||||
|
@ -112,9 +112,9 @@ The incoming packets will all mirror to **port 3** which should be connect to Sn
|
|||
# False: Network Socket Server [Option2]
|
||||
|
||||
|
||||
2. Run Ryu with sample application (On the Controller): ::
|
||||
2. Run OS-Ken with sample application (On the Controller): ::
|
||||
|
||||
$ ./bin/ryu-manager ryu/app/simple_switch_snort.py
|
||||
$ ./bin/os_ken-manager os_ken/app/simple_switch_snort.py
|
||||
|
||||
3. Run Snort (On the Snort machine): ::
|
||||
|
||||
|
@ -125,7 +125,7 @@ The incoming packets will all mirror to **port 3** which should be connect to Sn
|
|||
|
||||
$ sudo python pigrelay.py
|
||||
|
||||
This program listening snort alert messages from unix domain socket and sending it to Ryu using network socket.
|
||||
This program listening snort alert messages from unix domain socket and sending it to OS-Ken using network socket.
|
||||
|
||||
You can clone the source code from this repo. https://github.com/John-Lin/pigrelay
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Testing OF-config support with LINC
|
||||
===================================
|
||||
|
||||
This page describes how to setup LINC and test Ryu OF-config with it.
|
||||
This page describes how to setup LINC and test OS-Ken OF-config with it.
|
||||
|
||||
The procedure is as follows.
|
||||
Although all the procedure is written for reader's convenience,
|
||||
|
@ -17,9 +17,9 @@ The test procedure
|
|||
* configure LINC switch
|
||||
* setup for LINC
|
||||
* run LINC switch
|
||||
* run Ryu test_of_config app
|
||||
* run OS-Ken test_of_config app
|
||||
|
||||
For getting/installing Ryu itself, please refer to http://osrg.github.io/ryu/
|
||||
For getting/installing OS-Ken itself, please refer to http://osrg.github.io/os_ken/
|
||||
|
||||
|
||||
Install Erlang environment
|
||||
|
@ -178,13 +178,13 @@ Then run LINC::
|
|||
# rel/linc/bin/linc console
|
||||
|
||||
|
||||
Run Ryu test_of_config app
|
||||
==========================
|
||||
Run OS-Ken test_of_config app
|
||||
=============================
|
||||
|
||||
Run test_of_config app::
|
||||
|
||||
# ryu-manager --verbose ryu.tests.integrated.test_of_config ryu.app.rest
|
||||
# os_ken-manager --verbose os_ken.tests.integrated.test_of_config os_ken.app.rest
|
||||
|
||||
If you don't install ryu and are working in the git repo directly::
|
||||
If you don't install os_ken and are working in the git repo directly::
|
||||
|
||||
# PYTHONPATH=. ./bin/ryu-manager --verbose ryu.tests.integrated.test_of_config ryu.app.rest
|
||||
# PYTHONPATH=. ./bin/os_ken-manager --verbose os_ken.tests.integrated.test_of_config os_ken.app.rest
|
||||
|
|
|
@ -2,22 +2,22 @@
|
|||
Testing VRRP Module
|
||||
===================
|
||||
|
||||
This page describes how to test Ryu VRRP service
|
||||
This page describes how to test OS-Ken VRRP service
|
||||
|
||||
Running integrated tests
|
||||
========================
|
||||
|
||||
Some testing scripts are available.
|
||||
|
||||
* ryu/tests/integrated/test_vrrp_linux_multi.py
|
||||
* ryu/tests/integrated/test_vrrp_multi.py
|
||||
* os_ken/tests/integrated/test_vrrp_linux_multi.py
|
||||
* os_ken/tests/integrated/test_vrrp_multi.py
|
||||
|
||||
Each files include how to run in the comment.
|
||||
Please refer to it.
|
||||
|
||||
|
||||
Running multiple Ryu VRRP in network namespace
|
||||
==============================================
|
||||
Running multiple OS-Ken VRRP in network namespace
|
||||
=================================================
|
||||
|
||||
The following command lines set up necessary bridges and interfaces.
|
||||
|
||||
|
@ -65,8 +65,8 @@ And then run RYU-VRRP::
|
|||
# ip netns exec gateway1 ip link set veth3 up
|
||||
# ip netns exec gateway2 ip link set veth4 up
|
||||
|
||||
# ip netns exec gateway1 .ryu-vrrp veth1 '10.0.0.2' 254
|
||||
# ip netns exec gateway2 .ryu-vrrp veth2 '10.0.0.3' 100
|
||||
# ip netns exec gateway1 .os_ken-vrrp veth1 '10.0.0.2' 254
|
||||
# ip netns exec gateway2 .os_ken-vrrp veth2 '10.0.0.3' 100
|
||||
|
||||
|
||||
.. admonition:: Caveats
|
||||
|
@ -82,17 +82,17 @@ And then run RYU-VRRP::
|
|||
-----------------------
|
||||
|Linux Brirge vrrp-br1|
|
||||
-----------------------
|
||||
veth3-br1^ ^ veth4-br1
|
||||
| |
|
||||
veth3V V veth4
|
||||
---------- ----------
|
||||
|netns | |netns |
|
||||
|gateway1| |gateway2|
|
||||
|ryu-vrrp| |ryu-vrrp|
|
||||
---------- ----------
|
||||
veth1^ ^ veth2
|
||||
| |
|
||||
veth1-br0V V veth2-br0
|
||||
veth3-br1^ ^ veth4-br1
|
||||
| |
|
||||
veth3V V veth4
|
||||
------------- -------------
|
||||
|netns | |netns |
|
||||
|gateway1 | |gateway2 |
|
||||
|os_ken-vrrp| |os_ken-vrrp|
|
||||
------------- ----------
|
||||
veth1^ ^ veth2
|
||||
| |
|
||||
veth1-br0V V veth2-br0
|
||||
-----------------------
|
||||
|Linux Brirge vrrp-br0|
|
||||
-----------------------
|
||||
|
@ -102,7 +102,7 @@ And then run RYU-VRRP::
|
|||
|
||||
|
||||
|
||||
Here's the helper executable, ryu-vrrp::
|
||||
Here's the helper executable, os_ken-vrrp::
|
||||
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
|
@ -121,10 +121,10 @@ Here's the helper executable, ryu-vrrp::
|
|||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from ryu.lib import hub
|
||||
|
||||
from os_ken.lib import hub
|
||||
hub.patch()
|
||||
|
||||
|
||||
# TODO:
|
||||
# Right now, we have our own patched copy of ovs python bindings
|
||||
# Once our modification is upstreamed and widely deployed,
|
||||
|
@ -132,34 +132,34 @@ Here's the helper executable, ryu-vrrp::
|
|||
#
|
||||
# NOTE: this modifies sys.path and thus affects the following imports.
|
||||
# eg. oslo.config.cfg.
|
||||
import ryu.contrib
|
||||
|
||||
import os_ken.contrib
|
||||
|
||||
from oslo.config import cfg
|
||||
import logging
|
||||
import netaddr
|
||||
import sys
|
||||
import time
|
||||
|
||||
from ryu import log
|
||||
|
||||
from os_ken import log
|
||||
log.early_init_log(logging.DEBUG)
|
||||
|
||||
from ryu import flags
|
||||
from ryu import version
|
||||
from ryu.base import app_manager
|
||||
from ryu.controller import controller
|
||||
from ryu.lib import mac as lib_mac
|
||||
from ryu.lib.packet import vrrp
|
||||
from ryu.services.protocols.vrrp import api as vrrp_api
|
||||
from ryu.services.protocols.vrrp import event as vrrp_event
|
||||
|
||||
|
||||
|
||||
from os_ken import flags
|
||||
from os_ken import version
|
||||
from os_ken.base import app_manager
|
||||
from os_ken.controller import controller
|
||||
from os_ken.lib import mac as lib_mac
|
||||
from os_ken.lib.packet import vrrp
|
||||
from os_ken.services.protocols.vrrp import api as vrrp_api
|
||||
from os_ken.services.protocols.vrrp import event as vrrp_event
|
||||
|
||||
|
||||
CONF = cfg.CONF
|
||||
|
||||
|
||||
_VRID = 7
|
||||
_IP_ADDRESS = '10.0.0.1'
|
||||
_PRIORITY = 100
|
||||
|
||||
|
||||
|
||||
|
||||
class VRRPTestRouter(app_manager.RyuApp):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(VRRPTestRouter, self).__init__(*args, **kwargs)
|
||||
|
@ -168,50 +168,50 @@ Here's the helper executable, ryu-vrrp::
|
|||
self._ifname = args[0]
|
||||
self._primary_ip_address = args[1]
|
||||
self._priority = int(args[2])
|
||||
|
||||
|
||||
def start(self):
|
||||
print 'start'
|
||||
hub.spawn(self._main)
|
||||
|
||||
|
||||
def _main(self):
|
||||
print self
|
||||
interface = vrrp_event.VRRPInterfaceNetworkDevice(
|
||||
lib_mac.DONTCARE, self._primary_ip_address, None, self._ifname)
|
||||
self.logger.debug('%s', interface)
|
||||
|
||||
|
||||
ip_addresses = [_IP_ADDRESS]
|
||||
config = vrrp_event.VRRPConfig(
|
||||
version=vrrp.VRRP_VERSION_V3, vrid=_VRID, priority=self._priority,
|
||||
ip_addresses=ip_addresses)
|
||||
self.logger.debug('%s', config)
|
||||
|
||||
|
||||
rep = vrrp_api.vrrp_config(self, interface, config)
|
||||
self.logger.debug('%s', rep)
|
||||
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
vrrp_config = sys.argv[-3:]
|
||||
sys.argv = sys.argv[:-3]
|
||||
CONF(project='ryu', version='ryu-vrrp %s' % version)
|
||||
|
||||
CONF(project='os_ken', version='os_ken-vrrp %s' % version)
|
||||
|
||||
log.init_log()
|
||||
# always enable ofp for now.
|
||||
app_lists = ['ryu.services.protocols.vrrp.manager',
|
||||
'ryu.services.protocols.vrrp.dumper',
|
||||
'ryu.services.protocols.vrrp.sample_manager']
|
||||
|
||||
app_lists = ['os_ken.services.protocols.vrrp.manager',
|
||||
'os_ken.services.protocols.vrrp.dumper',
|
||||
'os_ken.services.protocols.vrrp.sample_manager']
|
||||
|
||||
app_mgr = app_manager.AppManager.get_instance()
|
||||
app_mgr.load_apps(app_lists)
|
||||
contexts = app_mgr.create_contexts()
|
||||
app_mgr.instantiate_apps(**contexts)
|
||||
vrrp_router = app_mgr.instantiate(VRRPTestRouter, *vrrp_config, **contexts)
|
||||
vrrp_router.start()
|
||||
|
||||
|
||||
while True:
|
||||
time.sleep(999999)
|
||||
|
||||
|
||||
app_mgr.close()
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
|
@ -3,7 +3,7 @@ Setup TLS Connection
|
|||
********************
|
||||
|
||||
If you want to use secure channel to connect OpenFlow switches, you
|
||||
need to use TLS connection. This document describes how to setup Ryu
|
||||
need to use TLS connection. This document describes how to setup OS-Ken
|
||||
to connect to the Open vSwitch over TLS.
|
||||
|
||||
|
||||
|
@ -58,17 +58,17 @@ Substitute the correct file names, if they differ from the ones used
|
|||
above. You should use absolute file names.
|
||||
|
||||
|
||||
Run Ryu with CA files::
|
||||
Run OS-Ken with CA files::
|
||||
|
||||
% ryu-manager --ctl-privkey ctl-privkey.pem \
|
||||
% os_ken-manager --ctl-privkey ctl-privkey.pem \
|
||||
--ctl-cert ctl-cert.pem \
|
||||
--ca-certs /usr/local/var/lib/openvswitch/pki/switchca/cacert.pem \
|
||||
--verbose
|
||||
|
||||
You can see something like::
|
||||
|
||||
loading app ryu.controller.ofp_handler
|
||||
instantiating app ryu.controller.ofp_handler
|
||||
loading app os_ken.controller.ofp_handler
|
||||
instantiating app os_ken.controller.ofp_handler
|
||||
BRICK ofp_event
|
||||
CONSUMES EventOFPSwitchFeatures
|
||||
CONSUMES EventOFPErrorMsg
|
||||
|
@ -76,7 +76,7 @@ You can see something like::
|
|||
CONSUMES EventOFPEchoRequest
|
||||
connected socket:<SSLSocket fileno=4 sock=127.0.0.1:6633 peer=127.0.0.1:61302> a
|
||||
ddress:('127.0.0.1', 61302)
|
||||
hello ev <ryu.controller.ofp_event.EventOFPHello object at 0x1047806d0>
|
||||
hello ev <os_ken.controller.ofp_event.EventOFPHello object at 0x1047806d0>
|
||||
move onto config mode
|
||||
switch features ev version: 0x1 msg_type 0x6 xid 0xb0bb34e5 port OFPPhyPort(port
|
||||
_no=65534, hw_addr='\x16\xdc\xa2\xe2}K', name='br0\x00\x00\x00\x00\x00\x00\x00\x
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
.. _using_with_openstack:
|
||||
|
||||
************************************************************************
|
||||
Using Ryu Network Operating System with OpenStack as OpenFlow controller
|
||||
************************************************************************
|
||||
|
||||
.. CAUTION::
|
||||
|
||||
The Ryu plugin and OFAgent described in the following is deprecated,
|
||||
because Ryu is officially integrated into Open vSwitch agent with
|
||||
"of_interface = native" mode.
|
||||
|
||||
|
||||
Ryu cooperates with OpenStack using Quantum Ryu plugin. The plugin is
|
||||
available in the official Quantum releases.
|
||||
|
||||
For more information, please visit http://github.com/osrg/ryu/wiki/OpenStack .
|
||||
We described instructions of the installation / configuration of OpenStack
|
||||
with Ryu, and we provide pre-configured VM image to be able to easily try
|
||||
OpenStack with Ryu.
|
||||
|
||||
----
|
||||
|
||||
* OpenStack: http://www.openstack.org/
|
||||
* Quantum: https://github.com/openstack/quantum/
|
|
@ -6,68 +6,68 @@ Whetting Your Appetite
|
|||
======================
|
||||
|
||||
If you want to manage the network gears (switches, routers, etc) at
|
||||
your way, you need to write your Ryu application. Your application
|
||||
tells Ryu how you want to manage the gears. Then Ryu configures the
|
||||
your way, you need to write your OS-Ken application. Your application
|
||||
tells OS-Ken how you want to manage the gears. Then OS-Ken configures the
|
||||
gears by using OpenFlow protocol, etc.
|
||||
|
||||
Writing Ryu application is easy. It's just Python scripts.
|
||||
Writing OS-Ken application is easy. It's just Python scripts.
|
||||
|
||||
|
||||
Start Writing
|
||||
=============
|
||||
|
||||
We show a Ryu application that make OpenFlow switches work as a dumb
|
||||
We show a OS-Ken application that make OpenFlow switches work as a dumb
|
||||
layer 2 switch.
|
||||
|
||||
Open a text editor creating a new file with the following content:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from ryu.base import app_manager
|
||||
|
||||
|
||||
from os_ken.base import app_manager
|
||||
|
||||
class L2Switch(app_manager.RyuApp):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(L2Switch, self).__init__(*args, **kwargs)
|
||||
|
||||
Ryu application is just a Python script so you can save the file with
|
||||
OS-Ken application is just a Python script so you can save the file with
|
||||
any name, extensions, and any place you want. Let's name the file
|
||||
'l2.py' at your home directory.
|
||||
|
||||
This application does nothing useful yet, however it's a complete Ryu
|
||||
application. In fact, you can run this Ryu application::
|
||||
|
||||
% ryu-manager ~/l2.py
|
||||
This application does nothing useful yet, however it's a complete OS-Ken
|
||||
application. In fact, you can run this OS-Ken application::
|
||||
|
||||
% os_ken-manager ~/l2.py
|
||||
loading app /Users/fujita/l2.py
|
||||
instantiating app /Users/fujita/l2.py
|
||||
|
||||
|
||||
All you have to do is defining needs a new subclass of RyuApp to run
|
||||
your Python script as a Ryu application.
|
||||
your Python script as a OS-Ken application.
|
||||
|
||||
Next let's add the functionality of sending a received packet to all
|
||||
the ports.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from ryu.base import app_manager
|
||||
from ryu.controller import ofp_event
|
||||
from ryu.controller.handler import MAIN_DISPATCHER
|
||||
from ryu.controller.handler import set_ev_cls
|
||||
from ryu.ofproto import ofproto_v1_0
|
||||
|
||||
|
||||
from os_ken.base import app_manager
|
||||
from os_ken.controller import ofp_event
|
||||
from os_ken.controller.handler import MAIN_DISPATCHER
|
||||
from os_ken.controller.handler import set_ev_cls
|
||||
from os_ken.ofproto import ofproto_v1_0
|
||||
|
||||
class L2Switch(app_manager.RyuApp):
|
||||
OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(L2Switch, self).__init__(*args, **kwargs)
|
||||
|
||||
|
||||
@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
|
||||
def packet_in_handler(self, ev):
|
||||
msg = ev.msg
|
||||
dp = msg.datapath
|
||||
ofp = dp.ofproto
|
||||
ofp_parser = dp.ofproto_parser
|
||||
|
||||
|
||||
actions = [ofp_parser.OFPActionOutput(ofp.OFPP_FLOOD)]
|
||||
out = ofp_parser.OFPPacketOut(
|
||||
datapath=dp, buffer_id=msg.buffer_id, in_port=msg.in_port,
|
||||
|
@ -76,16 +76,16 @@ the ports.
|
|||
|
||||
|
||||
A new method 'packet_in_handler' is added to L2Switch class. This is
|
||||
called when Ryu receives an OpenFlow packet_in message. The trick is
|
||||
'set_ev_cls' decorator. This decorator tells Ryu when the decorated
|
||||
called when OS-Ken receives an OpenFlow packet_in message. The trick is
|
||||
'set_ev_cls' decorator. This decorator tells OS-Ken when the decorated
|
||||
function should be called.
|
||||
|
||||
The first argument of the decorator indicates an event that makes
|
||||
function called. As you expect easily, every time Ryu gets a
|
||||
function called. As you expect easily, every time OS-Ken gets a
|
||||
packet_in message, this function is called.
|
||||
|
||||
The second argument indicates the state of the switch. Probably, you
|
||||
want to ignore packet_in messages before the negotiation between Ryu
|
||||
want to ignore packet_in messages before the negotiation between OS-Ken
|
||||
and the switch finishes. Using 'MAIN_DISPATCHER' as the second
|
||||
argument means this function is called only after the negotiation
|
||||
completes.
|
||||
|
@ -97,7 +97,7 @@ Next let's look at the first half of the 'packet_in_handler' function.
|
|||
* msg.dp is an object that represents a datapath (switch).
|
||||
|
||||
* dp.ofproto and dp.ofproto_parser are objects that represent the
|
||||
OpenFlow protocol that Ryu and the switch negotiated.
|
||||
OpenFlow protocol that OS-Ken and the switch negotiated.
|
||||
|
||||
Ready for the second half.
|
||||
|
||||
|
@ -109,18 +109,18 @@ Ready for the second half.
|
|||
* OFPPacketOut class is used to build a packet_out message.
|
||||
|
||||
* If you call Datapath class's send_msg method with a OpenFlow message
|
||||
class object, Ryu builds and send the on-wire data format to the switch.
|
||||
class object, OS-Ken builds and send the on-wire data format to the switch.
|
||||
|
||||
|
||||
Here, you finished implementing your first Ryu application. You are ready to
|
||||
run this Ryu application that does something useful.
|
||||
Here, you finished implementing your first OS-Ken application. You are ready to
|
||||
run this OS-Ken application that does something useful.
|
||||
|
||||
|
||||
A dumb l2 switch is too dumb? You want to implement a learning l2
|
||||
switch? Move to `the next step
|
||||
<https://github.com/osrg/ryu/blob/master/ryu/app/simple_switch.py>`_. You
|
||||
can learn from the existing Ryu applications at `ryu/app
|
||||
<https://github.com/osrg/ryu/blob/master/ryu/app/>`_ directory and
|
||||
<https://github.com/osrg/os_ken/blob/master/os_ken/app/simple_switch.py>`_. You
|
||||
can learn from the existing OS-Ken applications at `os_ken/app
|
||||
<https://github.com/osrg/os_ken/blob/master/os_ken/app/>`_ directory and
|
||||
`integrated tests
|
||||
<https://github.com/osrg/ryu/blob/master/ryu/tests/integrated/>`_
|
||||
<https://github.com/osrg/os_ken/blob/master/os_ken/tests/integrated/>`_
|
||||
directory.
|
|
@ -59,20 +59,20 @@ def set_ev_cls(ev_cls, dispatchers=None):
|
|||
|
||||
.. tabularcolumns:: |l|L|
|
||||
|
||||
=========================================== ===============================
|
||||
Negotiation phase Description
|
||||
=========================================== ===============================
|
||||
============================================== ===============================
|
||||
Negotiation phase Description
|
||||
============================================== ===============================
|
||||
os_ken.controller.handler.HANDSHAKE_DISPATCHER Sending and waiting for hello
|
||||
message
|
||||
message
|
||||
os_ken.controller.handler.CONFIG_DISPATCHER Version negotiated and sent
|
||||
features-request message
|
||||
features-request message
|
||||
os_ken.controller.handler.MAIN_DISPATCHER Switch-features message
|
||||
received and sent set-config
|
||||
message
|
||||
received and sent set-config
|
||||
message
|
||||
os_ken.controller.handler.DEAD_DISPATCHER Disconnect from the peer. Or
|
||||
disconnecting due to some
|
||||
unrecoverable errors.
|
||||
=========================================== ===============================
|
||||
disconnecting due to some
|
||||
unrecoverable errors.
|
||||
============================================== ===============================
|
||||
"""
|
||||
def _set_ev_cls_dec(handler):
|
||||
if 'callers' not in dir(handler):
|
||||
|
|
|
@ -1006,8 +1006,7 @@ def generate(ofp_name, ofpp_name):
|
|||
..
|
||||
|
||||
| *field*\=\ *value*
|
||||
| *field*\ **[**\ *start*\..\ *end*\ **]**\ =\
|
||||
*src*\ **[**\ *start*\..\ *end*\ **]**
|
||||
| *field*\ **[**\ *start*\..\ *end*\ **]**\ =\ *src*\ **[**\ *start*\..\ *end*\ **]**
|
||||
| *field*\ **[**\ *start*\..\ *end*\ **]**
|
||||
|
|
||||
|
||||
|
@ -1020,10 +1019,8 @@ def generate(ofp_name, ofpp_name):
|
|||
load:src[start..end]->dst[start..end]
|
||||
..
|
||||
|
||||
| **load**\:\ *value*\ **->**\ *dst*\
|
||||
**[**\ *start*\..\ *end*\ **]**
|
||||
| **load**\:\ *src*\ **[**\ *start*\..\ *end*\
|
||||
**] ->**\ *dst*\ **[**\ *start*\..\ *end*\ **]**
|
||||
| **load**\:\ *value*\ **->**\ *dst*\ **[**\ *start*\..\ *end*\ **]**
|
||||
| **load**\:\ *src*\ **[**\ *start*\..\ *end*\ **] ->**\ *dst*\ **[**\ *start*\..\ *end*\ **]**
|
||||
|
|
||||
|
||||
Please use the
|
||||
|
|
Loading…
Reference in New Issue