Affiliation:
1. Cornell University, Ithaca, USA
2. Leiden University, Leiden, Netherlands
3. Radboud University, Nijmegen, Netherlands
Abstract
We develop StacKAT, a network verification language featuring loops, finite state variables, nondeterminism, and---most importantly---access to a stack with accompanying push and pop operations.
By viewing the variables and stack as the (parsed) headers and (to-be-parsed) contents of a network packet, StacKAT can express a wide range of network behaviors including parsing, source routing, and telemetry. These behaviors are difficult or impossible to model using existing languages like NetKAT.
We develop a decision procedure for StacKAT program equivalence, based on finite automata.
This decision procedure provides the theoretical basis for verifying network-wide properties and is able to provide counterexamples for inequivalent programs.
Finally, we provide an axiomatization of StacKAT equivalence and establish its completeness.
Publisher
Association for Computing Machinery (ACM)