Software dataplane verification

Mihai Dobrescu, Katerina Argyraki

Communications of the ACM · 2015 · 41 citations · 27 references

DOIFull text

Open access

Concepts

TL;DR

Programmable networks allow dynamic deployment of network functions, but this flexibility introduces unpredictable behavior and performance risks. The study seeks to identify the minimal restrictions needed on network functionality to enable verification that devices behave correctly, and to develop a domain‑specific verification tool for packet‑processing software. The authors iteratively designed a domain‑specific verification tool for packet‑processing software and applied it to Click, achieving complete and sound verification of an IP router and two middleboxes in minutes, compared to hours for a general‑purpose tool. The study finds that packet‑processing software, with its limited mutable state and modular code, is well suited for domain‑specific verification, enabling complete and sound analysis in minutes.

Abstract

The industry is in the mood for programmable networks, where an operator can dynamically deploy network functions on network devices, akin to how one deploys virtual machines on physical machines in a cloud environment. Such flexibility brings along the threat of unpredictable behavior and performance. What are the minimum restrictions that we need to impose on network functionality such that we are able to verify that a network device behaves and performs as expected, for example, does not crash or enter an infinite loop? We present the result of working iteratively on two tasks: designing a domain-specific verification tool for packet-processing software, while trying to identify a minimal set of restrictions that packet-processing software must satisfy in order to be verification-friendly. Our main insight is that packet-processing software is a good candidate for domain-specific verification, for example, because it typically consists of distinct pieces of code that share limited mutable state; we can leverage this and other properties to sidestep fundamental verification challenges. We apply our ideas on Click packet-processing software; we perform complete and sound verification of an IP router and two simple middleboxes within tens of minutes, whereas a state-of-the-art general-purpose tool fails to complete the same task within several hours.

References

27