From b89b11d2ef647e2c709255d02d8dcc7fb6bfb4ea Mon Sep 17 00:00:00 2001 From: "matthias.ringwald" Date: Wed, 22 Jun 2011 16:44:15 +0000 Subject: [PATCH] finite state machine diagram for GraphViz --- docs/l2cap.gv | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 docs/l2cap.gv diff --git a/docs/l2cap.gv b/docs/l2cap.gv new file mode 100644 index 000000000..57c94af9d --- /dev/null +++ b/docs/l2cap.gv @@ -0,0 +1,64 @@ +digraph l2cap { + // rankdir=LR; + size="8,5" + // orientation=landscape; + // rotate = 90; + + OPEN [shape=doublecircle]; + CLOSE [shape=doublecircle]; + + // DISCONNECT_REQUEST handling for non-open state + // WAIT_CONNECT_RSP->WILL_SEND_DISCONNECT_RESPONSE [label = "RECEIVED DISCONNECT_REQUEST"]; + // WAIT_CONFIG_REQ_OR_SEND_CONFIG_REQ->WILL_SEND_DISCONNECT_RESPONSE [label = "DISCONNECTION_REQUEST"]; + // WAIT_CONFIG_REQ_RSP_OR_CONFIG_REQ->WILL_SEND_DISCONNECT_RESPONSE [ label = "RECVEIVED DISCONNECTION_REQUEST"]; + // WAIT_CONFIG_REQ->WILL_SEND_DISCONNECT_RESPONSE [label = "RECEIVED DISCONNECTION_REQUEST"]; + // WAIT_CONFIG_REQ_RSP->WILL_SEND_DISCONNECT_RESPONSE [label = "RECEIVED DISCONNECTION_REQUEST"]; + // WAIT_DISCONNECT->WILL_SEND_DISCONNECT_RESPONSE [label = "RECEIVED DISCONNECT_REQUEST"]; + + // l2cap_run + WILL_SEND_CREATE_CONNECTION -> WAIT_CONNECTION_COMPLETE [label = "SEND CREATE CONNECTION"]; + WILL_SEND_CONNECTION_RESPONSE_DECLINE -> CLOSE [label = "SEND CONNECTION_RESPONSE ERR"]; + WILL_SEND_CONNECTION_RESPONSE_ACCEPT -> WAIT_CONFIG_REQ_OR_SEND_CONFIG_REQ [label = "SEND CONNECTION_RESPONSE OK"]; + WILL_SEND_CONNECTION_REQUEST -> WAIT_CONNECT_RSP [label = "SEND CONNECTION_REQUEST"]; + WAIT_CONFIG_REQ_OR_SEND_CONFIG_REQ->WAIT_CONFIG_REQ_RSP_OR_CONFIG_REQ [label="SEND CONFIGURE_REQUEST"]; + WILL_SEND_CONFIG_REQ -> WAIT_CONFIG_REQ_RSP [label = "SEND CONFIGURE_REQUEST"]; + WAIT_CONFIG_REQ_RSP_OR_WILL_SEND_CONFIG_REQ_RSP -> WAIT_CONFIG_REQ_RSP [label = "SEND CONFIGURE_RESPONSE"]; + WILL_SEND_CONFIG_REQ_RSP->OPEN [label="SEND CONFIGURE_RESPONSE"]; + WILL_SEND_CONFIG_REQ_AND_CONFIG_REQ_RSP -> WILL_SEND_CONFIG_REQ [label = "SEND CONFIGURE_RESPONSE"]; + WILL_SEND_DISCONNECT_RESPONSE -> CLOSE [ label = "SEND DISCONNECTION_RESPONSE"]; + WILL_SEND_DISCONNECT_REQUEST -> WAIT_DISCONNECT [label = "SEND DISCONNECTION_REQUEST"]; + + // l2cap_create_channel_internal + CLOSE -> WILL_SEND_CREATE_CONNECTION [label = "l2cap create channel internal"]; + + // l2cap_disconnect_internal + OPEN -> WILL_SEND_DISCONNECT_REQUEST [label = "l2cap disconnect internal"]; + + // l2cap_handle_connection_success_for_addr + WAIT_CONNECTION_COMPLETE->WILL_SEND_CONNECTION_REQUEST [ label = "outgoing,baseband open"]; + + // l2cap_handle_disconnect_request + OPEN -> WILL_SEND_DISCONNECT_RESPONSE [label = "RECEIVED DISCONNECT_REQUEST"]; + + // l2cap_handle_connection_request + CLOSE -> WAIT_CLIENT_ACCEPT_OR_REJECT [label = "RECEIVED CONNECTION REQUEST"]; + + // l2cap_accept_connection_internal + WAIT_CLIENT_ACCEPT_OR_REJECT -> WILL_SEND_CONNECTION_RESPONSE_ACCEPT [ label = "l2cap accept internal"]; + + // l2cap_decline_connection_internal + WAIT_CLIENT_ACCEPT_OR_REJECT -> WILL_SEND_CONNECTION_RESPONSE_DECLINE [ label = "l2cap decline internal"]; + + // l2cap_signaling_handler_channel + WAIT_CONNECT_RSP->WAIT_CONFIG_REQ_OR_SEND_CONFIG_REQ [ label = "CONNECTION_RESPONSE OK"]; + WAIT_CONNECT_RSP->CLOSE [label = "CONNECTION_RESPONSE ERR"]; + WAIT_CONFIG_REQ_OR_SEND_CONFIG_REQ->WILL_SEND_CONFIG_REQ_AND_CONFIG_REQ_RSP [label = "RECEIVE CONFIGURE_REQUEST"]; + WAIT_CONFIG_REQ_RSP_OR_CONFIG_REQ->WAIT_CONFIG_REQ [ label = "RECEIVE CONFIGURE_RESPONSE"]; + WAIT_CONFIG_REQ_RSP_OR_CONFIG_REQ->WAIT_CONFIG_REQ_RSP_OR_WILL_SEND_CONFIG_REQ_RSP [ label = "RECEIVE CONFIGURE_REQUEST"]; + WAIT_CONFIG_REQ->WILL_SEND_CONFIG_REQ_RSP [label = "RECEIVE CONFIGURE_REQUEST"]; + WAIT_CONFIG_REQ_RSP->OPEN [label = "RECEIVE CONFIGURE_RESPONSE"]; + WAIT_DISCONNECT->CLOSE [label = "RECEIVED DISCONNECT_RESPONSE"]; + + // l2cap_close_connection + OPEN->WILL_SEND_DISCONNECT_REQUEST [label = "client closed"]; +}