digraph rfcomm_channel { // rankdir=LR; size="8,5" // orientation=landscape; // rotate = 90; CLOSED [shape=doublecircle]; OPEN [shape=doublecircle]; // DISC #x or DM // rfcomm_create_channel_internal CLOSED->W4_MULTIPLEXER [label = "create channel [multiplexer==closed]"]; CLOSED->SEND_UIH_PN [label = "create channel [multiplexer==open]"]; W4_MULTIPLEXER->SEND_UIH_PN [label = "multiplexere opened"]; SEND_UIH_PN->W4_PN_RSP [label="SEND UIH PN"]; // rfcomm_multiplexer_l2cap_packet_handler // rfcomm_packet_handler CLOSED->W4_CLIENT_AFTER_SABM [label = "RECV SABM#x / inform client"]; CLOSED->W4_CLIENT_AFTER_PN_CMD [label = "RECV UIH PN CMD/ inform client"]; W4_SABM_OR_PN_CMD->W4_SABM_OR_PN_CMD [label = "RECV UIH PN CMD / SEND UIH PN RSP"]; W4_SABM_OR_PN_CMD->SEND_UA [label ="RECV SAMB"]; W4_MSC_CMD_OR_MSC_RSP-> W4_MSC_CMD [label = "RECV MSP RSP"]; W4_MSC_RSP -> W4_CREDITS [label = "RECV MSP RSP"]; W4_MSC_RSP -> OPEN [label = "RECV MSP RSP"]; W4_CREDITS -> OPEN [label = "RECV UIH P/F credits > 0"]; // rfcomm_decline_connection_internal W4_CLIENT_AFTER_SABM->CLOSED [label = "decline connection / SEND DM"]; W4_CLIENT_AFTER_PN_CMD->CLOSED [label = "decline connection / SEND DM"]; // rfcomm_run SEND_MSC_CMD_W4_MSC_CMD_OR_MSC_RSP->W4_MSC_CMD_OR_MSC_RSP [label="SEND MSC CMD"]; SEND_MSC_RSP_W4_MSC_RSP->W4_MSC_RSP [label="SEND MSC RSP"]; SEND_MSC_CMD_SEND_CREDITS->SEND_CREDITS [label="SEND MSC CMD"]; SEND_CREDITS->OPEN [label="SEND CREDITS#0 && HAVE CREDITS"]; SEND_CREDITS->W4_CREDITS [label="SEND CREDITS#0 && NO CREDITS"]; SEND_DM->CLOSED [label="SEND DM_PF"]; SEND_DISC->CLOSED [label="SEND DISC"]; SEND_UA->W4_MSC_CMD [label="SEND UA"]; SEND_PN_RSP_W4_SABM_OR_PN_CMD->W4_SABM_OR_PN_CMD[label="SEND PN RSP"]; // rfcomm_decline_connection_internal W4_CLIENT_AFTER_SABM->SEND_DM[label="decline connection"]; W4_CLIENT_AFTER_PN_CMD->SEND_DM[label="decline connection"]; // W4_CLIENT_AFTER_SABM->SEND_UA[label="accept connection"]; W4_CLIENT_AFTER_PN_CMD->SEND_PN_RSP_W4_SABM_OR_PN_CMD[label="accept connection"]; W4_PN_RSP->SEND_SABM_W4_UA [label="RECV PN RSP"]; SEND_SABM_W4_UA->W4_UA[label="SEND SABM"]; W4_UA->SEND_MSC_CMD_W4_MSC_CMD_OR_MSC_RSP[label="RECV UA"]; W4_MSC_CMD_OR_MSC_RSP->SEND_MSC_RSP_W4_MSC_RSP[label="RECV MSC CMD"]; SEND_MSC_RSP_MSC_CMD_W4_CREDITS->SEND_MSC_CMD_SEND_CREDITS [label="SEND MSP RSP"]; W4_MSC_CMD->SEND_MSC_RSP_MSC_CMD_W4_CREDITS [label="RECV MSC CMD"]; }