Tracer: A Tool for Race Detection in Software Defined Network Models

Georgiana Caltais,Mahboobeh Zangiabady,Ervin Zvirbulis
DOI: https://doi.org/10.4204/EPTCS.410.6
2024-10-31
Abstract:Software Defined Networking (SDN) has become a new paradigm in computer networking, introducing a decoupled architecture that separates the network into the data plane and the control plane. The control plane acts as the centralized brain, managing configuration updates and network management tasks, while the data plane handles traffic based on the configurations provided by the control plane. Given its asynchronous distributed nature, SDN can experience data races due to message passing between the control and data planes. This paper presents Tracer, a tool designed to automatically detect and explain the occurrence of data races in DyNetKAT SDN models. DyNetKAT is a formal framework for modeling and analyzing SDN behaviors, with robust operational semantics and a complete axiomatization implemented in Maude. Built on NetKAT, a language leveraging Kleene Algebra with Tests to express data plane forwarding behavior, DyNetKAT extends these capabilities by adding primitives for communication between the control and data planes. Tracer exploits the DyNetKAT axiomatization and enables race detection in SDNs based on Lamport vector clocks. Tracer is a publicly available tool.
Formal Languages and Automata Theory,Networking and Internet Architecture,Symbolic Computation
What problem does this paper attempt to address?
The problem that this paper attempts to solve is: detecting and interpreting data races in Software - Defined Networking (SDN). Specifically, SDN is a new computer network paradigm that divides the network into a data plane and a control plane. Due to its asynchronous and distributed characteristics, SDN may have data races because of message passing between the control plane and the data plane. These data races may lead to unexpected network behaviors, especially in the case of concurrent processing. To solve this problem, the author proposes a tool named Tracer, which aims to automatically detect and interpret data races in the DyNetKAT SDN model. DyNetKAT is a formal framework for modeling and analyzing SDN behaviors, with powerful operational semantics and a complete axiomatic system, and these functions are implemented in Maude. Tracer utilizes the axiomatic system of DyNetKAT and Lamport vector clocks to detect data races in SDN. ### Main Contributions 1. **Tracer Tool**: Automatically detect data races in SDN based on the DyNetKAT model. 2. **Vector Clock**: Use Lamport vector clocks to detect data races caused by concurrent message passing between the control plane and the data plane. 3. **Minimum Packet Sequence**: Calculate the minimum set of network packets that lead to bad communication scenarios, providing debugging assistance. ### Data Race Detection Method Tracer detects data races through the following steps: - **Input DyNetKAT Model**: Receive an SDN model encoded in DyNetKAT as input. - **Symbolic Semantic Analysis**: Utilize the symbolic semantics of DyNetKAT to simulate the packet - processing process without actually sending packets. - **Vector Clock Update**: Update the time stamp of each component according to the rules of the vector clock. - **Detect Concurrent Behaviors**: By comparing vector clocks, identify components that execute concurrently, thereby detecting data races. - **Generate Minimum Explanation**: Calculate and output the minimum packet sequence that causes data races, helping network administrators understand the problem. ### Example An example given in the paper shows how to detect data races in a basic SDN that contains a switch and a controller. When host 1 sends a packet marked "blocking" to the switch, a data race may occur. Specifically, the fate of the new packet depends on the time sequence: - If the new packet arrives before the controller installs the blocking rule, it will be forwarded according to the existing forwarding strategy. - If the blocking rule is in place first, the new packet will be discarded. Tracer can detect this data race and provide the minimum packet sequence that causes the race as an explanation. ### Summary This paper solves the problem of detecting and interpreting data races in SDN by proposing the Tracer tool, improving the reliability and maintainability of SDN systems.