blob: c2181535bf546f30097638673a3c266698141c56 [file] [log] [blame]
Neels Hofmeyr3b5de1b2018-06-16 16:08:55 +02001digraph G {
2rankdir=TB
3labelloc=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 Maier92eed412020-08-21 20:47:49 +020025 gscon -> WAIT_LCHAN_ESTABLISHED [label="assignment_fsm_start()\n(mode modify)",style=dotted]
Neels Hofmeyr3b5de1b2018-06-16 16:08:55 +020026 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}