Model Checking Programmable Router Configurations

Programmable networks offer the ability to customize router behaviour at run time, thus increasing flexibility of network administration. Programmable network routers are configured using domain-specific languages. In this paper, we describe our approach to defining the syntax and semantics of such a domain-specific language. The ability to evolve router programs dynamically creates potential for misconfigurations. By exploiting domain-specific abstractions, we are able to translate router configurations into Promela and validate them using the Spin model checker, thus providing reasoning support for our domain-specific language. To evaluate our approach we use our configuration language to express the IETF's Differentiated Services specification and show that industrial-sized DiffServ router configurations can be validated using Spin on a standard PC.

[1]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

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

[3]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[4]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[5]  Jean-Yves Le Boudec,et al.  SMART: A Many-to-Many Multicast Protocol for ATM , 1997, IEEE J. Sel. Areas Commun..

[6]  Zheng Wang,et al.  An Architecture for Differentiated Services , 1998, RFC.

[7]  Bernhard Plattner,et al.  Router plugins: a software architecture for next generation routers , 1998, SIGCOMM '98.

[8]  David L. Black,et al.  An Architecture for Differentiated Service , 1998 .

[9]  Sheng Liang,et al.  Java Native Interface: Programmer's Guide and Specification , 1999 .

[10]  Hermann de Meer,et al.  A survey of programmable networks , 1999, CCRV.

[11]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[12]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[13]  EDDIE KOHLER,et al.  The click modular router , 2000, TOCS.

[14]  Bernhard Plattner,et al.  Router plugins: a software architecture for next-generation routers , 2000, TNET.

[15]  H de Meer Middleware and Management Support for Programmable QoS-Network Architectures , 2001 .

[16]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .