Veri cation Experiments on the MASCARA Protocol?

Page created by Duane Murray
 
CONTINUE READING
Veri cation Experiments on the MASCARA Protocol?
                                  Guoping Jia and Susanne Graf
        VERIMAG?? { Centre Equation { 2, avenue de Vignate { F-38610 Gieres { France
                          Guoping.Jia@imag.fr, Susanne.Graf@imag.fr

       Abstract. In this paper, we describe an experiment in verifying a real industrial proto-
       col for wireless atm, called mascara. Several tools have been used: sdl has been chosen
       as the speci cation language and the commercial tool Objectgeode (Telelogic) has
       been used for creating, maintaining and modifying sdl descriptions. The if tool-set
       has been used for minimization and comparison of system models and veri cation of
       expected properties. All speci cation and veri cation tools are connected via the if
       language, which has been de ned as an intermediate representation for timed asyn-
       chronous systems as well as an open validation environment. Due to the complexity
       of the protocol, static analysis techniques, such as live variable analysis and program
       slicing, were the key to the success of this veri cation experiment. The results obtained
       give some hints concerning a methodology for the formal veri cation of real systems.

1 Introduction
Model checking [CE81,QS82] is by now a well established method for verifying properties of
reactive systems. The main reason for its success is the fact that it works fully automatically
and it is able to reveal subtle defects in the design of complex concurrent systems. Di er-
ent academic tools have been developed for supporting these techniques. Not only hardware
but also telecommunication industries are beginning to incorporate them as a component
of their development process. For example, the commercial SDL design tools Objectgeode
[Ver96] and TAU [TA99] provide some veri cation facilities going beyond interactive or ran-
dom simulation. A major challenge in model checking is dealing with the well-known state
explosion problem. This limits its large scale use in practice. In order to avoid this problem,
many solutions have been investigated. Examples of such approaches are on-the- y model-
checking [JJ89a,Hol90], symbolic model-checking [BCM+ 90,McM93], partial order reduction
[God96,GKPP94], symmetry reduction [ES94], abstraction [CGL94,LGS+ 95], compositional
minimization [GS90,KM00] and more recently static analysis reduction [BFG00a] to name a
few of many. Applying model checking to software system veri cation, in particular to large
industrial systems, needs to combine these techniques.
    In this paper, we present a detailed experiment report on the veri cation of an indus-
trial protocol, called mascara (Mobile Access Scheme based on Contention And Reserva-
tion for ATM) [DPea98]. The protocol is a speci c medium access control (mac) protocol,
which has been designed for wireless atm communication and has been developed within
?
   This work was supported by the VIRES project (Verifying Industrial REactive Systems, Esprit
   Long Term Research Project No.23498)
?? VERIMAG is a joint laboratory of CNRS, Universit
                                                   e Joseph Fourier and Institut Nationale Poly-
   technique de Grenoble
the wand (Wireless ATM Network Demonstrator) consortium [WAN96]. sdl [IT94] has
been chosen as the speci cation language by the designers and we have used the commer-
cial tool Objectgeode for maintaining the sdl description of the protocol. The if tool-set
[BFG+ 99b,BFG+ 99a] has been used for analysis of the protocol. All speci cation and veri -
cation tools of this tool-set have been connected via the if language, which is an intermediate
representation for timed asynchronous systems in an open validation environment . In order
to deal with the complexity of the protocol, all the available reduction techniques of the tool
have been used in combination to reduce the state graphs of the protocol. The results ob-
tained in the experiment give some hints on a methodology for the formal veri cation of large
systems.
    The paper is organized as follows. Section 2 gives an overview on the mascara protocol
and a brief description of the if language and its validation environment. Section 3 is the
heart of the paper, where we describe in detail the veri cation of the protocol. The results are
compared and discussed. We conclude with a brief summary and some directions of future
work.

2 The Context
2.1 The IF Language and Validation Environment
The IF language [BFG+ 99a,BFG+ 99b] has been de ned as an intermediate representation
for timed asynchronous systems. In if, a system is described by a set of parallel processes
communicating either asynchronously through a set of bu ers, or by rendez-vous via a set of
gates. Bu ers can have various queuing policies ( fo, bag, etc.), can be bounded or unbounded,
reliable or lossy, and delayable or with zero delay. Processes are timed automata with urgencies
[BST97], extended with discrete (data) variables. Process transitions are triggered by inputs
and/or guards and perform variable assignments, and clock settings and signal outputs. An
urgency out of eager, delayable, lazy is associated with each transition, de ning its priority
with respect to time progress. This makes if very exible and appropriate on one hand as
underlying semantics for high level speci cation formalisms such as sdl or estelle used in
commercial design tools and on the other hand as an intermediate representation for tool
interconnections as it is powerful enough to express the concepts of the languages used in the
main veri cation tools of the domain, such as lotos [BB88] and Promela [Hol91].
The IF validation environment provides a complete validation tool chain allowing to
transform high level sdl descriptions through the intermediate representation into the input
formats of several veri cation tools (see Figure 1) [BFG+ 00b]:
 { The speci cation level tools. if does not itself provide facilities to edit sdl speci ca-
    tions. For this it relies on the commercial tool-set Objectgeode developed by Telelogic
    and supporting sdl, msc and ttcn. It includes graphical editors and compilers for each
    of these formalisms and provides beside step-by-step and random-walk a model-checking
    facility using never claims, similar as in Spin, to help the user to debug an sdl speci -
    cation. In the veri cation experiment, Objectgeode has mainly been used for modifying
    the sdl description of the mascara protocol and for visualizing mscs generated from
    diagnostic sequences generated by other tools.

                                               2
KRONOS
                ObjectGEODE
                                                                  IF2IF                            CADP
               specification design                            static analysis                   model checking

                                         SDL2IF                                      IF2C
                    SDL                translation to IF
                                                                   IF               simulation      LTS

                                                                 IF2PML                               TGV
                                                           translation to PROMELA                 test generation

                                                                PROMELA             SPIN

                                      Fig. 1. The IF validation environment

 { The intermediate level tools. Based on an api provided by Objectgeode, a translator,
   sdl2if, generates operationally equivalent if speci cation from sdl [BFG+ 99b]. At the
   if level, a tool called if2if implements various static analysis techniques such as dead
   variable analysis (live), slicing (slice), constant propagation and clock reduction. if2if
   transforms with a small cost a given if description into a semantically equivalent one
   (with respect to a set of properties) with a reduced model, where a typical factor of
   reduction observed in many examples is between 1 and 3 orders of magnitude. Any back-
   end tool connected to if can pro t from these reductions. For example, the spin tool
   [Hol91] which has been connected via a translator if2pml [BDHS00].
 { The veri cation tools. cadp [FGK+ 96] has been designed as a tool-set for the veri ca-
   tion of lotos speci cations. Its model generation and analysis tools, such as Aldebaran
   and Evaluator, have been adapted for if-speci cations and can be used for genera-
   tion, minimization, comparison of state graphs and veri cation of properties speci ed as
   alternation-free -calculus formulas either on-the- y or on an already generated model.
   Diagnostic sequences are computed and can be translated into mscs to be displayed in
   a user friendly manner. Other tools, such as Kronos [Yov97] for the veri cation of real-
   time properties and tgv [FJJV97] for automatic test generation, can work directly on if
   speci cations but have not been used in our experiment.

2.2 The MASCARA Protocol
The mascara (Mobile Access Scheme based on Contention And Reservation for atm) pro-
tocol [DPea98] is a special medium access control (mac) protocol designed for wireless atm
(Asynchronous Transfer Mode) communication and developed by the wand (Wireless atm
Network Demonstrator) consortium [WAN96]. A wireless atm network extends transparently
services to mobile terminals (mts) via a number of geographically distributed access points
(aps). The task of the mascara protocol is to mediate between aps and mts via a wire-
less link. The protocol has a layered structure, where we consider only the highest layer, the
mascara control layer (mcl).

                                                                     3
The Purpose of the MASCARA Control Layer (MCL) is to ensure that mobile
terminals (mts) can initially establish and then maintain an association with an access point
(ap) with good quality and minimal interruptions as long as the atm connection is valid. It
carries out a periodical monitoring of the current radio link quality (gathering the information
about radio link qualities of its neighboring aps to hand-over to in the case of deterioration of
the current association link quality) and switching from one ap to another in the hand-over
procedure. Since several mts communicate through a single ap with the atm core network,
mcl is di erent on the ap and the mt side.
   mcl consists of four parts: dynamic control (dc), steady state control (ss), radio control
(rcl) and generic mascara control (gmc). We describe in detail the dynamic control part,
which we have concentrated on in this veri cation experiment.
Dynamic Control (DC) The main task of the dynamic control (dc) is to set up and
release associations and virtual connections. It consists of the following entities: dynamic
generic agent, association agent and mac virtual channel (mvc) agent.
    The dynamic generic agent is the top-level entity of the dynamic control and its task is as-
sociation management. It dispatches upper layer requests concerning existing associations and
connections to the right association agent, manages mac-layer addresses for the associations,
and informs the upper layer about lost associations.
    The association agent of an mt and its peer entity in the (to be) associated ap are
responsible for managing and supervising a single association. Each association can carry a
variable number of connections via virtual channels. The task of the association agent peers is
to create the virtual channel agents, map the addresses between the atm-layer and the mac-
layer connection identi ers and forward requests. Since each mt is at any time associated
with at most one ap, there exists one association agent per mt. While, whereas each ap has
one association agent for every associated mt.
    An mvc agent of an mt and its peer entity in the ap manage a single connection on
a virtual channel. Beside address mapping from the atm-layer to the mac-layer connection
identi ers, the mvc agents are in charge of resource allocation for the connection they manage
over the wireless channels.

3 Veri cation of the MASCARA Protocol
The overall description of the mascara protocol which we got after completion of the model
obtained by the designers is 300 pages of sdl textual code. This makes it impossible to
envisage to push the \verify" button on the protocol as a whole. We need some methods to
cut the problem into pieces and still get meaningful results.
    This approach is made easier by the fact that mascara is a layered protocol. We con-
centrate the veri cation experiment on the mascara control layer (mcl), for which the sdl
description could be made reasonably complete. Here we report on the veri cation of the
dynamic control (dc). Another veri cation experiment has been carried out on steady state
control (ss) [BDHS00]. In this section, we rst present the experiment system and the as-
sumptions and simpli cations we made. Then, we list some of the correctness properties to be
veri ed and describe in detail the approaches to perform the veri cation. Finally, we present
the veri cation results and discuss some problems encountered.

                                               4
3.1 The Experimental System

                     Architectural view of the experiment system

                                                  Environment
                                (encompassing upper layers and other Control parts)

                        MT Dynamic Control                        AP Dynamic Control

                            Generic                                    Generic
                            Dynamic                                    Dynamic
                            Control                                    Control

                           Association                                Association
                            Agent                                      Agent

                           Virtual                                    Virtual
                           Channel                                    Channel
                           Agent                                      Agent

                       Fig. 2. Architectural view of the experimental system

Architecture. Dynamic control (dc) has an interface to the mascara management layer
(called upper layer here), and exchanges control signals with lower layer entities of the
mascara protocol. For veri cation, we abstract all lower mascara layers to a pair of bu ered
communication channels. These channels can be supposed as reliable as signal losses of the
physical medium are treated in the lower protocol layers. The architecture of the sdl model
used for veri cation can be seen in Figure 2 and consists of the following parts:
    ap Dynamic Control has itself a hierarchical structure: all signals from outside are received
     by the Generic Dynamic Control process, and either treated directly or forwarded to the
     relevant Association Agent, which on turn, either treats the signal itself or forwards it to
     the relevant Channel Agent.
    mt Dynamic Control has the same architecture as ap Dynamic Control, but the imple-
     mented protocols are of an asymmetric nature.
    An \Environment " process which consists of abstract versions of the upper layer and of
     the other mascara Control entities, in particular steady state control.
     We assume that only one mt can be associated and only one connection can be opened,
i.e., only one pair of association agents (aaa/maa) and one pair of mvc agents (ama/mma)

                                                          5
are considered, which is sucient for the correctness properties we have veri ed.
Environment. Veri cation should be carried out under a general environment with realistic
restrictions. As we have not obtained information on the mascara upper layer, we considered
initially an open system with an unconstrained upper layer, which would allow us to obtain
the \most general " veri cation results. But, contrary to lotos, sdl communication is via
unbounded channels. This leads to in nitely growing channel contents and thus an in nite
state model in case that the environment sends requests too often, which is typically the case
in \reactive" systems always ready to to treat requests from the environment.
    The approach we have chosen to provide a more restricted, but still realistic environment
consists in restricting the number of requests it can make per time unit. We assume that
within one time unit, no more than \N " requests can be sent by the environment. Consid-
ering system transitions as eager { that means that time can only progress when no system
transition is enabled { this provides an environment suitable for our purpose. The system
has never to deal with more than \N " requests simultaneously which leads, in the mascara
protocol, to bounded channel contents. The success of the method depends on the use of a
realistic bound. We use N = 4 which is probably realistic, and goes certainly further than
most comparable veri cation experiments.
The role of time. This protocol makes use timeouts, essentially to avoid inde nite waiting
for a response. This type of systems can usually be veri ed as an untimed system, where the
occurrence of a timeout is treated as a non-deterministic event. As we use time as a convenient
means to slow down the environment, we cannot adopt exactly this solution. We consider
  { the transmission delay through the channels between AP and MT as 1 (the value is
     arbitrary) and all other transmission delays as zero and
  { the maximal waiting time for response as 2
  { all system transitions as urgent
This has as consequence that responses and corresponding timeouts occur in the same \time
slice" and thus can occur in any order, and still time can be used to slow down the environment
as it can send in each time slice only a limited number of requests.

3.2 Properties
As it is often the case, the designers of the system did not provide us with requirements that
the system must satisfy. Therefore, we considered
  { generic properties such as deadlocks
  { and for each request from the environment (such as association, deassociation, connection
    opening, connection release,...) a set of \response properties ", where i
In a rst time we veri ed very weak properties, such as \potential response", and the more
the system became debugged, the more we strengthened them. As an example, we show the
strongest response property considered for \association request".
Association Establishment This property refers to association establishment between an
mt and an ap which is obtained by a four-way handshake protocol initiated by mt. The
signals between the system and the upper layer are:

                                              6
{ the request for association establishment (\a req ")1 from the upper layer to mt.
 { the response to association request (\a cnf (rc)") by mt to the upper layer.
 { the indication of association establishment (\a ind ") ap to the upper layer.
the response property we considered for checking the correctness of the association establish-
ment, is the following requirement:
    \Any association request received by the mt is eventually followed by an associa-
    tion con rmation with either a negative or a positive result. In the second case, an
    association indication has already been or will eventually be emitted by the ap."
Expression of Properties We have used several formalisms for the expression of properties:
1. We expressed some properties by sets of temporal logic formulas. Popular temporal log-
   ics are Computational Tree Logic (ctl)[CGP99] and Linear Temporal Logic (ltl)[MP92].
   The model-checker evaluator is based on the use of the alternation-free -calculus[Koz83]
   which is more expressive, but more dicult to use. However, there has been de ned a
   set of macros going beyond the modalities of ctl or ltl, such that most properties can
   be expressed without problems at least by an expert. For veri cation (see Section 3.3),
   we decomposed the above correctness criterion into simpler properties (Table 2). The
   following formula expresses the requirement Req1, where \all ", \inev " and \TRUE " are
   macros which should be intuitive enough.
                            all[a req](inev < a cnf > T RUE )        

                                                                     0

                                             a_req           a_cnf_fail   a_cnf_nr

                                                         1                              tau

                                            a_req        a_cnf_ala        a_cnf_succ
                     0         a_cnf_*
                                               2                                  3

                  a_req      a_cnf_*
                                                                               a_req   a_cnf_ala

                     1        a_req                                               4

                         Fig. 3. Req1 and a re nement of Req1 expressed as LTS

1 A return code is attached with the response signal which indicates positive (e.g. success ) or negative
  (e.g. failed, already associated or no response ) result of the corresponding association request.

                                                     7
2. ctl and ltl are not powerful enough to express all useful properties. Moreover, they are
    dicult to use by a non expert for the expression of complex state and event sequencing
    properties often required for protocols, especially if they are not covered by the set of
    macros. Finite automata are another formalisms for the expression of properties which
    is powerful yet relatively easy to use. In our tools we use labeled transition systems lts,
    where the transition labels are signal inputs and outputs, possibly with their parameters
    (exchanged between the system and the environment or within the system itself). Figure 3
    shows on the left side an LTS expressing Req1 of Table 2 and on the right side a re nement
    of it. This re ned version, which corresponds more to the really expected behaviour is to
    express as an LTS than as a temporal logic formula.
 3. We have tried to apply so called \visual veri cation " which gives often very satisfactory
    results. It consists in \computing " the exact property of the system with respect to a set
    of observed signals: all unobservable signals are hided and the (completely constructed)
    state-graph is minimized with respect to an appropriate equivalence relation, such as
    observational[Mil80] or safety[BFG+ 91] equivalence. In this particular protocol, the ob-
    tained minimal state-graphs were most of the time still too complicated to be inspected
    visually.
 4. We have used Message Sequence Charts (MSC). But we have not created them ourselves
    (in order to express negations of universal properties) but we have generated them from
    diagnostic sequences, showing the violation of some property, generated by our veri cation
    tools. In Figure 5 an example of such a \diagnostic MSC" can be found.

3.3 Veri cation Methodology
Given a property ' and a system , described as a parallel composition of a number of
                                      S

subsystems i , the goal of model checking is to verify whether 1
            S                                                     S         n = ' holds.
                                                                      k  k S   j

    It is well-known that the size of the state graph grows exponentially with the number of
components i (and also the number of variables). For the mascara protocol, even if only
             S

a single association and a single connection is considered, the state space is too large to be
analyzed without application of any reduction technique.
    We combined the use of all reduction techniques available in our tools and applied them in
the order depicted in Figure 4. We explain the results observed using the di erent techniques
in the following paragraphs.

Static Analysis Reduction Techniques: static analysis techniques is applied at the pro-
gram level to reduce the number of states and transitions of the model associated with the
speci cation and thus make model checking feasible:
 1. Dead variable analysis transforms an if speci cation into an equivalent one by adding
    systematic reset statements of \dead " variables. A variable is \dead " at some control
    point if its value is not used before it is assigned again. This transformation preserves
    all event-oriented properties of the original speci cation while the global state space and
    consequently the exploration time are reduced.
 2. Program slicing automatically extracts portions of a program relevant for a speci c prop-
    erty, called slicing criterion : for example, a set of variables or signals at program points
    of interest for the given correctness property. The reduction is obtained by eliminating

                                               8
IF2IF
                  SDL        SDL2IF              IF                   static analysis
                                                                      (LIVE and SLICE)
                                                                                                     IF

                                                                                                 Partial-order
                                                                                                  Reduction

                         Debug         On-the-Fly
                                      Model Checking
                                       (debug phase)

                                            Compositional Verification             Compositional Verification
                                                  Explicit Generation                Decomposition of properties
                                                           +
                                                      Minimization                   into a set of local properties
                                                (for global properties)                  (for local properties)

                        Fig. 4. Overview of the veri cation methodology

    program parts which do not in uence the slicing criterion. There is a di erent model for
    each property (or a set of properties). This transformation preserves safety properties
    depending only on the slicing criterion, while it results smaller if-program.
These reductions are performed on the structural program level description of the system,
before model generation and their complexity is completely unproblematic. They can, and
should, be always applied, independently of the veri cation method or tool being used later
on.

Partial Order Reduction [God96,GKPP94] is a method which consists in verifying prop-
erties of a concurrent system without exploring all interleavings of concurrent executions of
independent transitions. It preserves properties on orderings of events as long as they are
considered dependent. A simple version of this method has been implemented in the if tool-
set. In order to use partial order reduction jointly with compositional techniques, we need to
consider all signal input from the \environment " as dependent, no matter the property to be
veri ed. It is well-known that partial order reduction allows a signi cant reduction of the size
of the state-graph, and should therefore always be applied during generation or traversal of
the model.

Atomicity Reduction A well-known reduction method consists in considering as \model
steps" sequences of internal steps. This is correct as long as each sequence contains at most
one read or write action of a global variable and at most one modi cation of observable
variables. sdl greatly facilitates the use of this method: transitions start reading a signal
from a message bu er, and then execute a set of actions consisting in local assignments and
signal outputs. All properties we consider are expressed in terms of signal inputs and outputs
and in Mascara there are never two observable outputs sent within a single sdl transition;
thus we can consider complete sdl transitions as atomic steps. The reduction obtained by
this method is in general tremendous. As it is applied by default in the step-function of the
if tool-set, we can not show its e ect.

                                                        9
On-the-Fly Model Checking: In \on-the- y " model checking [JJ89b,FM91,Hol91] ver-
i cation is performed during a possibly exhaustive traversal of the model. This method is
very helpful, in particular at the rst stage of veri cation for the debugging of the initial
speci cation, as it exposes fast many errors and omissions, even of systems which cannot
be veri ed completely. It should be noted, however, that only for very simple safety proper-
ties, the underlying model of the on-the- y analysis has the same size as the system model
alone. For more complex properties, on-the- y veri cation explores a model which can be
signi cantly bigger than the system model alone, and some of the advantage of not storing
transitions vanishes. In the particular case of the Mascara protocol, there was no veri cation
of a non-trivial property that we could do on-the- y, but for which we could not generate the
state graph.

Compositional Veri cation: We have applied two di erent types of compositional ver-
i cation. The rst one is based on property decomposition [Kur94], and the second one is
based on compositional generation of a state graph minimized with respect to a behavioral
equivalence [GS90]. For the application of both methods, we split the system into smaller
functional parts, namely, ap dynamic control and mt dynamic control.
1. a) decompose a global property of a system into a set of local properties of the considered
       subsystems;
    b) verify each local property on the corresponding subsystem | using a particular en-
       vironment representing an abstraction of the remaining subsystems.
   All safety properties which hold on a small con guration hold also on the complete system.
   This method is very convenient to use, under the condition that the global properties can
   be decomposed and that it is sucient to include a very abstract view of the neglected
   subsystems. For example, Req1 Req2, Req3a and Req3b of Table 2 below, are such local
   properties of mt which can be veri ed on a state graph, generated by abstracting the
   ap part almost as the Chaos process (making sure however that it is not too active). see
   Table 1.
2. a) generate the state graph of each subsystem (ap and mt) separately, considering the
       same weak abstraction of the other subsystem as in the rst method, and reduce it
       with respect to weak bisimulation using the Aldebaran tool;
    b) apply parallel composition on the reduced models (as communication between ap and
       mt is via a pair of bu ers, these bu ers are the global variables of the system and
       need to be considered as such for parallel composition [KM00])
    c) verify the global correctness properties on the generated global model.
   This method preserves all safety properties on observable events. Req3 of Table 2 below,
   for example, can be evaluated on the state graph DC1 mentioned in Table 1.
    The rst method allows to work with smaller models than the second one as no abstraction
of the global state graph need to be constructed. Unfortunately, it can sometimes be quite
dicult to nd an appropriate decomposition of properties and to provide a useful abstraction
of the \non-considered parts " of the system. For example, the decomposition of Req3 into
Req3a and Req3b is only correct if the communication channels between ap and mt can
be considered as reliable. Notice that the second method needs not to rely on a correct

                                             10
environment abstraction [GS90], but this variant is not implemented in our tool for systems
communicating through asynchronous bu ers.

3.4 Complexity
Table 1 gives an overview of a subset of the state graphs we have generated using di erent
reduction techniques and allows to compare their sizes.
Execution Time With respect to execution time, the following observation can be made:
execution times are roughly proportional to the size of the generated graphs, which means
that the di erent reduction methods do not introduce any signi cant overhead. For static
analysis reduction this result is not surprising. For partial order reduction it is the case be-
cause we use a simple static dependency relation. Table 1 shows only minimization results
for relatively small graphs (ap4a and mt4a) so that minimization time is small anyway. Nev-
ertheless, it can be seen that minimization for observational equivalence is more expensive
than for safety equivalence, as the computation of the transitive closure transition relation
\ a " is required (where  represents a non-observable and a an observable transition).
      

State Graph Size We can see that application of dead variable analysis (Live) and partial
order reduction (po) alone reduces the original state graph by 1 to 2 orders of magnitude.
The combination of Live and po gives more than the combined reduction of each of these
techniques applied in isolation. Notice that for ap, the eciency of po and Live are about the
same, whereas for mt, Live performs better; in other case studies we also had the situation
where po performed better, so that one can say that with a negligible cost, applying them
together, most of time, one obtains good reduction (here 3 orders of magnitude)
    Obviously the reduction obtained by the application of slicing depends heavily on the con-
sidered properties, and it is impossible to make general statements. In our case-study, we get
similar results when slicing according to the 4 main sub-protocols (1 to 2 additional orders of
magnitude); connection opening is more complicated than the others (it involves more signal
exchanges than the others) and thus we get a bit less reduction.
It was impossible to generate or verify on-the- y the state graph of the global system as a
whole, thus we started to consider ap and mt in isolation (see rst two parts of the Table 1).
Finally, we were able to compositionally generate a reduced model of the global system using
compositional generation, under the condition to use both Live and partial order reduction
for the generation of the subsystems.

3.5 Veri cation Results
We did a large number of veri cation experiments with increasing complexity. Initially,
many deadlocks were found which were mainly due to the interaction the di erent \re-
quest/response " sub-protocols. It should also be mentioned that the feature of implicit (that
is silent) discarding unexpected signals in sdl made the analysis of the generated diagnostic
sequences of deadlock traces more dicult. Using a di erent translation from sdl to if, this
problem has disappeared.

                                              11
Table 1. State graphs of the dynamic control

     Entities      Generation Approaches                 N. of Tran. N. of Stat.        Time
                                                                                     (hh:mm:ss)
                   ap1: Direct generation                  30 689 244    7 308 400       3:27:35
                   ap2: Partial-order reduction alone       1 807 095      895 249         37:26
                   ap3a: live optimization alone            1 536 699      351 202         12:22
                   ap3b: Minimization of ap3a
                    (strong bisimulation)                    1 189 032    265 888          5:27
                    ap4a: live + Partial-order                  52 983     28 069          1:53
                    ap4b: Minimization of ap4a
         AP         (strong bisimulation)                       38 952     20 312            18
 Dynamic Control ap4c: Minimization of ap4a
 (with an abstract (hide/rename + observ. equivalence)          18 521     11 265          1:04
version of MT part) ap4d: Minimization of ap4a
                    (hide/rename + safety equivalence)          12 210      3 502            22
                                        ap5a: Association
                    ap5: slice + live Establishment             12 664      4 556             9
                    (w.r.t. properties) ap5b: Deassociation     10 739      3 940             5
                                        ap5c: Conn. Open        36 603     11 616            28
                                        ap5d: Conn. Release     15 958      5 636             9
                                        ap6a: Association
                    ap6: slice + live Establishment              2 885       1 630             3
                    + Partial-order ap6b: Deassociation          2 972       1 703             3
                    (w.r.t. properties) ap6c: Conn. Open         8 099       4 583             9
                                        ap6d: Conn. Release      4 262       2 476             5
                    mt1: Direct generation                  12 811 961   4 388 765       2:51:58
                    mt2: Partial-order reduction alone       7 433 859   3 099 928       1:30:57
                    mt3a: live optimization alone              325 312      63 628          1:03
                    mt3b: Minimization of mt3a
                    (strong bisimulation)                      246 970     47 489          1:37
                    mt4a: live + Partial-order                  20 913      6 580             7
                    mt4b: Minimization of mt4a
        MT          (strong bisimulation)                       12 241      3 927             8
 Dynamic Control mt4c: Minimization of mt4a
 (with an abstract (hide/rename + observ. equivalence)           1 804      1 148            13
version of AP part) mt4d: Minimization of mt4a
                    (hide/rename + safety equivalence)           1 380        499             3
                                        mt5a: Association
                    mt5: slice + live Establishment             16 854      4 018             5
                    (w.r.t. properties) mt5b: Deassociation     16 522      3 967             5
                                        mt5c: Conn. Open        15 823      3 754             4
                                        mt5d: Conn. Release     16 135      3 820             4
                                        mt6a: Association
                    mt6: slice + live Establishment              2 845        977             3
                    + Partial-order mt6b: Deassociation          2 411        985             2
                    (w.r.t. properties) mt6c: Conn. Open         2 801        969             2
                                        mt6d: Conn. Release      2 162        855             2
 Dynamic Control dc1: Composition of models
   ( AP + MT ) (ap4c  mt4c)                                 1 142 215    218 130             {
                                              12
As we had obtained almost no information on the environment of the mascara layer,
we considered initially the case where the request from the environment can be sent in any
order. This lead to a number of error traces which we considered to be \probably because
of too loose assumptions on the environment" and we added corresponding restrictions for
subsequent veri cations. The graphs mentioned in Table 1 have been obtained using the most
restrictive environment.

                           Property: Association Establishment
Req1. After reception of an association request by mt, an association con r- TRUE
       mation with either positive or negative return value will be eventually
       sent by mt to the upper layer.
Req2. After reception of an association request by mt, there exists an execu-    TRUE
       tion path where an association con rmation with positive return value
       is sent by mt to the upper layer.
Req3. Whenever the association con rmation with positive return value is         FALSE
       sent by mt, an association indication will be or has already been sent
       by ap to the upper layer.
Req3a. Whenever ap receives the third handshake message                          TRUE
       (MPDU MT AP addr received), it will eventually send the fourth
       handshake message (MPDU AP MT Assoc ack) to mt, and an
       indication of the association (a ind) to the upper layer.
Req3b. Whenever mt receives the fourth handshake message                         FALSE
       (MPDU AP MT Assoc ack) from ap, it will eventually send a
       successful con rmation (a cnf succ) to the upper layer.
            Table 2. Properties and Veri cation results for Association Establishment

   Table 2 lists the veri cation results for the properties concerning association establishment.
We performed the veri cation in an incremental manner, starting with weak properties, weaker
than those mentioned in the table, for each subsystem (ap and mt), and nally ending up
with the strong properties of the table which we veri ed either on the relevant subsystem or
on the reduced version of the global system.
   The local property Req3b (as well as the global property Req3 ) does not hold. A diagnostic
was produced by the tool Evaluator. Figure 5 gives an msc scenario of such a trace. Its
analysis shows that this violation occurs when a deassociation request is sent before the
association has been con rmed. In case of a deassociation request, a negative association
con rmation is sent to the environment independently of the success of the handshake protocol
with ap; and this is a correct behaviour. Thus, Req3a should be replaced by the following
weaker requirement (which holds):
    When mt receives an MPDU AP MT Assoc ack from ap, it will eventually a success-
    ful con rmation (a cnf succ) to the upper layer, except if it has already received or
    meanwhile receives a deassociation request from the upper layer.

                                               13
Fig. 5. MSC showing the non satisfaction of Req3b

4 Conclusion and Perspectives
In this paper, we have presented an experiment report on the veri cation of an industrial
atm protocol. The aim of this veri cation exercise was much less the actual veri cation of
the protocol, than rather to experiment and improve the veri cation facilities of the if tool-
set and to analyze the diculties occurring with such a big protocol and how to deal with
them. We believe that we have at least partially succeeded. The main diculties that we
encountered together with some responses or some to-do list are the following ones, in the
order in which they appeared:
1. How to extract with a reasonable e ort a subsystem from a large sdl description (such as
   a single layer from a whole protocol stack)? The fact that we did not enlarge veri cation
   from the initially considered sub-system to a larger subsystem is partially due to the fact
   that it is such a time consuming hand-work to cut large sdl descriptions in pieces, or to
   recombine separately modi ed subsystems at a later stage. Hopefully, the integration of
   on one hand UML oriented features in sdl design tools, which allow to trace interface
   changes, and on the other hand static analysis methods allowing to \cut out" subsystems
   in a clean manner, will eliminate this problem.
2. How to get reasonable abstraction of the neglected parts of the system? In a protocol
   stack,
     { the lower layers can often easily be abstracted by communication channels with par-
       ticular properties: they may be reliable or lossy, ordered or unordered, delayable or
       immediate.
     { The upper layers can often be considered as unconstraint or only weak order con-
       straints are necessary, a part from the fact that the ooding of the system with

                                              14
in nitely fast sequences of requests must be avoided in order to make state space
          exploration tractable. Fortunately, for the veri cation of safety properties it is always
          reasonable to bound the number of requests of the upper layer per time unit.
     For other subsystems which are not related in such a simple way with the subsystem
     under study, slicing is one way to get a simpli ed description, but in our example this
     was not sucient. General abstraction techniques as those implemented in the InVest tool
     [BLO98] should be connected with if.
3.   How to get requirements? A part from \deadlock-freedom", there exist only few \generic"
     properties which must hold for any system. Communication protocols, can often be viewed
     as reactive systems which must react \in an appropriate way" to a number of \requests"
     from the environment; moreover this is true for every sub-layer of the protocol. In an
     ideal case, the designer should be able to help in expressing the appropriate \response
     properties". In absence of help we used the following strategy, which turned out to work
     quite well: we started with very weak response properties and strengthened them as long
     as they hold. When we found a violated property, we analyzed a number of diagnostic
     sequences (or graphs) produced by the model-checkers in order to nd out if it was likely
     to be
       { a real problem of the system,
       { a too loose environment
       { or a too strong property
     and we made corresponding changes.
4.   How to express properties? For simple properties, Temporal Logic is very convenient, but
     for more complicated ones, for example taking into account a number of exceptions under
     which the desired response need not to occur, temporal logic is cumbersome. Labeled
     transition systems allow to express more complicated properties on message exchanges.
     MSCs express the existence of sequences with certain characteristics, and are therefore
     more appropriate for the representation of \bad scenarios" or \never claims". We believe
     that a generalization of MSCs, such as Live Sequence Charts [DH99], could be very useful.
5.   How to analyze negative veri cation results? In the case where the violation of a prop-
     erty is due to (a set of) execution sequences, we translated these sequences into message
     sequence charts which we than replayed on the sdl speci cation using a facility of Ob-
     ject geode. This was convenient as long the sequences were not too long. Using an ab-
     straction criterion makes the sequences shorter, but introduces non-determinism, which
     is another source of complexity, and hides sometimes away the problematic point. Our
     experience is probably not very encouraging in this point: we found that only once we
     had a good understanding of the protocol, we could detect subtle errors with a reasonable
     e ort.
6.   How far can we go with system veri cation? We hope that we have demonstrated that
     using an appropriate strategy, we can verify automatically reasonably small subsystems
     or components of large systems. For the veri cation of global properties of large systems,
     automatic veri cation using state space enumeration, combined with whatever reduction
     strategies, seems out of reach. To go a step further we applied two | out of the large
     number of compositional approaches proposed in the literature | which could be applied
     using the facilities of our tool-set.
       { compositional construction of a state-graph reduced with respect to some equivalence
          relation. Our results show that this method will probably not scale, unless the inter-

                                                15
faces between the subsystems are very concise, or we can provide automatic means
       for getting precise enough abstractions of large parts of a system.
     { compositional veri cation based on property decomposition. We believe that this
       method can scale, even if there are at least two problems which can make its ap-
       plication dicult:
         - the decomposition of a global system with a large number of subsystems can be
           very hard (we applied it to a system with only two subsystem and a very simple
           communication structure)
         - as for the rst method an abstraction of the environment of the considered sub-
           system is needed, even if one can hope that less concise abstractions are enough.

Acknowledgments
We gratefully acknowledge Telelogic for giving us access to their Objectgeode sdl envi-
ronment. We would also like to thank Marius Bozga, Lucian Ghirvu and Laurent Mounier for
fruitful discussion and kind help during the veri cation experiment.

References
[BB88]     T. Bolognesi and E. Brinksma. Introduction to the ISO Speci cation Language LOTOS.
           Computer Networks and ISDN Systems, 14(1):25{29, January 1988.
[BCM+ 90] J.R. Burch, E.M. Clarke, K.L. McMillan, D.L. Dill, and J. Hwang. Symbolic model
           checking: 1020 states and beyond. In Proceedings of the International Conference on
           Logic in Computer Science'90, 1990.
[BDHS00] D. Bosnacki, D. Dams, L. Holenderski, and N. Sidorova. Model Checking SDL with SPIN.
           In Proceedings of TACAS'2000, Berlin, Germany, LNCS, 2000.
[BFG+ 91] A. Bouajjani, J.Cl. Fernandez, S. Graf, C. Rodriguez, and J. Sifakis. Safety for Branching
           Time Semantics. In 18th ICALP, number 510 in LNCS, July 1991.
[BFG+ 99a] M. Bozga, J.-C. Fernandez, L. Ghirvu, S. Graf, J.P. Krimm, and L. Mounier. IF: An
           Intermediate Representation and Validation Environment for Timed Asynchronous Sys-
           tems. In Proceedings of FM'99, Toulouse, France, LNCS, 1999.
[BFG+ 99b] M. Bozga, J.-C. Fernandez, L. Ghirvu, S. Graf, J.P. Krimm, L. Mounier, and J. Sifakis.
           IF: An Intermediate Representation for SDL and its Applications. In Proceedings of
           SDL-FORUM'99, Montreal, Canada, June 1999.
[BFG00a] M. Bozga, J-C. Fernandez, and L. Ghirvu. Using Static Analysis to Improve Automatic
           Test Generation. In Proceedings of TACAS'2000, Berlin, Germany, LNCS, 2000.
[BFG+ 00b] M. Bozga, J.Cl. Fernandez, L. Ghirvu, S. Graf, J.P. Krimm, and L. Mounier. IF: A
           Validation Environment for Timed Asynchronous Systems. In E.A. Emerson and A.P.
           Sistla, editors, Proceedings of CAV'00 (Chicago, USA), LNCS. Springer, July 2000.
[BLO98] S. Bensalem, Y. Lakhnech, and S. Owre. Computing Abstractions of In nite State Sys-
           tems Compositionally and Automatically. In A. Hu and M. Vardi, editors, Proceedings
           of CAV'98 (Vancouver, Canada), volume 1427 of LNCS, pages 319{331, June 1998.
[BST97] S. Bornot, J. Sifakis, and S. Tripakis. Modeling Urgency in Timed Systems. In Interna-
           tional Symposium: Compositionality - The Signi cant Di erence (Holstein, Germany),
           volume 1536 of LNCS. Springer, September 1997.
[CE81]     E.M. Clarke and E.A. Emerson. Design and Synthesis of Synchronisation Skeletons using
           Branching Time Temporal Logic. In Proceedings of IBM Workshop on Logics of Programs,
           volume 131 of LNCS, 1981.

                                                16
[CGL94]     E.M. Clarke, O. Grumberg, and D.E. Long. Model checking and abstraction. ACM
            Transactions on Programming Languages and Systems, 16(5):1512{1542, September 1994.
[CGP99]     E.M. Clarke, O. Grumberg, and D.A. Peled. Model Checking. The MIT Press, 1999.
[DH99]      W. Damm and D. Harel. Lscs: Breathing live into message sequence charts. In
            FMOODS'99 IFIP TC6/WG6.1 Third International Conference on Formal Methods for
            Open Object-Based Distributed Systems, 1999.
[DPea98]    I. Dravapoulos, N. Pronios, and S. Denazis et al. The Magic WAND, Deliverable 3D5,
            Wireless ATM MAC, Final Report, August 1998.
[ES94]      E. A. Emerson and A. P. Sistla. Utilizing symmetrie when model checking under fairness
            assumptions. submitted to POPL95, 1994.
[FGK+ 96]   J.-C. Fernandez, H. Garavel, A. Kerbrat, R. Mateescu, L. Mounier, and M. Sighireanu.
            CADP: A Protocol Validation and Veri cation Toolbox. In Proceedings of CAV'96, New
            Brunswick, USA, volume 1102 of LNCS, July 1996.
[FJJV97]    J.C. Fernandez, C. Jard, T. Jeron, and C. Viho. An Experiment in Automatic Gen-
            eration of Test Suites for Protocols with Veri cation Technology. Science of Computer
            Programming, 29, 1997.
[FM91]      J.-C. Fernandez and L. Mounier. \On the y" Veri cation of Behavioural Equivalences
            and Preorders. In Workshop on Computer-Aided Veri cation, Aalborg University, Den-
            mark, LNCS, July 1991.
[GKPP94]    R. Gerth, R. Kuiper, D. Peled, and W. Penczek. A partial order approach to branching
            time logic model checking, April 1994.
[God96]     P. Godefroid. Partial-Order Methods for the Veri cation of Concurrent Systems - An
            Approach to the State Explosion Problem, volume 1032 of LNCS. Springer, January
            1996.
[GS90]      S. Graf and B. Ste en. Compositional Minimisation of Finite State Processes. In Pro-
            ceedings of CAV'90, Rutgers, number 531 in LNCS, 1990.
[Hol90]     G. J. Holzmann. Algorithms for automated protocol validation. AT&T technical Journal,
            60(1):32{44, January 1990.
[Hol91]     G.J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall Software
            Series, 1991.
[IT94]      ITU-T. Recommendation Z.100. Speci cation and Description Language (SDL). 1994.
[JJ89a]     C. Jard and T. Jeron. On-Line Model Checking for Finite Linear Temporal Logic Spec-
            i cations. In Workshop on Automatic Veri cation Methods for Finite State Systems,
            Grenoble. LNCS 407, Springer Verlag, 1989.
[JJ89b]     C. Jard and T. Jeron. On-Line Model-Checking for Finite Linear Temporal Logic Speci-
              cations. In J. Sifakis, editor, Proceedings of the 1st Workshop on Automatic Veri cation
            Methods for Finite State Systems (Grenoble, France), volume 407 of LNCS, pages 189{
            196. Springer Verlag, Juin 1989.
[KM00]      J.P. Krimm and L. Mounier. Compositional State Space Generation with Partial Order
            Reductions for Asynchronous Communicating Systems. In Proceedings of TACAS'2000,
            Berlin, Germany, LNCS, 2000.
[Koz83]     D. Kozen. Results on the Propositional -Calculus. In Theoretical Computer Science.
            North-Holland, 1983.
[Kur94]     R.P. Kurshan. Computer-Aided Veri cation of Coordinating Processes: The Automata-
            Theoretic Approach. Princeton University Press, Princeton, New Jersey, 1994.
[LGS+ 95]   C. Loiseaux, S. Graf, J. Sifakis, A. Bouajjani, and S. Bensalem. Property preserving
            abstractions for the veri cation of concurrent systems. Formal Methods in System Design,
            6, Issue 1:11{44, jan 1995. rst published in CAV'92, LNCS 663.
[McM93]     K.L. McMillan. Symbolic Model Checking: an Approach to the State Explosion Problem.
            Kluwer Academic Publisher, 1993.

                                                 17
[Mil80] R. Milner. A Calculus of Communicating Systems, volume 92 of Lecture Notes in Com-
        puter Science. Springer-Verlag, 1980.
[MP92] Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems.
        Springer-Verlag, 1992.
[QS82]  J.P. Queille and J. Sifakis. Speci cation and Veri cation of Concurrent Programs in
        CESAR. In International Symposium on Programming, volume 137 of LNCS, 1982.
[TA99]  Sweden Telelogic A.B., Malmo. Telelogic TAU SDL suite Reference Manuals.
        http://www.telelogic.se, 1999.
[Ver96] Verilog.           ObjectGEODE SDL Simulator - Reference Manual.
        http://www.verilogusa.com/products/geode.htm, 1996.
[WAN96] WAND.            Magic WAND - Wireless ATM Network Demonstrator.
        http://www.tik.ee.ethz.ch/wand, 1996.
[Yov97] S. Yovine. KRONOS: A Veri cation Tool for Real-Time Systems. Software Tools for
        Technology Transfer, 1(1+2):123{133, December 1997.

                                            18
You can also read