Static Analysis Tools for Network-Device Stacks
Guardado en:
| Udgivet i: | ProQuest Dissertations and Theses (2025) |
|---|---|
| Hovedforfatter: | |
| Udgivet: |
ProQuest Dissertations & Theses
|
| Fag: | |
| Online adgang: | Citation/Abstract Full Text - PDF |
| Tags: |
Ingen Tags, Vær først til at tagge denne postø!
|
| Resumen: | The administration of computer networks is increasingly automated, and network devices are becoming more programmable. The network-device stack---software layers dedicated to forwarding packets and interpreting instructions from the network control plane---now implements much more operational logic. The increase in complexity in logic can increase the frequency of faults, which can have an outsized impact on a computer network. Hence, network operators and device manufacturers are turning to static analysis to ensure that the device stack is both well-optimized and functionally correct. The software in network-device stacks is extensive and often written in general-purpose languages such as Python or C++. These languages contain loops, aliasing, or indirection, which can make developing effective static analysis techniques challenging. In this dissertation, we explore an opportunity to build better static analysis tools for network-device stacks. We use P4, a domain-specific language for network programming, as our foundation. We develop an execution model for P4 that describes the behavior of a network device, and we implement this execution model using satisfiability modulo theories (SMT), expressed in quantifier-free bit vectors. We refine this execution model through three distinct projects and show its utility by adopting techniques from software engineering research that are theoretically powerful but were considered practically limited for general-purpose languages. Applying our specialized techniques, we were able to find approximately 60 bugs in network-device stacks that cause incorrect packet processing. Furthermore, we reuse our model to optimize network programs based on their control-plane configuration, which can reduce resource usage and increase packet-processing performance. Our SMT-based execution model for packet processing is protocol-independent, device-agnostic, and precise enough for bug-finding and program optimization. We attribute these successes to tailoring our model to a DSL specialized in packet processing while also appropriately exploiting the restrictions of this DSL. We have contributed the tools that use this model to open-source projects, and these tools are now in broader use by the community. |
|---|---|
| ISBN: | 9798286423576 |
| Fuente: | ProQuest Dissertations & Theses Global |