Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 1 | digraph G { |
Neels Hofmeyr | 3b5de1b | 2018-06-16 16:08:55 +0200 | [diff] [blame] | 2 | rankdir=TB |
| 3 | labelloc=t; label="Timeslot FSM" |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 4 | |
| 5 | invisible [style="invisible"] |
| 6 | invisible2 [style="invisible"] |
| 7 | NOT_INITIALIZED |
Neels Hofmeyr | 3b5de1b | 2018-06-16 16:08:55 +0200 | [diff] [blame] | 8 | lchan [label="lchan FSM",shape=box3d] |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 9 | UNUSED |
| 10 | IN_USE |
| 11 | BORKEN |
| 12 | PDCH |
| 13 | WAIT_PDCH_ACT |
| 14 | WAIT_PDCH_DEACT |
| 15 | |
| 16 | invisible -> NOT_INITIALIZED [label="OML\nOpstart ACK",style=dotted] |
| 17 | invisible2 -> NOT_INITIALIZED [label="RSL\nbootstrapped",style=dotted] |
| 18 | |
| 19 | NOT_INITIALIZED -> UNUSED [label="OML+RSL ready"] |
| 20 | |
| 21 | UNUSED -> IN_USE [label="first\nlchan\nrequested\nby lchan\nFSM"] |
| 22 | IN_USE -> UNUSED [label="last lchan\nunused"] |
| 23 | |
| 24 | UNUSED -> PDCH [label="onenter:\ndedicated PDCH\nand GPRS\nis enabled"] |
| 25 | UNUSED -> WAIT_PDCH_ACT [label="onenter:\ndyn TS\nand GPRS\nis enabled"] |
| 26 | WAIT_PDCH_ACT -> PDCH [label="dyn TS:\nPDCH activated"] |
| 27 | |
| 28 | PDCH -> WAIT_PDCH_DEACT [label="dyn TS:\nlchan of specific\npchan requested"] |
| 29 | WAIT_PDCH_DEACT -> UNUSED [label="lchan\nunused\n(e.g. error)",style=dashed] |
| 30 | WAIT_PDCH_DEACT -> IN_USE [label="dyn TS:\nPDCH released"] |
| 31 | |
| 32 | lchan -> {UNUSED} [label="TS_EV_LCHAN_\nREQUESTED",style=dotted] |
| 33 | {IN_USE} -> lchan [label="LCHAN_EV_\nTS_READY",style=dotted] |
| 34 | lchan -> IN_USE [label="TS_EV_LCHAN_\nUNUSED",style=dotted] |
| 35 | |
| 36 | {WAIT_PDCH_ACT,WAIT_PDCH_DEACT} -> BORKEN [label=timeout,style=dashed] |
| 37 | } |