Active Learning of Symbolic NetKAT Automata
Mark Moeller, Tiago Ferreira, Thomas Lu, Nate Foster, Alexandra Silva
TL;DR
This work tackles learning models of networks specified in NetKAT by developing active learning algorithms for NetKAT automata. It introduces a NetKAT-specific Myhill-Nerode theory and two learning frameworks: canonical PNKA learning for carry-on-aware automata and symbolic NKL^* learning for dup-free and full NetKAT via Symbolic Packet Programs. The authors prove soundness, implement prototypes, and evaluate on a standard topology benchmark, showing the symbolic approach scales to realistic network configurations. The results demonstrate that symbolic NetKAT learning can produce compact, accurate models of network behavior and policies, enabling automated verification and monitoring, while also revealing NP-hardness inherent in minimizing symbolic representations.
Abstract
NetKAT is a domain-specific programming language and logic that has been successfully used to specify and verify the behavior of packet-switched networks. This paper develops techniques for automatically learning NetKAT models of unknown networks using active learning. Prior work has explored active learning for a wide range of automata (e.g., deterministic, register, Büchi, timed etc.) and also developed applications, such as validating implementations of network protocols. We present algorithms for learning different types of NetKAT automata, including symbolic automata proposed in recent work. We prove the soundness of these algorithms, build a prototype implementation, and evaluate it on a standard benchmark. Our results highlight the applicability of symbolic NetKAT learning for realistic network configurations and topologies.
