blob: 1c5b4bfb3e7b27b8956eb4774be745cd9e3ac7a2 [file] [log] [blame]
Neels Hofmeyrc4bb31d2018-05-29 02:48:08 +02001msc {
Neels Hofmeyr44fcc9f2018-05-28 14:29:49 +02002 hscale=2;
3 ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_lchan[label="BSC lchan FSM"];
Neels Hofmeyrc4bb31d2018-05-29 02:48:08 +02004
Neels Hofmeyr44fcc9f2018-05-28 14:29:49 +02005 ms note bsc_lchan [label="lchan allocation sequence for RSL Channel Request"];
Neels Hofmeyrc4bb31d2018-05-29 02:48:08 +02006
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 Hofmeyr44fcc9f2018-05-28 14:29:49 +020016 bsc box bsc [label="lchan_select_by_type(SDCCH)"];
Neels Hofmeyrc4bb31d2018-05-29 02:48:08 +020017
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 Hofmeyr44fcc9f2018-05-28 14:29:49 +020021 bsc box bsc [label="rsl_send_imm_ass_rej(wait_ind=T3122)"];
Neels Hofmeyrc4bb31d2018-05-29 02:48:08 +020022 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 Hofmeyr44fcc9f2018-05-28 14:29:49 +020026 --- [label="END: no lchan is available"];
Neels Hofmeyrc4bb31d2018-05-29 02:48:08 +020027
28 bsc box bsc [label="Store RACH data in lchan->rqd_ref, rqd_ta"];
Neels Hofmeyr44fcc9f2018-05-28 14:29:49 +020029 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 Hofmeyrc4bb31d2018-05-29 02:48:08 +020034 ...;
Neels Hofmeyr44fcc9f2018-05-28 14:29:49 +020035 --- [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 Hofmeyrc4bb31d2018-05-29 02:48:08 +020038 ---;
Neels Hofmeyrc4bb31d2018-05-29 02:48:08 +020039 ...;
Neels Hofmeyr44fcc9f2018-05-28 14:29:49 +020040 bts => bsc_lchan [label="RSL Chan Activ ACK"];
41 bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRLL_ESTABLISH\ncontinue T3103"];
Neels Hofmeyrc4bb31d2018-05-29 02:48:08 +020042 ...;
Neels Hofmeyr44fcc9f2018-05-28 14:29:49 +020043 --- [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 Hofmeyrc4bb31d2018-05-29 02:48:08 +020059}