blob: 4c2dd31bff94244bd8c387a8ca6558b2cf58eef0 [file] [log] [blame]
Neels Hofmeyr3b5de1b2018-06-16 16:08:55 +02001digraph G {
2rankdir=TB
3labelloc=t; label="lchan RTP FSM"
Pau Espin Pedrolf087c1e2020-09-02 18:40:43 +02004
Neels Hofmeyr3b5de1b2018-06-16 16:08:55 +02005 lchan [label="lchan\nFSM",shape=box3d]
6 lchan2 [label="lchan\nFSM",shape=box3d]
7 ho_as [label="Handover or Assignment FSM",shape=box3d]
8 invisible [style=invisible]
9 ho [label="Handover FSM",shape=box3d]
10 mgwep [label="mgw endpoint\nFSM",shape=box3d]
11 start [label="lchan_rtp_fsm_start()",shape=box]
12 WAIT_READY_TO_SWITCH_RTP [label="WAIT_READY_TO_SWITCH_RTP\nonly if wait_before_switching_rtp"]
13 terminate [shape=octagon]
14
15 lchan -> start [style=dashed]
16 start -> WAIT_MGW_ENDPOINT_AVAILABLE
17 start -> WAIT_LCHAN_READY [label="re-use existing\nendpoint CI"]
18
19 WAIT_MGW_ENDPOINT_AVAILABLE -> mgwep [label="gscon_ensure_mgw_endpoint()\nand CRCX to-BTS",style=dashed]
20 mgwep -> WAIT_MGW_ENDPOINT_AVAILABLE [label="LCHAN_RTP_EV_\nMGW_ENDPOINT_\n{AVAILABLE,ERROR}",style=dashed]
21 WAIT_MGW_ENDPOINT_AVAILABLE -> WAIT_LCHAN_READY
22
23 lchan -> WAIT_LCHAN_READY [label="LCHAN_RTP_EV_LCHAN_READY",style=dashed]
24 WAIT_LCHAN_READY -> WAIT_IPACC_CRCX_ACK [label="IPACC BTS"]
25 WAIT_LCHAN_READY -> WAIT_READY_TO_SWITCH_RTP
Pau Espin Pedrolf087c1e2020-09-02 18:40:43 +020026 WAIT_IPACC_CRCX_ACK -> WAIT_READY_TO_SWITCH_RTP
Neels Hofmeyr3b5de1b2018-06-16 16:08:55 +020027 invisible -> ho [label="HO DETECT",style=dashed]
28 ho -> WAIT_READY_TO_SWITCH_RTP [label="LCHAN_RTP_EV_READY_TO_SWITCH",style=dashed]
29 WAIT_READY_TO_SWITCH_RTP -> WAIT_MGW_ENDPOINT_CONFIGURED
30 WAIT_MGW_ENDPOINT_CONFIGURED -> mgwep [label="MDCX",style=dashed]
31 mgwep -> WAIT_MGW_ENDPOINT_CONFIGURED [label="LCHAN_RTP_EV_\nMGW_ENDPOINT_\nCONFIGURED",style=dashed]
Pau Espin Pedrolf087c1e2020-09-02 18:40:43 +020032 WAIT_MGW_ENDPOINT_CONFIGURED -> WAIT_IPACC_MDCX_ACK [label="IPACC BTS"]
Neels Hofmeyr3b5de1b2018-06-16 16:08:55 +020033 WAIT_MGW_ENDPOINT_CONFIGURED -> RTP_READY
Pau Espin Pedrolf087c1e2020-09-02 18:40:43 +020034 WAIT_IPACC_MDCX_ACK -> RTP_READY
Neels Hofmeyr3b5de1b2018-06-16 16:08:55 +020035 RTP_READY -> lchan2 [label="LCHAN_EV_\nRTP_READY",style=dashed]
36 RTP_READY -> RTP_ESTABLISHED
37 lchan2 -> RTP_ESTABLISHED [label="LCHAN_RTP_EV_\nRELEASE",style=dashed]
38 RTP_ESTABLISHED -> terminate
39 RTP_READY -> RTP_ROLLBACK
40 RTP_ROLLBACK -> terminate
41 terminate -> lchan2 [label="LCHAN_EV_\nRTP_RELEASED",style=dashed]
42
43 lchan2 -> ho_as [label="XX_EV_LCHAN_\nESTABLISHED",style=dashed]
44 ho_as -> RTP_READY [label="LCHAN_RTP_EV_\n{ESTABLISHED,\nROLLBACK}",style=dashed]
45}