StacKAT: Infinite State Network Verification
By: Jules Jacobs , Nate Foster , Tobias Kappé and more
Potential Business Impact:
Checks if computer networks work correctly.
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.
Similar Papers
Active Learning of Symbolic NetKAT Automata
Programming Languages
Teaches computers to understand network traffic automatically.
Weighted GKAT: Completeness and Complexity
Logic in Computer Science
Makes computer programs easier to check for mistakes.
Visual Execution and Validation of Finite-State Machines and Pushdown Automata
Formal Languages and Automata Theory
Helps students learn how computers think.