Neels Hofmeyr | 3b5de1b | 2018-06-16 16:08:55 +0200 | [diff] [blame] | 1 | digraph G { |
| 2 | rankdir=TB |
| 3 | labelloc=t; label="Assignment FSM" |
| 4 | |
| 5 | WAIT_LCHAN_ACTIVE |
| 6 | WAIT_RR_ASS_COMPLETE |
| 7 | WAIT_LCHAN_ESTABLISHED |
| 8 | WAIT_MGW_ENDPOINT_TO_MSC |
| 9 | terminate [shape=octagon] |
| 10 | |
| 11 | gscon [label="conn FSM",shape=box3d] |
| 12 | gscon2 [label="conn FSM",shape=box3d] |
| 13 | lchan [label="lchan FSM\n(new lchan)",shape=box3d] |
| 14 | old_lchan [label="old lchan",shape=box3d] |
| 15 | |
| 16 | bssap [label="osmo_bsc_bssap.c",shape=box] |
| 17 | |
| 18 | invisible [style="invisible"] |
| 19 | invisible -> bssap [label="BSSMAP Assignment Request",style=dotted] |
| 20 | invisible -> old_lchan [style=invisible,arrowhead=none] |
| 21 | |
| 22 | bssap -> gscon [label="GSCON_EV_ASSIGNMENT_START\ndata=struct assignment_request",style=dotted] |
| 23 | |
| 24 | gscon -> WAIT_LCHAN_ACTIVE [label="assignment_fsm_start()",style=dotted] |
Philipp Maier | 92eed41 | 2020-08-21 20:47:49 +0200 | [diff] [blame] | 25 | gscon -> WAIT_LCHAN_ESTABLISHED [label="assignment_fsm_start()\n(mode modify)",style=dotted] |
Neels Hofmeyr | 3b5de1b | 2018-06-16 16:08:55 +0200 | [diff] [blame] | 26 | WAIT_LCHAN_ACTIVE -> lchan [label="lchan_activate()\nFOR_ASSIGNMENT",style=dotted] |
| 27 | lchan -> WAIT_LCHAN_ACTIVE [label="ASSIGNMENT_EV_\nLCHAN_\nACTIVE,ERROR",style=dotted] |
| 28 | lchan -> WAIT_LCHAN_ESTABLISHED [label="ASSIGNMENT_EV_\nLCHAN_\nESTABLISHED,ERROR",style=dotted] |
| 29 | |
| 30 | WAIT_LCHAN_ACTIVE -> WAIT_RR_ASS_COMPLETE |
| 31 | |
| 32 | WAIT_RR_ASS_COMPLETE -> old_lchan [label="RR Assignment\nCommand",style=dotted,constraint=false] |
| 33 | lchan -> WAIT_RR_ASS_COMPLETE [label="RR Assignment\nComplete",style=dotted] |
| 34 | |
| 35 | WAIT_RR_ASS_COMPLETE -> WAIT_LCHAN_ESTABLISHED |
| 36 | |
| 37 | WAIT_LCHAN_ESTABLISHED -> WAIT_MGW_ENDPOINT_TO_MSC [label="TCH"] |
| 38 | WAIT_LCHAN_ESTABLISHED -> terminate [label="non-TCH"] |
| 39 | WAIT_MGW_ENDPOINT_TO_MSC -> terminate |
| 40 | WAIT_MGW_ENDPOINT_TO_MSC -> gscon2 [label="gscon_connect_\nmgw_to_msc()",style=dotted] |
| 41 | gscon2 -> WAIT_MGW_ENDPOINT_TO_MSC [label="ASSIGNMENT_EV_\nMSC_MGW_OK",style=dotted] |
| 42 | terminate -> gscon2 [label="GSCON_EV_\nASSIGNMENT_END",style=dotted] |
| 43 | } |