LinkState and handshake life cycle

stateDiagram-v2
[*] --> Stopped
Stopped --> Waiting: reset_session
Waiting --> Connected: transport connected
Connected --> Handshaking: mark_handshake_started
Handshaking --> Ready: mark_handshake_complete
Handshaking --> Error: handshake_expired or note_error
Ready --> Waiting: mark_disconnected
Error --> Waiting: reset or retry
Waiting --> Stopped: stop_session

The Observed states are Stopped, Waiting, Connected, Handshaking, Ready, and Error.