An Assertion Language for Debugging SDN Applications

Abstract

Software Defined Networking (SDN) provides opportunities for network verification and debugging by offering central-ized visibility of the data plane. This has enabled both offline and online data-plane verification. However, little work has gone into the verification of time-varying properties (e.g., dynamic access control), where verification conditions change dynamically in response to application logic, network events, and external stimulus (e.g., operator requests). This paper introduces an assertion language to support verifying and debugging SDN applications with dynamically changing verification conditions. The language allows pro-grammers to annotate controller applications with C-style assertions about the data plane. Assertions consist of reg-ular expressions on paths to describe path properties for classes of packets, and universal and existential quantifiers that range over programmer-defined sets of hosts, switches, or other network entities. As controller programs dynami-cally add and remove elements from these sets, they gener-ate new verification conditions that the existing data plane must satisfy. This work proposes an incremental data struc-ture together with an underlying verification engine, to avoid naively re-verifying the entire data plane as these verifica-tion conditions change. To validate our ideas, we have im-plemented a debugging library on top of a modified version of VeriFlow, which is easily integrated into existing con-troller systems with minimal changes. Using this library, we have verified correctness properties for applications on several controller platforms

Similar works

Full text

thumbnail-image

CiteSeerX

redirect
Last time updated on 28/10/2017

This paper was published in CiteSeerX.

Having an issue?

Is data on this page outdated, violates copyrights or anything else? Report the problem now and we will take corresponding actions after reviewing your request.