3 OpenFlow Plugin Architeture
4 ===========================
9 OpenFlow is a vendor-neutral standard communications interface defined
10 to enable interaction between the control and forwarding layers of an
11 SDN architecture. The OpenFlow plugin project intends to develop a
12 plugin to support implementations of the OpenFlow specification as it
13 develops and evolves. Specifically the project has developed a plugin
14 aiming to support OpenFlow 1.0 and 1.3.x. It can be extended to add
15 support for subsequent OpenFlow specifications. The plugin is based on
16 the Model Driven Service Abstraction Layer (MD-SAL) architecture.
21 - Southbound plugin and integration of OpenFlow 1.0/1.3.x library.
23 - Ongoing support and integration of the OpenFlow specification.
25 - The plugin should be implemented in an easily extensible manner.
27 - Protocol verification activities will be performed on supported
28 OpenFlow specifications.
30 High Level Architecture
31 -----------------------
33 .. figure:: ../images/plugin_arch.png
35 - **OpenFlowJava**: is a library that implements the OpenFlow codec –
36 it translates OpenFlow messages into their respective internal
37 representations and vice versa.
39 - **OpenFlow Plugin**: terminates sessions to OpenFlow switches,
40 provides a per-switch low-level OpenFlow service API (add-modify-flow,
43 - **Statistics Manager**: is responsible for collecting statistics and
44 status from attached OpenFlow switches and storing them into the
45 operational data store for applications’ use.
47 - **Topology Manager**: is responsible for discovering the OpenFlow
48 topology using LLDP and putting them into the operational data store
49 for applications’ use.
51 - **Forwarding Rules Manager**: the “top level” OpenFlow module that
52 exposes the OF functionality to controller apps, provides the app-level
53 API. Main entity that manages the OpenFlow switch inventory and the
54 configuration (programming) of flows in switches. It also reconciles
55 user configuration with network state discovered by the OpenFlow plugin.
61 It is strongly recommended that any production deployments utilising
62 the OpenFlow Plugin do so with **TLS** encryption to protect against
63 various man-in-the-middle attacks. For more details please refer
64 to the :ref:`TLS section of the Operations guide <ofp-tls-guide>`.
69 Coverage has been moved to a `GoogleDoc Spreadsheet
70 <https://docs.google.com/spreadsheet/ccc?key=0AtpUuSEP8OyMdHNTZjBoM0VjOE9BcGhHMzk3N19uamc&usp=sharing%23gid=2#gid=0>`_
75 The baseline model is a OF 1.3 model, and the coverage tables primarily
76 deal with OF 1.3. However for OF 1.0, we have a column to indicate
77 either N/A if it doesn’t apply, or whether its been confirmed working.
82 OF 1.0 is being considered as a switch with: \* 1 Table \* 0 Groups \* 0
83 Meters \* 1 Instruction (Apply Actions) \* and a limited vocabulary of