Commit bc18f4b1 authored by Alex Elder's avatar Alex Elder Committed by Sage Weil

libceph: add some fine ASCII art

Sage liked the state diagram I put in my commit description so
I'm putting it in with the code.
Signed-off-by: default avatarAlex Elder <elder@inktank.com>
Reviewed-by: default avatarSage Weil <sage@inktank.com>
parent 5821bd8c
......@@ -29,7 +29,47 @@
* the sender.
*/
/* State values for ceph_connection->sock_state; NEW is assumed to be 0 */
/*
* We track the state of the socket on a given connection using
* values defined below. The transition to a new socket state is
* handled by a function which verifies we aren't coming from an
* unexpected state.
*
* --------
* | NEW* | transient initial state
* --------
* | con_sock_state_init()
* v
* ----------
* | CLOSED | initialized, but no socket (and no
* ---------- TCP connection)
* ^ \
* | \ con_sock_state_connecting()
* | ----------------------
* | \
* + con_sock_state_closed() \
* |\ \
* | \ \
* | ----------- \
* | | CLOSING | socket event; \
* | ----------- await close \
* | ^ |
* | | |
* | + con_sock_state_closing() |
* | / \ |
* | / --------------- |
* | / \ v
* | / --------------
* | / -----------------| CONNECTING | socket created, TCP
* | | / -------------- connect initiated
* | | | con_sock_state_connected()
* | | v
* -------------
* | CONNECTED | TCP connection established
* -------------
*
* State values for ceph_connection->sock_state; NEW is assumed to be 0.
*/
#define CON_SOCK_STATE_NEW 0 /* -> CLOSED */
#define CON_SOCK_STATE_CLOSED 1 /* -> CONNECTING */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment