Design, Conformance Verification, and Performance Evaluation of OpenFlow Message Layer

Date

2014-05-08

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

The message layer is a critical part of a network protocol stack. The quality of the protocol implementation is closely tied to that of the message layer. The responsibilities of the message layer include conversion between binaries from the network interface and message structures in the device memory, along with validation of these messages. Design and implementation of the message layer pose major challenges, especially for modern protocols that have complex message structures. Poor design choices and errors in the implementation lead to safety issues, performance inefficiencies, and expose vulnerabilities, opening door to potential exploitations and attacks.

In this thesis we develop a systematic approach to design and implementation of efficient and correct-by-construction message layer components of the protocol stack. To achieve this goal, we identify some common design trade-off s and evaluate their impacts on performance and/or safety using the OpenFlow protocol as a case study. A performance benchmarking framework leveraging existing tools is developed to conduct these evaluations. Furthermore, the thesis develops a framework for conformance verification. The conformance framework proposes a methodology that generates test messages to identify vulnerabilities in the message layer. In particular, we present an algorithm that minimizes the number of required test messages by exploiting the structure of the message format.

A safe message layer is developed as part of the Flowgrammmable OpenFlow stack. Flowgrammable and several existing OpenFlow stack implementations, such as Beacon Controller and CPqD Soft Switch, are evaluated using both proposed conformance and performance frameworks. It is shown that unlike Flowgrammable, implementations of Beacon and CPqD Soft Switch message layer contain conformance violations. Furthermore, design choices such as omitting semantic checking, inlining small and frequently used functions, and header optimization can yield performance gain in protocol stack implementations. The work can be extended by automating the message layer implementation and testing by using a programming language approach. Even though OpenFlow is used as an example, the work can be applied to improve the performance and level of conformance in other network protocols as well. This thesis intends to help developers take a more systematic approach and make better design choices in implementing a conformant message layer for a broad range of network protocols.

Description

Citation