V76frame V76para ! present fill Iframe(me, uData, 15) (DISC : (. me VIA peer V76frame( : Iparam) ( DISC) VIA peer waitUAdisc V76frame (UA : (. me .)) CALL CRCok V76frame (V76para) VIA peer (V76para ! !CRC) V76para ! present DLCstopped ( True ) ( False ) ( UA, DM) L Datalnd (me, V76para! I ! data) DLCstopped(me) Figure 3.16 The process DLC part 2 DLCaDL DLCbDL block dataLink V76frame V76frame /* This block models a simplified data-link layer. */ fromA fromB A process [V76frame] V76frame AtoB : toPeer BtoA : toPeer toPeer Figure 3.17 The block dataLink no feature allows to send a received signal to a peer in a situation in which the two sides are identical. It would have been necessary to store Pids and SO on. A simple solution is to use one process for each direction: AtoB receiving signals from DLCa and forwarding them to DLCb, and BtoA receiving signals from DLCb and forwarding them to DLCa. We have instrumented the process type toPeer, shown in Figure 3.18, to introduce faults, to test the robustness of our protocol, for example, to see its reaction when a signal is lost: in The V.76 Protocol Case Study 37 V76frame process type toPeer ready /* Retransmission to peer of received signals, plus introducing faults. */ V76frame(V76par) ready 'Lose the frame ?' V76par V76paramTyp; ( 'No' ) ( 'Yes') V76frame (V76par) V76frame VIA gOut Figure 3.18 The process type toPeer the informal decision 'Lose the frame?', the text between 6 , is not compiled. SDL simulators, upon reaching such a symbol, will prompt the user for the answer to the decision: if she or he selects 'No', signal V76frame is transmitted, otherwise it is not transmitted; it is lost. Interactive Simulation In this chapter, you will learn how to validate the V.76 SDL model using interactive simulation: compiling the SDL model, simulating the main scenarios such as connection establishment, generating MSC simulation traces, detecting, analyzing and correcting bugs, detecting and analyzing nonsimulated symbols and writing scripts to automatize the validation.