digraph G {
rankdir=LR;
NEEDS_AUTH [label="NEEDS_AUTH\nauth_fsm_needs_auth()"]
NEEDS_AUTH_WAIT_AI [label="NEEDS_AUTH_WAIT_AI\nauth_fsm_wait_ai()"]
WAIT_RESP [label="WAIT_RESP\nauth_fsm_wait_auth_resp()"]
NEEDS_AUTH_WAIT_SAI_RESYNC [label="NEEDS_AUTH_WAIT_SAI_RESYNC\nauth_fsm_wait_ai_resync()"]
WAIT_RESP_RESYNC [label="WAIT_RESP_RESYNC\nauth_fsm_wait_auth_resp_resync()"]
WAIT_ID_IMSI [label="WAIT_ID_IMSI\nauth_fsm_wait_imsi()"]
AUTHENTICATED [label="AUTHENTICATED"]
AUTH_FAILED [label="AUTH_FAILED"]
auth_fsm_term [label="auth_fsm_term()",shape=box]
auth_fsm_start [label="auth_fsm_start()",shape=box]
vlr_subscr_handle_sai_res [label="vlr_subscr_handle_sai_res()",shape=box]
vlr_subscr_rx_auth_resp [label="vlr_subscr_rx_auth_resp()",shape=box]
vlr_subscr_rx_auth_fail [label="vlr_subscr_rx_auth_fail()",shape=box]
vlr_subscr_rx_id_resp [label="vlr_subscr_rx_id_resp()",shape=box]
vlr_lu_fsm_c_vlr_lu_fsm_vlr_lu_fsm [label="vlr_lu_fsm_c_vlr_lu_fsm_vlr_lu_fsm",shape=box3d]
vlr_access_req_fsm_c_proc_arq_vlr_fsm_Process_Access_Request_VLR [label="vlr_access_req_fsm_c_proc_arq_vlr_fsm_Process_Access_Request_VLR",shape=box3d]
NEEDS_AUTH->NEEDS_AUTH_WAIT_AI [label="-"]
NEEDS_AUTH->WAIT_RESP [label="-"]
NEEDS_AUTH_WAIT_AI->AUTH_FAILED [label="-"]
NEEDS_AUTH_WAIT_AI->WAIT_RESP [label="HLR_SAI_NACK"]
NEEDS_AUTH_WAIT_AI->auth_fsm_term [label="-",style=dotted]
WAIT_RESP->WAIT_ID_IMSI [label="MS_AUTH_RESP"]
WAIT_RESP->AUTH_FAILED [label="-"]
WAIT_RESP->AUTHENTICATED [label="-"]
WAIT_RESP->NEEDS_AUTH_WAIT_SAI_RESYNC [label="MS_AUTH_FAIL"]
WAIT_RESP->auth_fsm_term [label="-",style=dotted]
NEEDS_AUTH_WAIT_SAI_RESYNC->AUTH_FAILED [label="-"]
NEEDS_AUTH_WAIT_SAI_RESYNC->WAIT_RESP_RESYNC [label="HLR_SAI_NACK"]
NEEDS_AUTH_WAIT_SAI_RESYNC->auth_fsm_term [label="-",style=dotted]
WAIT_RESP_RESYNC->AUTH_FAILED [label="-"]
WAIT_RESP_RESYNC->AUTHENTICATED [label="-"]
WAIT_RESP_RESYNC->WAIT_ID_IMSI [label="MS_AUTH_RESP",color=red]
WAIT_RESP_RESYNC->auth_fsm_term [label="-",style=dotted]
WAIT_ID_IMSI->NEEDS_AUTH [label="MS_ID_IMSI"]
auth_fsm_term->AUTHENTICATED [label="-",style=dotted]
auth_fsm_term->AUTH_FAILED [label="-",style=dotted]
auth_fsm_start->NEEDS_AUTH [label="START",style=dotted,arrowhead=halfopen]
vlr_subscr_handle_sai_res->NEEDS_AUTH_WAIT_AI [label="HLR_SAI_ACK\nHLR_SAI_NACK",style=dotted,arrowhead=halfopen]
vlr_subscr_handle_sai_res->NEEDS_AUTH_WAIT_SAI_RESYNC [label="HLR_SAI_ACK\nHLR_SAI_NACK",style=dotted,arrowhead=halfopen]
vlr_subscr_rx_auth_resp->WAIT_RESP [label="MS_AUTH_RESP",style=dotted,arrowhead=halfopen]
vlr_subscr_rx_auth_resp->WAIT_RESP_RESYNC [label="MS_AUTH_RESP",style=dotted,arrowhead=halfopen]
vlr_subscr_rx_auth_fail->WAIT_RESP [label="MS_AUTH_FAIL",style=dotted,arrowhead=halfopen]
vlr_subscr_rx_auth_fail->WAIT_RESP_RESYNC [label="MS_AUTH_FAIL",style=dotted,arrowhead=halfopen]
vlr_subscr_rx_id_resp->WAIT_ID_IMSI [label="MS_ID_IMSI",style=dotted,arrowhead=halfopen]
vlr_lu_fsm_c_vlr_lu_fsm_vlr_lu_fsm->auth_fsm_start [label="vlr_loc_upd_node1()",style=dotted]
vlr_access_req_fsm_c_proc_arq_vlr_fsm_Process_Access_Request_VLR->auth_fsm_start [label="proc_arq_vlr_fn_post_imsi()",style=dotted]
}
