rport_state_diagram.dot 1.3 KB

123456789101112131415161718192021222324252627
  1. digraph srp_initiator {
  2. node [shape = doublecircle]; running lost;
  3. node [shape = circle];
  4. {
  5. rank = min;
  6. running_rta [ label = "running;\nreconnect\ntimer\nactive" ];
  7. };
  8. running [ label = "running;\nreconnect\ntimer\nstopped" ];
  9. blocked;
  10. failfast [ label = "fail I/O\nfast" ];
  11. lost;
  12. running -> running_rta [ label = "fast_io_fail_tmo = off and\ndev_loss_tmo = off;\nsrp_start_tl_fail_timers()" ];
  13. running_rta -> running [ label = "fast_io_fail_tmo = off and\ndev_loss_tmo = off;\nreconnecting succeeded" ];
  14. running -> blocked [ label = "fast_io_fail_tmo >= 0 or\ndev_loss_tmo >= 0;\nsrp_start_tl_fail_timers()" ];
  15. running -> failfast [ label = "fast_io_fail_tmo = off and\ndev_loss_tmo = off;\nreconnecting failed\n" ];
  16. blocked -> failfast [ label = "fast_io_fail_tmo\nexpired or\nreconnecting\nfailed" ];
  17. blocked -> lost [ label = "dev_loss_tmo\nexpired or\nsrp_stop_rport_timers()" ];
  18. failfast -> lost [ label = "dev_loss_tmo\nexpired or\nsrp_stop_rport_timers()" ];
  19. blocked -> running [ label = "reconnecting\nsucceeded" ];
  20. failfast -> failfast [ label = "reconnecting\nfailed" ];
  21. failfast -> running [ label = "reconnecting\nsucceeded" ];
  22. running -> lost [ label = "srp_stop_rport_timers()" ];
  23. running_rta -> lost [ label = "srp_stop_rport_timers()" ];
  24. }