OptimalFlow: A Hierarchical Control Plane for Software-Defined Networks-based Industrial Control Systems
OptimalFlow is a hierarchical Software-Defined Networks (SDN) control plane aimed at facilitating the provisioning of resilient Industrial Control Systems (ICS) communications. Its architecture and main features have been documented in the following publication:
B. Genge, P. Haller: A Hierarchical Control Plane for Software-Defined Networks-based Industrial Control Systems, IEEE/IFIP Networking, Vienna, Austria, pp. 73-81, 2016.
The bottom tier in the above figure represents the physical infrastructure and consists of network switches and links. This represents the data forwarding plane and can be structured in several domains. Each SDN domain includes a FlowControl unit that: (i) monitors the underlying domain for changes in network parameter values, e.g., the status of switch ports; (ii) changes the set of installed flows according to the solutions delivered by an ILP optimization problem aimed to preserve critical communication parameters; and (iii) transparently exposes the edge ports of an entire SDN domain to the upper tiers by means of an emulated SDN switch accessible through the OpenFlow protocol.
In this architecture OptimalFlow implements a novel network traffic optimization problem that, as a response to disturbances, computes a new optimal distribution of the affected flows, while preserving the requirements of ICS flows, e.g., security, reliability. OptimalFlow implements four main modules: SDNStateHandler, OFControllerCommunication, OptimalSolver, and OpenFlowSwitchEmulator. Its main module is the SDNStateHandler, which maintains an in-memory representation of the underlying SDN network and repeatedly calls the OFControllerCommunication module to update its internal state. In the case a change is detected, it issues a call to the OptimalSolver module to compute the optimal distribution of the flows affected by the disturbance. The new network configuration is then transmitted by the OFControllerCommunication module to the OpenFlow controller via a set of static flows that are installed in the SDN switches. The OptimalFlow controller exposes an OpenFlow northbound communication interface via its OpenFlowSwitchEmulator module. By doing so, the OptimalFlow controller is connected to upper tiers as a regular SDN switch that can be monitored and controlled via the OpenFlow protocol. This represents an effective strategy to build a hierarchical SDN network, where each tier adopts the same FlowControl software units. Furthermore, we believe that this is a salient feature of the proposed scheme, since it facilitates the provisioning of FlowControl without the need to change the OpenFlow protocol and the implementation of SDN switches/controllers.
- OptimalFlow: The sources can be downloaded from here (version 0.1). OptimalFlow was developed and tested on Linux Ubuntu 14.04.3. OptimalFlow is distributed under the Apache Software License. Please note that version 0.1 is a first prototype and this page will be continuously updated with documentation and new software versions. Any use of this software should be acknowledged by citing the following publication:
B. Genge, P. Haller: A Hierarchical Control Plane for Software-Defined Networks-based Industrial Control Systems, IEEE/IFIP Networking, Vienna, Austria, pp. 73-81, 2016.
- OptimalFlowDemo: The easiest way to try out OptimaFlow is to download the VirtualBox appliance (username/password: optimalflow, file size: 2GB). Instructions on the use of the appliance, together with additional documentation on OptimalFlow's source have been included in the extended version of the conference paper (at the moment it is available only on request; once the paper is accepted it will be available for download from this page):
B. Genge, P. Haller: OptimalFlow: A Hierarchical Control Plane for Software-Defined Networks-based Industrial Control Systems, Submitted to the IFIP TC6 journal Open Transactions on Communication Systems (OTCS).