Stateful Network Testing with Concolic Network Execution

JSYS 2024 August Papers Submission1 Authors

01 Aug 2024 (modified: 02 Aug 2024)JSYS 2024 August Papers SubmissionEveryoneRevisionsBibTeXCC BY-NC 4.0
Keywords: data plane testing, model checking, software emulation
Abstract: As modern networks grow in complexity with virtualized software components, ensuring the correctness of such networks becomes a challenge. Conventional network verification relies on manually constructed models, which are difficult to build and maintain especially for the software components, thus limiting the viability of network verification. On the other hand, network testing through emulation provides high fidelity, but it lacks coverage of the packet header space and forwarding nondeterminism (e.g., ECMP, orderings of concurrent packets). In this work, we propose Neo, a hybrid data plane testing framework that combines model checking and emulation-based testing, with an aim to balance the benefits from both worlds. Neo provides and utilizes formal models for the standardized behavior where models can be easily maintained, and allows the software components in the network to be emulated where an accurate model is not readily available. As a result, Neo covers all possible execution where models are available, including the packet header space and forwarding nondeterminism of typical devices and protocols, while sacrificing these formal guarantees for the software components to obtain accuracy and applicability via emulation. We show that our approach can detect data planes issues that would otherwise be missed by the existing methods alone and that, with our optimizations, it performs reasonably well on various network datasets.
Area: Networking
Type: Solution
Revision: No
Submission Number: 1
Loading