Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 1 | msc { |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 2 | hscale=2; |
| 3 | ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_lchan[label="BSC lchan FSM"]; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 4 | |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 5 | ms note bsc_lchan [label="lchan allocation sequence for RSL Channel Request"]; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 6 | |
| 7 | ms => bts [label="RR Channel Request"]; |
| 8 | bts => bsc [label="RSL Channel Request"]; |
| 9 | bsc box bsc [label="rsl_rx_chan_rqd()"]; |
| 10 | bsc note bsc [label="Obtain RACH data from Request: - Reference - Access Delay (TA) |
| 11 | - Request Reason - Channel Type"]; |
| 12 | bsc note bsc [label="If the reason is PDCH, the RACH Request is forwarded to PCU and BSC is no |
| 13 | longer concerned (rsl_rx_pchan_rqd())."]; |
| 14 | bsc note bsc [label="Always try to allocate an SDCCH regardless of the requested type, only if no |
| 15 | SDCCH is available, look for the actually requested channel type."]; |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 16 | bsc box bsc [label="lchan_select_by_type(SDCCH)"]; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 17 | |
| 18 | --- [label="IF no lchan is available (neither SDCCH nor requested type)"]; |
| 19 | bsc note bsc [label="Figure out T3122 value from bts->T3122, network->T3122 or |
| 20 | GSM_T3122_DEFAULT"]; |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 21 | bsc box bsc [label="rsl_send_imm_ass_rej(wait_ind=T3122)"]; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 22 | bsc note bsc [label="..."]; |
| 23 | bts <= bsc [label="RR Immediate Assign Reject"]; |
| 24 | ms <= bts [label="RR Immediate Assign Reject (possibly grouped with up to 4 others)"]; |
| 25 | bsc note bsc [label="rsl_rx_pchan_rqd() exits, no channel is allocated."]; |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 26 | --- [label="END: no lchan is available"]; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 27 | |
| 28 | bsc box bsc [label="Store RACH data in lchan->rqd_ref, rqd_ta"]; |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 29 | bsc -> bsc_lchan [label="lchan_allocate(FOR_MS_CHANNEL_REQUEST)"]; |
| 30 | bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_ACTIV_ACK\nT3103"]; |
| 31 | bsc_lchan note bsc_lchan [label="The lchan FSM knows that FOR_MS_CHANNEL_REQUEST is about |
| 32 | Immediate Assignment."]; |
| 33 | bts <= bsc_lchan [label="RSL Chan Activ (Immediate Assignment)"]; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 34 | ...; |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 35 | --- [label="on any error"]; |
| 36 | bts <= bsc_lchan [label="RR Immediate Assign Reject"]; |
| 37 | ms <= bts [label="RR Immediate Assign Reject (possibly grouped with up to 4 others)"]; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 38 | ---; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 39 | ...; |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 40 | bts => bsc_lchan [label="RSL Chan Activ ACK"]; |
| 41 | bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRLL_ESTABLISH\ncontinue T3103"]; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 42 | ...; |
Neels Hofmeyr | 44fcc9f | 2018-05-28 14:29:49 +0200 | [diff] [blame] | 43 | --- [label="on timeout"]; |
| 44 | bsc_lchan box bsc_lchan [label="lchan_error_release(deact_sacch=true)"]; |
| 45 | bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_RF_RELEASE_ACK"]; |
| 46 | bts <= bsc_lchan [label="RLL Release Request (Local End)..."]; |
| 47 | bts <= bsc_lchan [label="...for all SAPIs including [0]"]; |
| 48 | bts <= bsc_lchan [label="RSL Deactivate SACCH"]; |
| 49 | bts <= bsc_lchan [label="RSL RF Channel Release"]; |
| 50 | ...; |
| 51 | bts => bsc_lchan [label="RSL RF Channel Release ACK"]; |
| 52 | bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_AFTER_ERROR"]; |
| 53 | ...; |
| 54 | bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; |
| 55 | ---; |
| 56 | ms => bsc_lchan [label="RLL Establish Ind"]; |
| 57 | bsc_lchan box bsc_lchan [label="associate lchan FSM with new conn FSM"]; |
| 58 | bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; |
Neels Hofmeyr | c4bb31d | 2018-05-29 02:48:08 +0200 | [diff] [blame] | 59 | } |