 Coecer) V76frame(V76para) (XIDresp : 0) TO DLCs(V76para/ VIA dlcDL V76frame L Establnd I ! DLCi) (DM (. DLCpeer.) (DLCpeer) VIA dlcDL We pass the frame ready to the corresponding waitEstabResp instance of process DLC ( DISC ( XIDresp ) Saves V76frame(V76para) L_EstabResp V76frame V76frame TO DLCs(V76para) L_SetparmConf DISC DLCi) Creates (DLCpeer, False instance of process DLC The array DLCs Stores into the DLCs(DLCpeer) table the PID of the index : OFFSPRING instance just created. ready Figure 3.14 The process dispatch part 1 and illustrated in Figure 3.14. The table in the figure shows an example in which one DLC exists, of number 0. This array is necessary to get the Pid of a DLC process instance from its DLC number, to forward a signal to it. After this creation, dispatch goes to state waitUA, waiting for the UA frame from its peer. From the state waitUA, if a V76frame signal containing a UA arrives, we forward it to the corresponding instance of process DLC, using the array of Pids DLCs to get its Pid from the DLC number present in the UA, as shown in Figure 3.13. Figure 3.14 shows the second part of process dispatch: when receiving a V76frame (from the peer), we use a decision to get the kind of element actually present in the received parameter V76para. If the field present is equal to SABME, we get the DLC number received in V76para and test if this number corresponds to a free DLC in the Array DLCs: Null in the Array means that no instance of process DLC exists. We send an L EstabInd to the service user and wait The V.76 Protocol Case Study 35 for its response. On receiving the L _EstabResp, we create the instance of process DLC, passing parameters DLCpeer (its DLC number) and False (meaning that this side of the connection is not the originator of the L_EstabReq) to it. Finally, we store into the array DLCs the Pid of the instance just created and go to state ready. Figure 3.15 and 3.16 show the contents of process DLC, dynamically created by process dispatch. When an instance of process DLC starts, if