Faster Pushdown Reachability Analysis with Applications in Network Verification

Reachability analysis of pushdown systems is a fundamental problem in model checking that comes with a wide range of applications. We study performance improvements of pushdown reachability analysis and as a case study, we consider the verification of the policy-compliance of MPLS (Multiprotocol Label Switching) networks, an application domain that has recently received much attention. Our main contribution are three techniques that allow us to speed up the state-of-the-art pushdown reachability tools by an order of magnitude. These techniques include the combination of classic pre∗ and post∗ saturation algorithms into a dual-search algorithm, an on-the-fly technique for detecting the possibility of early termination, as well as a counter-example guided abstraction refinement technique that improves the performance in particular for the negative instances where the early termination technique is not applicable. As a second contribution, we describe an improved translation of MPLS networks to pushdown systems and demonstrate on an extensive set of benchmarks of real internet wide-area networks the efficiency of our approach.

[1]  Nate Foster,et al.  NetKAT: semantic foundations for networks , 2014, POPL.

[2]  Jens Knoop,et al.  An Automata-Theoretic Approach to Interprocedural Data-Flow Analysis , 1999, FoSSaCS.

[3]  Edmund M. Clarke,et al.  Model checking and abstraction , 1994, TOPL.

[4]  Stefan Schmid,et al.  AalWiNes: a fast and quantitative what-if analysis tool for MPLS networks , 2020, CoNEXT.

[5]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[6]  J. Richard Büchi Regular canonical systems , 1964 .

[7]  Edmund M. Clarke,et al.  Counterexample-Guided Abstraction Refinement , 2000, CAV.

[8]  Matthew Roughan,et al.  The Internet Topology Zoo , 2011, IEEE Journal on Selected Areas in Communications.

[9]  Javier Esparza,et al.  jMoped: A Java Bytecode Checker Based on Moped , 2005, TACAS.

[10]  Javier Esparza,et al.  Abstraction Refinement with Craig Interpolation and Symbolic Pushdown Systems , 2006, J. Satisf. Boolean Model. Comput..

[11]  Ratul Mahajan,et al.  Don't Mind the Gap: Bridging Network-wide Objectives and Device-level Configurations , 2016, SIGCOMM.

[12]  Stephen A. Edwards,et al.  Incremental Algorithms for Inter-procedural Analysis of Safety Properties , 2005, CAV.

[13]  Jean-Baptiste Jeannin,et al.  NetKAT: semantic foundations for networks , 2014, POPL.

[14]  Laurent Vanbever,et al.  Network-Wide Configuration Synthesis , 2016, CAV.

[15]  Javier Esparza,et al.  A BDD-Based Model Checker for Recursive Programs , 2001, CAV.

[16]  Stefan Schmid,et al.  P-Rex: fast verification of MPLS networks with multiple link failures , 2018, CoNEXT.

[17]  Stefan Schmid,et al.  Polynomial-Time What-If Analysis for Prefix-Manipulating MPLS Networks , 2018, IEEE INFOCOM 2018 - IEEE Conference on Computer Communications.

[18]  Javier Esparza,et al.  Reachability Analysis of Pushdown Automata: Application to Model-Checking , 1997, CONCUR.

[19]  Stefan Schwoon,et al.  Model checking pushdown systems , 2002 .

[20]  Pierre Wolper,et al.  A direct symbolic approach to model checking pushdown systems , 1997, INFINITY.

[21]  George Varghese,et al.  Header Space Analysis: Static Checking for Networks , 2012, NSDI.