Ryu 3.19 documentation

Components of Ryu

«  The First Application   ::   Contents   ::   Ryu application API  »

Components of Ryu

Executables

bin/ryu-manager

The main executable.

Base components

ryu.base.app_manager

The central management of Ryu applications.

  • Load Ryu applications
  • Provide contexts to Ryu applications
  • Route messages among Ryu applications

OpenFlow controller

ryu.controller.controller

The main component of OpenFlow controller.

  • Handle connections from switches
  • Generate and route events to appropriate entities like Ryu applications

ryu.controller.dpset

Manage switches.

Planned to be replaced by ryu/topology.

ryu.controller.ofp_event

OpenFlow event definitions.

ryu.controller.ofp_handler

Basic OpenFlow handling including negotiation.

OpenFlow wire protocol encoder and decoder

ryu.ofproto.ofproto_v1_0

OpenFlow 1.0 definitions.

ryu.ofproto.ofproto_v1_0_parser

Decoder/Encoder implementations of OpenFlow 1.0.

ryu.ofproto.ofproto_v1_2

OpenFlow 1.2 definitions.

ryu.ofproto.ofproto_v1_2_parser

Decoder/Encoder implementations of OpenFlow 1.2.

ryu.ofproto.ofproto_v1_3

OpenFlow 1.3 definitions.

ryu.ofproto.ofproto_v1_3_parser

This module implements OpenFlow 1.3.x.

This module also implements some of extensions shown in “OpenFlow Extensions for 1.3.X Pack 1”. Namely, the following extensions are implemented.

  • EXT-236 Bad flow entry priority error Extension
  • EXT-237 Set async config error Extension
  • EXT-256 PBB UCA header field Extension
  • EXT-260 Duplicate instruction error Extension
  • EXT-264 Multipart timeout errors Extension

The following extensions are partially implemented.

  • EXT-187 Flow entry notifications Extension (ONFMP_FLOW_MONITOR only)
  • EXT-230 Bundle Extension (Error codes only)
  • EXT-232 Table synchronisation Extension (Error codes only)

The following extensions are not implemented yet.

  • EXT-191 Role Status Extension
  • EXT-192-e Flow entry eviction Extension
  • EXT-192-v Vacancy events Extension

ryu.ofproto.ofproto_v1_4

OpenFlow 1.4 definitions.

ryu.ofproto.ofproto_v1_4_parser

Decoder/Encoder implementations of OpenFlow 1.4.

Ryu applications

ryu.app.cbench

A dumb OpenFlow 1.0 responder for benchmarking the controller framework. Intended to be used with oflops cbench.

ryu.app.simple_switch

An OpenFlow 1.0 L2 learning switch implementation.

ryu.app.simple_isolation

MAC address based isolation logic.

ryu.app.simple_vlan

VLAN based isolation logic.

ryu.app.gre_tunnel

Flow table updater for OpenStack integration. Despite of the name, this isn’t GRE specific.

ryu.app.tunnel_port_updater

This module updates OVS tunnel ports for OpenStack integration.

ryu.app.quantum_adapter

Listen OpenFlow port status change notifications from switches. Consult ovsdb to retrieve the corresponding port uuid. Notify relevant parties, including quantum (via Ryu plug-in) and Ryu applications. (via Ryu Events)

ryu.app.rest

This module provides a basic set of REST API.

  • Network registration

  • End-point port management
    • OpenFlow port number
    • MAC address (for anti-spoofing)

Used by OpenStack Ryu plug-in.

ryu.app.rest_conf_switch

This module provides a set of REST API for switch configuration. - Per-switch Key-Value store

Used by OpenStack Ryu agent.

ryu.app.rest_quantum

This module provides a set of REST API dedicated to OpenStack Ryu plug-in.

  • Interface (uuid in ovsdb) registration
  • Maintain interface association to a network

Used by OpenStack Ryu plug-in.

ryu.app.rest_tunnel

Provide a set of REST API for tunnel key management. Used by OpenStack Ryu plug-in.

  • Tunnel key registration for a network
  • Manage switches and their ports which are used to establish a tunnel

ryu.topology

Switch and link discovery module. Planned to replace ryu/controller/dpset.

Libraries

ryu.lib.packet

Ryu packet library. Decoder/Encoder implementations of popular protocols like TCP/IP.

ryu.lib.ovs

ovsdb interaction library.

ryu.lib.of_config

OF-Config implementation.

ryu.lib.netconf

NETCONF definitions used by ryu/lib/of_config.

ryu.lib.xflow

An implementation of sFlow and NetFlow.

Third party libraries

ryu.contrib.ovs

Open vSwitch python binding. Used by ryu.lib.ovs.

ryu.contrib.oslo.config

Oslo configuration library. Used for ryu-manager’s command-line options and configuration files.

ryu.contrib.ncclient

Python library for NETCONF client. Used by ryu.lib.of_config.

«  The First Application   ::   Contents   ::   Ryu application API  »