Fighting Livelock in the i-Protocol: A Comparative Study of Verification Tools

  • Authors:
  • Yifei Dong;Xiaoqun Du;Y. S. Ramakrishna;C. R. Ramakrishnan;I. V. Ramakrishnan;Scott A. Smolka;Oleg Sokolsky;Eugene W. Stark;David Scott Warren

  • Affiliations:
  • -;-;-;-;-;-;-;-;-

  • Venue:
  • TACAS '99 Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

The i-protocol, an optimized sliding-window protocol for GNU UUCP, came to our attention two years ago when we used the Concurrency 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.