diff --git a/docs/fsm-full.dot b/docs/fsm-full.dot new file mode 100644 index 0000000..9f99f81 --- /dev/null +++ b/docs/fsm-full.dot @@ -0,0 +1,17 @@ +digraph G { + + label="Booth full FSM"; + fontname="Helvetica"; + fontsize="11"; + compound="true"; + ST_INIT -> ST_CANDIDATE [label="grant"]; + ST_INIT -> ST_FOLLOWER [label="HrtB|UpdE"]; + ST_FOLLOWER -> ST_CANDIDATE [label="VtFr(tkt_drop)\ntkt_lost"]; + ST_LEADER -> ST_FOLLOWER [label="lost_maj"]; + ST_CANDIDATE -> ST_CANDIDATE [label="timeout"]; + ST_CANDIDATE -> ST_LEADER [label="VtFr, timeout"]; + ST_CANDIDATE -> ST_FOLLOWER [label="HrtB|UpdE\nRJC!(outd|valid)"]; + ST_CANDIDATE -> ST_INIT [label="RJC!(outd+no_leader)"]; + ST_LEADER -> ST_INIT [label="Revk"]; + ST_FOLLOWER -> ST_INIT [label="Revk"]; +} diff --git a/docs/fsm-netfail.dot b/docs/fsm-netfail.dot new file mode 100644 index 0000000..fef8413 --- /dev/null +++ b/docs/fsm-netfail.dot @@ -0,0 +1,11 @@ +digraph G { + + label="Booth network failure FSM"; + fontname="Helvetica"; + fontsize="11"; + compound="true"; + ST_FOLLOWER -> ST_CANDIDATE [label="tkt_lost"]; + ST_LEADER -> ST_FOLLOWER [label="tkt_lost"]; + ST_CANDIDATE -> ST_CANDIDATE [label="timeout"]; + ST_CANDIDATE -> ST_LEADER [label="VtFr, timeout"]; +} diff --git a/docs/fsm-normal.dot b/docs/fsm-normal.dot new file mode 100644 index 0000000..61ae618 --- /dev/null +++ b/docs/fsm-normal.dot @@ -0,0 +1,13 @@ +digraph G { + + label="Booth normal process FSM"; + fontname="Helvetica"; + fontsize="11"; + compound="true"; + ST_INIT -> ST_CANDIDATE [label="grant"]; + ST_INIT -> ST_FOLLOWER [label="HrtB|UpdE"]; + ST_CANDIDATE -> ST_LEADER [label="VtFr"]; + ST_LEADER -> ST_INIT [label="Revk"]; + ST_FOLLOWER -> ST_INIT [label="Revk"]; +} +