aboutsummaryrefslogtreecommitdiffstats
path: root/doc/assignment-fsm.dot
diff options
context:
space:
mode:
Diffstat (limited to 'doc/assignment-fsm.dot')
-rw-r--r--doc/assignment-fsm.dot42
1 files changed, 42 insertions, 0 deletions
diff --git a/doc/assignment-fsm.dot b/doc/assignment-fsm.dot
new file mode 100644
index 000000000..5a3a2b91f
--- /dev/null
+++ b/doc/assignment-fsm.dot
@@ -0,0 +1,42 @@
+digraph G {
+rankdir=TB
+labelloc=t; label="Assignment FSM"
+
+ WAIT_LCHAN_ACTIVE
+ WAIT_RR_ASS_COMPLETE
+ WAIT_LCHAN_ESTABLISHED
+ WAIT_MGW_ENDPOINT_TO_MSC
+ terminate [shape=octagon]
+
+ gscon [label="conn FSM",shape=box3d]
+ gscon2 [label="conn FSM",shape=box3d]
+ lchan [label="lchan FSM\n(new lchan)",shape=box3d]
+ old_lchan [label="old lchan",shape=box3d]
+
+ bssap [label="osmo_bsc_bssap.c",shape=box]
+
+ invisible [style="invisible"]
+ invisible -> bssap [label="BSSMAP Assignment Request",style=dotted]
+ invisible -> old_lchan [style=invisible,arrowhead=none]
+
+ bssap -> gscon [label="GSCON_EV_ASSIGNMENT_START\ndata=struct assignment_request",style=dotted]
+
+ gscon -> WAIT_LCHAN_ACTIVE [label="assignment_fsm_start()",style=dotted]
+ WAIT_LCHAN_ACTIVE -> lchan [label="lchan_activate()\nFOR_ASSIGNMENT",style=dotted]
+ lchan -> WAIT_LCHAN_ACTIVE [label="ASSIGNMENT_EV_\nLCHAN_\nACTIVE,ERROR",style=dotted]
+ lchan -> WAIT_LCHAN_ESTABLISHED [label="ASSIGNMENT_EV_\nLCHAN_\nESTABLISHED,ERROR",style=dotted]
+
+ WAIT_LCHAN_ACTIVE -> WAIT_RR_ASS_COMPLETE
+
+ WAIT_RR_ASS_COMPLETE -> old_lchan [label="RR Assignment\nCommand",style=dotted,constraint=false]
+ lchan -> WAIT_RR_ASS_COMPLETE [label="RR Assignment\nComplete",style=dotted]
+
+ WAIT_RR_ASS_COMPLETE -> WAIT_LCHAN_ESTABLISHED
+
+ WAIT_LCHAN_ESTABLISHED -> WAIT_MGW_ENDPOINT_TO_MSC [label="TCH"]
+ WAIT_LCHAN_ESTABLISHED -> terminate [label="non-TCH"]
+ WAIT_MGW_ENDPOINT_TO_MSC -> terminate
+ WAIT_MGW_ENDPOINT_TO_MSC -> gscon2 [label="gscon_connect_\nmgw_to_msc()",style=dotted]
+ gscon2 -> WAIT_MGW_ENDPOINT_TO_MSC [label="ASSIGNMENT_EV_\nMSC_MGW_OK",style=dotted]
+ terminate -> gscon2 [label="GSCON_EV_\nASSIGNMENT_END",style=dotted]
+}