Fighting Livelock in the i-Protocol: A Comparative Study of Verification Tools
A Comparative Study of Verification Tools
Yifei Dong5, Xiaoqun Du5, Y. S. Ramakrishna5, C. R. Ramakrishnan5, I. V. Ramakrishnan5, Scott A. Smolka5, Oleg Sokolsky5, Eugene W. Stark5 and David S. Warren5
| (5) |
Department of Computer Science, SUNY at Stony Brook, Stony Brook, NY 11794-4400, USA |
Abstract
The i-protocol, an optimized sliding-window protocol for GNU UUCP, came to our attention two years ago when we used the Con-currency
Factory’s local model checker to detect, locate, and correct a non-trivial livelock in version 1.04 of the protocol. Since
then, we have repeated this verification effort with five widely used model checkers, namely, COSPAN, Murϕ, SMV, SPIN, and XMC. It is our contention that the i-protocol makes for a particularly compelling case study in protocol verification
and for a formidable benchmark of verification-tool performance, for the following reasons: 1) The i-protocol can be used
to gauge a tool’s ability to detect and diagnose livelock errors. 2) The size of the i-protocol’s state space grows exponentially
in the window size, and the entirety of this state space must be searched to verify that the protocol, with the livelock error
eliminated, is deadlock- or livelock-free. 3) The i-protocol is an asynchronous, low-level software system equipped with a
number of optimizations aimed at minimizing control-message and retransmission overhead. It lacks the regular structure that
is often present in hardware designs. In this sense, it provides any verification tool with a vigorous test of its analysis
capabilities.
Research supported in part by NSF Grants CCR-9505562 and CCR-9705998, and AFOSR grants F49620-95-1-0508 and F49620-96-1-0087.
Currently at: Sun Microsystems, Mountain View, CA 94043, USA.
Currently at: Department of Computer and Information Sciences, University of Pennsylvania, Philadelphia, PA 19104, USA.
References secured to subscribers.