84 lines
3.7 KiB
Plaintext
84 lines
3.7 KiB
Plaintext
msc {
|
|
hscale=2;
|
|
ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_lchan[label="BSC lchan FSM"],
|
|
bsc_gscon[label="BSC conn FSM"], msc_[label="MSC"];
|
|
|
|
ms note bsc_gscon [label="various lchan release scenarios"];
|
|
|
|
ms rbox msc_ [label="MSC releases"];
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"];
|
|
bsc_gscon abox bsc_gscon [label="ST_ACTIVE"];
|
|
bsc_gscon <= msc_ [label="BSSMAP Clear Command"];
|
|
bsc_gscon abox bsc_gscon [label="ST_CLEARING"];
|
|
bsc_gscon => msc_ [label="BSSMAP Clear Complete"];
|
|
bsc_gscon -> bsc_lchan [label="LCHAN_EV_RELEASE"];
|
|
--- [label="IF SAPIs besides SAPI[0] are active"];
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nSAPIS_RELEASED\nT3109"];
|
|
bts <= bsc_lchan [label="RSL Release Request (Local End)..."];
|
|
bts <= bsc_lchan [label="...for each SAPI, except link_id=0"];
|
|
ms <= bsc_lchan [label="RR Channel Release"];
|
|
bts <= bsc_lchan [label="RSL Deactivate SACCH",ID="if appropriate pchan"];
|
|
...;
|
|
bts => bsc_lchan [label="RSL Release ACKs"];
|
|
--- [label="END: SAPIs besides SAPI[0] are active"];
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"];
|
|
bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN"];
|
|
bsc_gscon note bsc_gscon [label="has already forgotten the lchan above."];
|
|
...;
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\n4s"];
|
|
bts <= bsc_lchan [label="RSL RF Channel Release"];
|
|
...;
|
|
bts => bsc_lchan [label="RSL RF Channel Release ACK"];
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"];
|
|
...;
|
|
...;
|
|
|
|
ms rbox msc_ [label="BSC releases, outside of conn FSM's flow"];
|
|
bsc -> bsc_lchan [label="LCHAN_EV_RELEASE"];
|
|
--- [label="IF SAPIs besides SAPI[0] are active"];
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nSAPIS_RELEASED\nT3109"];
|
|
bts <= bsc_lchan [label="RSL Release Request (Local End)..."];
|
|
bts <= bsc_lchan [label="...for each SAPI, except link_id=0"];
|
|
ms <= bsc_lchan [label="RR Channel Release",ID="if conn is present"];
|
|
bts <= bsc_lchan [label="RSL Deactivate SACCH",ID="if appropriate pchan"];
|
|
...;
|
|
bts => bsc_lchan [label="RSL Release ACKs"];
|
|
--- [label="END: SAPIs besides SAPI[0] are active"];
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"];
|
|
bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN"];
|
|
bsc_gscon note bsc_gscon [label="conn FSM notices that its primary lchan is gone"];
|
|
bsc_gscon => msc_ [label="BSSMAP Clear Request"];
|
|
bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"];
|
|
...;
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\n4s"];
|
|
bts <= bsc_lchan [label="RSL RF Channel Release"];
|
|
...;
|
|
bts => bsc_lchan [label="RSL RF Channel Release ACK"];
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"];
|
|
...;
|
|
bsc_gscon <= msc_ [label="BSSMAP Clear Command"];
|
|
bsc_gscon abox bsc_gscon [label="ST_CLEARING"];
|
|
bsc_gscon => msc_ [label="BSSMAP Clear Complete"];
|
|
...;
|
|
...;
|
|
|
|
ms rbox msc_ [label="MS releases"];
|
|
ms => bts [label="DISC"];
|
|
bts => bsc_lchan [label="RLL Release Ind..."];
|
|
bts => bsc_lchan [label="...for each SAPI"];
|
|
bsc_lchan note bsc_lchan [label="The lchan FSM notices when all SAPIs have been released"];
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"];
|
|
...;
|
|
bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\n4s"];
|
|
bts <= bsc_lchan [label="RSL RF Channel Release"];
|
|
bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN"];
|
|
bsc_gscon note bsc_gscon [label="conn FSM notices that its primary lchan is gone"];
|
|
bsc_gscon => msc_ [label="BSSMAP Clear Request"];
|
|
bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"];
|
|
...;
|
|
bts => bsc_lchan [label="RSL RF Channel Release ACK"];
|
|
...;
|
|
bsc_gscon <= msc_ [label="BSSMAP Clear Command"];
|
|
bsc_gscon => msc_ [label="BSSMAP Clear Complete"];
|
|
}
|