Neels Hofmeyr | 3b5de1b | 2018-06-16 16:08:55 +0200 | [diff] [blame] | 1 | digraph G { |
| 2 | rankdir=TB |
| 3 | labelloc=t; label="lchan RTP FSM" |
Pau Espin Pedrol | f087c1e | 2020-09-02 18:40:43 +0200 | [diff] [blame] | 4 | |
Neels Hofmeyr | 3b5de1b | 2018-06-16 16:08:55 +0200 | [diff] [blame] | 5 | 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 Pedrol | f087c1e | 2020-09-02 18:40:43 +0200 | [diff] [blame] | 26 | WAIT_IPACC_CRCX_ACK -> WAIT_READY_TO_SWITCH_RTP |
Neels Hofmeyr | 3b5de1b | 2018-06-16 16:08:55 +0200 | [diff] [blame] | 27 | 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 Pedrol | f087c1e | 2020-09-02 18:40:43 +0200 | [diff] [blame] | 32 | WAIT_MGW_ENDPOINT_CONFIGURED -> WAIT_IPACC_MDCX_ACK [label="IPACC BTS"] |
Neels Hofmeyr | 3b5de1b | 2018-06-16 16:08:55 +0200 | [diff] [blame] | 33 | WAIT_MGW_ENDPOINT_CONFIGURED -> RTP_READY |
Pau Espin Pedrol | f087c1e | 2020-09-02 18:40:43 +0200 | [diff] [blame] | 34 | WAIT_IPACC_MDCX_ACK -> RTP_READY |
Neels Hofmeyr | 3b5de1b | 2018-06-16 16:08:55 +0200 | [diff] [blame] | 35 | 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 | } |