bsc: verify TSC in inter-BSC ho (out) RR HO Cmd

Related: SYS#4895 OS#5244
Related: Iae20df4387c3d75752301bd5daeeea7508966393 (osmo-bsc)
Change-Id: Icabcedc59d80e812c3d6ba5d6db5e2bb9b319252
This commit is contained in:
Neels Hofmeyr 2021-10-02 14:52:57 +02:00
parent 6a955cc46d
commit 34174bde0a
1 changed files with 14 additions and 2 deletions

View File

@ -5677,6 +5677,7 @@ private function f_ho_into_this_bsc(charstring id, template (omit) BSSMAP_oldToN
var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH));
f_rslem_register(0, new_chan_nr);
g_chan_nr := new_chan_nr;
var uint3_t expect_target_tsc := BTS_TSC[0];
f_sleep(1.0);
f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit});
@ -5696,8 +5697,10 @@ private function f_ho_into_this_bsc(charstring id, template (omit) BSSMAP_oldToN
BSSAP.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;
/* we're sure that the channel activation is done now, verify the encryption parameters in it */
f_verify_encr_info(f_rslem_get_last_act(RSL_PROC, 0, g_chan_nr));
/* we're sure that the channel activation is done now, verify the parameters in it */
var RSL_Message chan_act := f_rslem_get_last_act(RSL_PROC, 0, g_chan_nr);
f_verify_encr_info(chan_act);
f_chan_act_verify_tsc(chan_act, expect_target_tsc);
ho_command_str := rx_bssap.pdu.bssmap.handoverRequestAck.layer3Information.layer3info;
log("Received L3 Info in HO Request Ack: ", ho_command_str);
@ -5717,6 +5720,15 @@ private function f_ho_into_this_bsc(charstring id, template (omit) BSSMAP_oldToN
}
log("Handover Command chan_nr is", actual_new_chan_nr);
var uint3_t got_tsc := rr_chan_desc_tsc(ho_command.msgs.rrm.handoverCommand.channelDescription2);
if (not match(got_tsc, expect_target_tsc)) {
setverdict(fail, "RR Handover Command: unexpected TSC in Channel Description: expected ",
expect_target_tsc, " got ", got_tsc);
mtc.stop;
} else {
log("handoverCommand: verified TSC = ", got_tsc);
}
/* Now the MSC forwards the RR Handover Command to the other BSC, which
* tells the MS to handover to the new lchan. Here comes the new MS on
* the new lchan with a Handover RACH: */