diff options
author | Bart Van Assche <bvanassche@acm.org> | 2013-12-11 11:08:43 -0500 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-01-21 13:46:17 -0500 |
commit | 31b90347dc9fb7649a8dc3ffefa52771ac30e10b (patch) | |
tree | 644fce867ee0e85d4d9ec8e77713ad212c5c3345 /Documentation/scsi | |
parent | 93079162bf0ed2934c7b0c3ee93ba894df8fb3cd (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/Makefile | 7 | ||||
-rw-r--r-- | Documentation/scsi/scsi_transport_srp/rport_state_diagram.dot | 26 |
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 @@ | |||
1 | all: rport_state_diagram.svg rport_state_diagram.png | ||
2 | |||
3 | rport_state_diagram.svg: rport_state_diagram.dot | ||
4 | dot -Tsvg -o $@ $< | ||
5 | |||
6 | rport_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 @@ | |||
1 | digraph 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 | } | ||