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-230 Bundle Extension (without bundle properties)
  • 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-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.ofproto.ofproto_v1_5

OpenFlow 1.5 definitions.

ryu.ofproto.ofproto_v1_5_parser

Decoder/Encoder implementations of OpenFlow 1.5.

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.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.