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 | } | ||
