Issue121

Issue Title Incorrect timer processing in MA state machine
Document: GIST Protocol Specification v10 Section: 6.4
Category: Technical Priority: Must Fix
Status: Closed

Created on 2006-08-17.11:21:17 by reh, last changed 2006-08-31.09:20:47.

Messages
msg351 Author: reh Date: 2006-08-31.09:20:47
Fixed in version 11.
msg344 Author: reh Date: 2006-08-17.11:22:03
This has been fixed by splitting rule 3. The full machine and set of rules is as
follows:

         [Initialisation]       +-----+
    ----------------------------|Birth|
   |                            +-----+
   |                                          tg_RawData[1]
   |                                          || rx_Message[2]
   |                                          || rx_MA-Hello[3]
   |       tg_RawData[5]                      || to_SendHello[4]
   |        --------                             --------
   |       |        V                           |        V
   |       |        V                           |        V
   |      +----------+                         +-----------+
    ---->>| Awaiting |    tg_Connected[6]      | Connected |
    ------|Connection|----------------------->>|           |
   |      +----------+                         +-----------+
   |                                              ^    |
   |                             tg_RawData[1]    ^    |
   |                           || rx_Message[2]   |    |to_NoActivity[7]
   |                                              |    V
   |                                              |    V
   | er_MAConnect[8]  +-----+   to_NoHello[8]  +-----------+
    ---------------->>|Death|<<----------------|   Idle    |
                      +-----+                  |           |
                        ^                      +-----------+
                        ^                       ^        |
                        |                       ^        |
                         ---------------         --------
                         er_MAFailure[8]        rx_MA-Hello[9]
                        (from all states)

               Figure 8: Messaging Association State Machine

   The processing rules are as follows:

   Rule 1:

   pass message to transport layer
   (re)start NoActivity timer
   (re)start SendHello

   Rule 2:

   pass message to Node-SM
   (re)start NoActivity timer

   Rule 3:

   if reply requested
     send MA-Hello
     restart SendHello timer

   Rule 4:

   send MA-Hello message
   restart SendHello timer

   Rule 5:  queue message for later transmission

   Rule 6:

   pass outstanding queued messages to transport layer
   stop any timers controlling connection establishment
   start NoActivity timer
   start SendHello timer

   Rule 7:

   stop NoActivity timer
   stop SendHello timer
   start NoHello timer

   Rule 8:  destroy self

   Rule 9:

   if reply requested
     send MA-Hello
   restart NoHello timer
msg343 Author: reh Date: 2006-08-17.11:21:17
The changes from v9 to v10 applied the fix for AD comment L16 changed the wrong
rule (changed rule 3 but should have changed rule 4). In addition, the rule 3
processing needs to be conditional on whether the state is connected or idle,
since different timers are running in these two cases.
History
Date User Action Args
2006-08-31 09:20:47rehsetstatus: Text Proposed -> Closed
messages: + msg351
2006-08-17 11:22:03rehsetstatus: No Discussion -> Text Proposed
messages: + msg344
2006-08-17 11:21:17rehcreate