| 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()" ]; |
| } |