aboutsummaryrefslogtreecommitdiffstats
path: root/doc/timeslot-fsm.dot
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-05-28 14:29:49 +0200
committerHarald Welte <laforge@gnumonks.org>2018-06-08 16:16:42 +0000
commit44fcc9f11e80cd4ae0811dc41f8201c5d95dea6b (patch)
tree91580d1ddbea6927bb77776370f72b725eed1d88 /doc/timeslot-fsm.dot
parentc4bb31dcad3b0bedd6f1ad89d99ada71be55f06d (diff)
doc: charts: illustrate new plan for ts and lchans
Add lchan and timeslot FSM charts to illustrate planning of how osmo-bsc should handle lchan assignment and release. Modify assignment, handover, lchan-release charts according to the new plan. Change-Id: I18d60de5ee932c962aad0a532965a55d570bb936
Diffstat (limited to 'doc/timeslot-fsm.dot')
-rw-r--r--doc/timeslot-fsm.dot36
1 files changed, 36 insertions, 0 deletions
diff --git a/doc/timeslot-fsm.dot b/doc/timeslot-fsm.dot
new file mode 100644
index 000000000..79e56c95f
--- /dev/null
+++ b/doc/timeslot-fsm.dot
@@ -0,0 +1,36 @@
+digraph G {
+rankdir=TB;
+
+ invisible [style="invisible"]
+ invisible2 [style="invisible"]
+ NOT_INITIALIZED
+ lchan [label="lchan FSM",shape=box3d];
+ UNUSED
+ IN_USE
+ BORKEN
+ PDCH
+ WAIT_PDCH_ACT
+ WAIT_PDCH_DEACT
+
+ invisible -> NOT_INITIALIZED [label="OML\nOpstart ACK",style=dotted]
+ invisible2 -> NOT_INITIALIZED [label="RSL\nbootstrapped",style=dotted]
+
+ NOT_INITIALIZED -> UNUSED [label="OML+RSL ready"]
+
+ UNUSED -> IN_USE [label="first\nlchan\nrequested\nby lchan\nFSM"]
+ IN_USE -> UNUSED [label="last lchan\nunused"]
+
+ UNUSED -> PDCH [label="onenter:\ndedicated PDCH\nand GPRS\nis enabled"]
+ UNUSED -> WAIT_PDCH_ACT [label="onenter:\ndyn TS\nand GPRS\nis enabled"]
+ WAIT_PDCH_ACT -> PDCH [label="dyn TS:\nPDCH activated"]
+
+ PDCH -> WAIT_PDCH_DEACT [label="dyn TS:\nlchan of specific\npchan requested"]
+ WAIT_PDCH_DEACT -> UNUSED [label="lchan\nunused\n(e.g. error)",style=dashed]
+ WAIT_PDCH_DEACT -> IN_USE [label="dyn TS:\nPDCH released"]
+
+ lchan -> {UNUSED} [label="TS_EV_LCHAN_\nREQUESTED",style=dotted]
+ {IN_USE} -> lchan [label="LCHAN_EV_\nTS_READY",style=dotted]
+ lchan -> IN_USE [label="TS_EV_LCHAN_\nUNUSED",style=dotted]
+
+ {WAIT_PDCH_ACT,WAIT_PDCH_DEACT} -> BORKEN [label=timeout,style=dashed]
+}