BTS_Tests: separate f_send_meas_rep() from f_transceive_meas_rep()

The key difference is that f_send_meas_rep() simply sends an RR
Measurement Report and does not wait until it's received on the RSL.

Change-Id: Ia5d0315e053702df5fa8dad8c6c66c11c9f3edcb
This commit is contained in:
Vadim Yanitskiy 2022-08-01 19:22:18 +07:00 committed by fixeria
parent a5536b697d
commit 9dd880f508
1 changed files with 22 additions and 6 deletions

View File

@ -778,12 +778,31 @@ runs on ConnHdlr {
var RSL_Message rx := f_rsl_transceive_ret(tx, exp_rx, id, ignore_other);
}
/* Send the given measurement results to the IUT over the Um interface */
friend function f_send_meas_rep(template (value) MeasurementResults meas_res)
runs on ConnHdlr {
var template (value) SacchL1Header l1h;
var octetstring l2;
/* RR Measurement Report to be sent */
var GsmRrL3Message meas_rep := {
header := valueof(t_RrL3Header(MEASUREMENT_REPORT)),
payload := { meas_rep := { meas_res := valueof(meas_res) } }
};
/* TITAN has weird (and often unusable) padding model, so we pad here manaully */
l2 := f_pad_oct(enc_LapdmFrameAB(valueof(ts_LAPDm_AB(0, meas_rep))), 21, '00'O);
l1h := ts_SacchL1Header(g_pars.l1_pars.ms_power_level, g_pars.l1_pars.ms_actual_ta);
/* Send RR Measurement Report over the Um interface */
L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2));
}
/* Send the given measurement results to the IUT over the Um interface,
* wait for the IUT to receive then and forward over the A-bis/RSL interface. */
friend function f_transceive_meas_rep(template (value) MeasurementResults meas_res)
runs on ConnHdlr {
var template (value) SacchL1Header l1h;
var octetstring l2, l3;
var octetstring l3;
timer T;
/* RR Measurement Report to be sent */
@ -794,11 +813,8 @@ runs on ConnHdlr {
/* TITAN has weird (and often unusable) padding model, so we pad here manaully */
l3 := f_pad_oct(enc_GsmRrL3Message(meas_rep), 18, '00'O);
l2 := f_pad_oct(enc_LapdmFrameAB(valueof(ts_LAPDm_AB(0, meas_rep))), 21, '00'O);
l1h := ts_SacchL1Header(g_pars.l1_pars.ms_power_level, g_pars.l1_pars.ms_actual_ta);
/* Send RR Measurement Report over the Um interface */
L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2));
f_send_meas_rep(meas_res);
/* Expect MEASurement RESult on the A-bis/RSL interface */
T.start(2.0);