Software-Defined Networking (SDN) is a recent networking paradigm that has become increasingly popular in the last decade. It gives unprecedented control over the global behavior of the network and provides a new opportunity for formal methods. Much work has appeared in the last few years on providing bridges between SDN and verification. This paper advances this research line and provides a link between SDN and traditional work on formal methods for verification of distributed software-actor-based modelling. We show how SDN programs can be seamlessly modelled using actors, and thus existing advanced model checking techniques developed for actors can be directly applied to verify a range of properties of SDN networks, including consistency of flow tables, violation of safety policies, and forwarding loops. framework, are equipped with a private memory, and can interact with others through asynchronous messages. This setup enables reasoning about local properties without knowledge of the whole program, which gives rise to more compositional and thus scalable methods. Actors provide the foundations for the concurrency model of languages used in industry, e.g., Erlang and Scala, and libraries used in mainstream languages, e.g., Akka. Contributions. The main contributions of this paper are: 1. SDN-Actors: An encoding of all components of an SDN network into the actor-based language ABS [13]. One of the most challenging aspects to encode were the OpenFlow barrier messages, special instructions that the controller can use to force switches to execute all their queued tasks. 2. A soundness proof of the encoding (and implementation) of barriers (Th. 2). 3. Application of (context-sensitive) dynamic partial-order reduction (DPOR) techniques to model check SDN programs. We have implemented this model checker on top of the SYCO tool [4] for actors. 4. Several case studies of SDN and properties to illustrate the versatility and potential of the approach. We were able to find bugs related to programming errors in the controller, forwarding loops, and violation of safety policies. Though we did not explore it in this paper, the encoding we provide opens the door to apply a range of techniques other than model checking. For instance, static analysis, runtime monitoring or simulation of network behavior can be done now using the ABS toolsuite [1] . Other tools and methods for verification of message-passing and concurrent-object systems could be also easily adapted [6, 8, 15, 16] . In addition, because the encoding is not very far from the original flow tables, both model extraction from existing network code and code generation from an actor model should be achievable with a small extension of the tool.
In REF , actor-based modeling framework is proposed to investigate the problem of network verification.
SDN-Actors: Modeling and Verification of SDN Programs
FM
Computer Science