VFSM: Failover
VFSM type: Failover(user vfsm)
The Failover state machine is part of the DIAMETER protocal (RFC 3588) which requires the failover mechanism. The failover is based on a single timer (watchdog) and its algorithm is specified in the RFC 3539 document.
The task of the state machine is to detect transport failures and is based on a cyclic exchange of Device-WatchDog-Request (DWR) and Device-Watchdog-Answer (DWA).
If the connection is down the state machine continues periodically to reopen the connection.
If the connection is succesfully opened a connection validation is required before the connection is returned to service; this is done via exchange of three watchdog messages.
Prefix: FAI
IOid name: MyCmd
(type: CMD-IN)
-->Virtual Input: Cmd_Start
(1)
-->Virtual Input: Cmd_Stop
(2)
IOid name: Event
(type: CMD-IN)
-->Virtual Input: Connection_down
(52)
-->Virtual Input: Connection_up
(51)
-->Virtual Input: Receive_DWA
(24)
-->Virtual Input: Receive_Non_DWA
(20)
-->Virtual Output: Event_Clear
(0)
IOid name: ConnectUnitCmd
(type: CMD-OUT)
-->Virtual Output: AttemptOpen
(42)
-->Virtual Output: CloseConnection
(43)
-->Virtual Output: Failback
(44)
-->Virtual Output: Failover
(45)
-->Virtual Output: SendWatchdog
(41)
-->Virtual Output: UnitCmd_Clear
(0)
IOid name: WDTimer
(type: TI)
-->Virtual Input: WDTimer_Expired
(OVER)
-->Virtual Output: WDTimer_Stop
(Stop)
IOid name: Ack
(type: XDA)
-->Virtual Input: UnitCmd_Ack
(1)
-->Virtual Output: UnitCmdAck_Clear
(0)
IOid name: TWINIT
(type: PAR)
IOid name: WDTime
(type: PAR)
IOid name: SetWDTimer
(type: OFUN)
-->Virtual Output: SetWatchdog
(46)
Always: input actions valid in each state:
State transition table, state '
INIT
':
State transition table, state '
INITIAL
':
State transition table, state '
OKAY_NoPending
':
State transition table, state '
_B_OKAY_Pending
':
State transition table, state '
_B_SUSPECT
':
State transition table, state '
DOWN
':
State transition table, state '
_B_PAUSE
':
State transition table, state '
REOPEN_Pending
':
State transition table, state '
REOPEN_NoPending
':
State transition table, state '
_B_REOPEN1_Pending
':
State transition table, state '
REOPEN1_NoPending
':
State transition table, state '
_B_REOPEN2_Pending
':
Total number of states: 13
|