aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lchan-rtp-fsm.dot
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-06-16 16:08:55 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2018-07-28 12:18:23 +0200
commit3b5de1b6684f3a166bb4666ffabd31d6b29c0175 (patch)
tree32caf212194f30fc274374d8d0e254d430e770cf /doc/lchan-rtp-fsm.dot
parent431e085736ba958c5b69c87e401c67f0b322189d (diff)
doc: update/fix FSM charts
These reflect the plan for refactoring, and will be implemented by I82e3f918295daa83274a4cf803f046979f284366 and Id7a4407d9b63be05ce63f5f2768b7d7e3d5c86fb Change-Id: I29e31b753e23a4207662e0e385a337e7df836f45
Diffstat (limited to 'doc/lchan-rtp-fsm.dot')
-rw-r--r--doc/lchan-rtp-fsm.dot44
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/lchan-rtp-fsm.dot b/doc/lchan-rtp-fsm.dot
new file mode 100644
index 000000000..d5df643b5
--- /dev/null
+++ b/doc/lchan-rtp-fsm.dot
@@ -0,0 +1,44 @@
+digraph G {
+rankdir=TB
+labelloc=t; label="lchan RTP FSM"
+
+ lchan [label="lchan\nFSM",shape=box3d]
+ lchan2 [label="lchan\nFSM",shape=box3d]
+ ho_as [label="Handover or Assignment FSM",shape=box3d]
+ invisible [style=invisible]
+ ho [label="Handover FSM",shape=box3d]
+ mgwep [label="mgw endpoint\nFSM",shape=box3d]
+ start [label="lchan_rtp_fsm_start()",shape=box]
+ WAIT_READY_TO_SWITCH_RTP [label="WAIT_READY_TO_SWITCH_RTP\nonly if wait_before_switching_rtp"]
+ terminate [shape=octagon]
+
+ lchan -> start [style=dashed]
+ start -> WAIT_MGW_ENDPOINT_AVAILABLE
+ start -> WAIT_LCHAN_READY [label="re-use existing\nendpoint CI"]
+
+ WAIT_MGW_ENDPOINT_AVAILABLE -> mgwep [label="gscon_ensure_mgw_endpoint()\nand CRCX to-BTS",style=dashed]
+ mgwep -> WAIT_MGW_ENDPOINT_AVAILABLE [label="LCHAN_RTP_EV_\nMGW_ENDPOINT_\n{AVAILABLE,ERROR}",style=dashed]
+ WAIT_MGW_ENDPOINT_AVAILABLE -> WAIT_LCHAN_READY
+
+ lchan -> WAIT_LCHAN_READY [label="LCHAN_RTP_EV_LCHAN_READY",style=dashed]
+ WAIT_LCHAN_READY -> WAIT_IPACC_CRCX_ACK [label="IPACC BTS"]
+ WAIT_LCHAN_READY -> WAIT_READY_TO_SWITCH_RTP
+ WAIT_IPACC_CRCX_ACK -> WAIT_IPACC_MDCX_ACK
+ WAIT_IPACC_MDCX_ACK -> WAIT_READY_TO_SWITCH_RTP
+ invisible -> ho [label="HO DETECT",style=dashed]
+ ho -> WAIT_READY_TO_SWITCH_RTP [label="LCHAN_RTP_EV_READY_TO_SWITCH",style=dashed]
+ WAIT_READY_TO_SWITCH_RTP -> WAIT_MGW_ENDPOINT_CONFIGURED
+ WAIT_MGW_ENDPOINT_CONFIGURED -> mgwep [label="MDCX",style=dashed]
+ mgwep -> WAIT_MGW_ENDPOINT_CONFIGURED [label="LCHAN_RTP_EV_\nMGW_ENDPOINT_\nCONFIGURED",style=dashed]
+ WAIT_MGW_ENDPOINT_CONFIGURED -> RTP_READY
+ RTP_READY -> lchan2 [label="LCHAN_EV_\nRTP_READY",style=dashed]
+ RTP_READY -> RTP_ESTABLISHED
+ lchan2 -> RTP_ESTABLISHED [label="LCHAN_RTP_EV_\nRELEASE",style=dashed]
+ RTP_ESTABLISHED -> terminate
+ RTP_READY -> RTP_ROLLBACK
+ RTP_ROLLBACK -> terminate
+ terminate -> lchan2 [label="LCHAN_EV_\nRTP_RELEASED",style=dashed]
+
+ lchan2 -> ho_as [label="XX_EV_LCHAN_\nESTABLISHED",style=dashed]
+ ho_as -> RTP_READY [label="LCHAN_RTP_EV_\n{ESTABLISHED,\nROLLBACK}",style=dashed]
+}