Components of OS-Ken

Executables

osken-manager

The main executable.

Base components

os_ken.base.app_manager

The central management of OSKen applications.

  • Load OSKen applications

  • Provide contexts to OSKen applications

  • Route messages among OSKen applications

OpenFlow controller

os_ken.controller.controller

The main component of OpenFlow controller.

  • Handle connections from switches

  • Generate and route events to appropriate entities like OSKen applications

os_ken.controller.dpset

Manage switches.

Planned to be replaced by os_ken/topology.

os_ken.controller.ofp_event

OpenFlow event definitions.

os_ken.controller.ofp_handler

Basic OpenFlow handling including negotiation.

OpenFlow wire protocol encoder and decoder

os_ken.ofproto.ofproto_v1_0

OpenFlow 1.0 definitions.

os_ken.ofproto.ofproto_v1_0_parser

Decoder/Encoder implementations of OpenFlow 1.0.

os_ken.ofproto.ofproto_v1_2

OpenFlow 1.2 definitions.

os_ken.ofproto.ofproto_v1_2_parser

Decoder/Encoder implementations of OpenFlow 1.2.

os_ken.ofproto.ofproto_v1_3

OpenFlow 1.3 definitions.

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

os_ken.ofproto.ofproto_v1_4

OpenFlow 1.4 definitions.

os_ken.ofproto.ofproto_v1_4_parser

Decoder/Encoder implementations of OpenFlow 1.4.

os_ken.ofproto.ofproto_v1_5

OpenFlow 1.5 definitions.

os_ken.ofproto.ofproto_v1_5_parser

Decoder/Encoder implementations of OpenFlow 1.5.

OS-Ken applications

os_ken.app.cbench

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

os_ken.app.simple_switch

An OpenFlow 1.0 L2 learning switch implementation.

os_ken.topology

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

Libraries

os_ken.lib.packet

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

os_ken.lib.ovs

ovsdb interaction library.

os_ken.lib.of_config

OF-Config implementation.

os_ken.lib.netconf

NETCONF definitions used by os_ken/lib/of_config.

os_ken.lib.xflow

An implementation of sFlow and NetFlow.

Third party libraries

os_ken.contrib.ovs

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

os_ken.contrib.oslo.config

Oslo configuration library. Used for osken-manager's command-line options and configuration files.

os_ken.contrib.ncclient

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