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.

Source code

VirtualBox appliance

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