Skip to content

Commit

Permalink
scsi_transport_srp: Add rport state diagram
Browse files Browse the repository at this point in the history
Add a diagram in Documentation/scsi/scsi_transport_srp that
illustrates the rport state transitions.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>
  • Loading branch information
bvanassche authored and rolandd committed Jan 21, 2014
1 parent 9307916 commit 31b9034
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
7 changes: 7 additions & 0 deletions Documentation/scsi/scsi_transport_srp/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
all: rport_state_diagram.svg rport_state_diagram.png

rport_state_diagram.svg: rport_state_diagram.dot
dot -Tsvg -o $@ $<

rport_state_diagram.png: rport_state_diagram.dot
dot -Tpng -o $@ $<
26 changes: 26 additions & 0 deletions Documentation/scsi/scsi_transport_srp/rport_state_diagram.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
digraph srp_initiator {
node [shape = doublecircle]; running lost;
node [shape = circle];

{
rank = min;
running_rta [ label = "running;\nreconnect\ntimer\nactive" ];
};
running [ label = "running;\nreconnect\ntimer\nstopped" ];
blocked;
failfast [ label = "fail I/O\nfast" ];
lost;

running -> running_rta [ label = "fast_io_fail_tmo = off and\ndev_loss_tmo = off;\nsrp_start_tl_fail_timers()" ];
running_rta -> running [ label = "fast_io_fail_tmo = off and\ndev_loss_tmo = off;\nreconnecting succeeded" ];
running -> blocked [ label = "fast_io_fail_tmo >= 0 or\ndev_loss_tmo >= 0;\nsrp_start_tl_fail_timers()" ];
running -> failfast [ label = "fast_io_fail_tmo = off and\ndev_loss_tmo = off;\nreconnecting failed\n" ];
blocked -> failfast [ label = "fast_io_fail_tmo\nexpired or\nreconnecting\nfailed" ];
blocked -> lost [ label = "dev_loss_tmo\nexpired or\nsrp_stop_rport_timers()" ];
failfast -> lost [ label = "dev_loss_tmo\nexpired or\nsrp_stop_rport_timers()" ];
blocked -> running [ label = "reconnecting\nsucceeded" ];
failfast -> failfast [ label = "reconnecting\nfailed" ];
failfast -> running [ label = "reconnecting\nsucceeded" ];
running -> lost [ label = "srp_stop_rport_timers()" ];
running_rta -> lost [ label = "srp_stop_rport_timers()" ];
}

0 comments on commit 31b9034

Please sign in to comment.