diff options
Diffstat (limited to 'doc/handover-inter-bsc-mo.msc')
-rw-r--r-- | doc/handover-inter-bsc-mo.msc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/doc/handover-inter-bsc-mo.msc b/doc/handover-inter-bsc-mo.msc new file mode 100644 index 000000000..9aff7a728 --- /dev/null +++ b/doc/handover-inter-bsc-mo.msc @@ -0,0 +1,37 @@ +msc { + hscale=2; + ms [label="MS via BTS"], bsc_lchan[label="BSC lchan FSM"], bsc_gscon[label="BSC conn FSM"], + msc_[label="MSC"]; + + ms note msc_ [label="inter-BSC Handover to another BSS"]; + + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="bsc_handover_start(): init conn->ho"]; + bsc_gscon -> bsc_gscon [label="GSCON_EV_HO_START (inter-BSC MO)"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MO_\nWAIT_HO_CMD\nT7"]; + bsc_gscon => msc_ [label="BSSMAP Handover Required"]; + ...; + --- [label="On Timeout"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_gscon <= msc_ [label="BSSMAP Handover Command"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MO_\nWAIT_CLEAR_CMD\nT8"]; + ms <= bsc_gscon [label="RR Handover Command"]; + ...; + --- [label="On Timeout"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="END: 'On Timeout'"]; + ...; + msc_ note msc_ [label="Remote BSS reported Handover Complete to the MSC, this connection has been + superseded."]; + bsc_gscon <= msc_ [label="BSSMAP Clear Command"]; + bsc_gscon abox bsc_gscon [label="ST_CLEARING"]; + bsc_gscon => msc_ [label="BSSMAP Clear Complete"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; +} |