Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31b90347 authored by Bart Van Assche's avatar Bart Van Assche Committed by Roland Dreier
Browse files

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: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 93079162
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
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 −0
Original line number Diff line number Diff line
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()" ];
}