aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/scsi
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2013-12-11 11:08:43 -0500
committerRoland Dreier <roland@purestorage.com>2014-01-21 13:46:17 -0500
commit31b90347dc9fb7649a8dc3ffefa52771ac30e10b (patch)
tree644fce867ee0e85d4d9ec8e77713ad212c5c3345 /Documentation/scsi
parent93079162bf0ed2934c7b0c3ee93ba894df8fb3cd (diff)
scsi_transport_srp: Add rport state diagram
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>
Diffstat (limited to 'Documentation/scsi')
-rw-r--r--Documentation/scsi/scsi_transport_srp/Makefile7
-rw-r--r--Documentation/scsi/scsi_transport_srp/rport_state_diagram.dot26
2 files changed, 33 insertions, 0 deletions
diff --git a/Documentation/scsi/scsi_transport_srp/Makefile b/Documentation/scsi/scsi_transport_srp/Makefile
new file mode 100644
index 000000000000..5f6b567e955c
--- /dev/null
+++ b/Documentation/scsi/scsi_transport_srp/Makefile
@@ -0,0 +1,7 @@
1all: rport_state_diagram.svg rport_state_diagram.png
2
3rport_state_diagram.svg: rport_state_diagram.dot
4 dot -Tsvg -o $@ $<
5
6rport_state_diagram.png: rport_state_diagram.dot
7 dot -Tpng -o $@ $<
diff --git a/Documentation/scsi/scsi_transport_srp/rport_state_diagram.dot b/Documentation/scsi/scsi_transport_srp/rport_state_diagram.dot
new file mode 100644
index 000000000000..75d610d6411a
--- /dev/null
+++ b/Documentation/scsi/scsi_transport_srp/rport_state_diagram.dot
@@ -0,0 +1,26 @@
1digraph srp_initiator {
2 node [shape = doublecircle]; running lost;
3 node [shape = circle];
4
5 {
6 rank = min;
7 running_rta [ label = "running;\nreconnect\ntimer\nactive" ];
8 };
9 running [ label = "running;\nreconnect\ntimer\nstopped" ];
10 blocked;
11 failfast [ label = "fail I/O\nfast" ];
12 lost;
13
14 running -> running_rta [ label = "fast_io_fail_tmo = off and\ndev_loss_tmo = off;\nsrp_start_tl_fail_timers()" ];
15 running_rta -> running [ label = "fast_io_fail_tmo = off and\ndev_loss_tmo = off;\nreconnecting succeeded" ];
16 running -> blocked [ label = "fast_io_fail_tmo >= 0 or\ndev_loss_tmo >= 0;\nsrp_start_tl_fail_timers()" ];
17 running -> failfast [ label = "fast_io_fail_tmo = off and\ndev_loss_tmo = off;\nreconnecting failed\n" ];
18 blocked -> failfast [ label = "fast_io_fail_tmo\nexpired or\nreconnecting\nfailed" ];
19 blocked -> lost [ label = "dev_loss_tmo\nexpired or\nsrp_stop_rport_timers()" ];
20 failfast -> lost [ label = "dev_loss_tmo\nexpired or\nsrp_stop_rport_timers()" ];
21 blocked -> running [ label = "reconnecting\nsucceeded" ];
22 failfast -> failfast [ label = "reconnecting\nfailed" ];
23 failfast -> running [ label = "reconnecting\nsucceeded" ];
24 running -> lost [ label = "srp_stop_rport_timers()" ];
25 running_rta -> lost [ label = "srp_stop_rport_timers()" ];
26}