aboutsummaryrefslogtreecommitdiffstats
path: root/bts
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2019-05-28 22:18:28 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2019-06-01 14:03:42 +0700
commit0a8d6daa6573abcb8234a27fd5bf32acc8c7d223 (patch)
treeb659461874562d0529e8feae9b6a64f27d2ec692 /bts
parent690d6593e9ad9af7fc5c7528bf87f22c5b0ebfac (diff)
L1CTL_Types.ttcn: accept SacchL1Header in ts_L1CTL_DATA_REQ_SACCH
In BTS_Tests.ttcn we used to compose L1ctlDataReq manually. This can be done by ts_L1CTL_DATA_REQ_SACCH() template itself, so let's abstract BTS_Tests.ttcn from doing that. Change-Id: I1ae948bd0314cdf15c21ce4b6346d5e32f1fcf95
Diffstat (limited to 'bts')
-rw-r--r--bts/BTS_Tests.ttcn32
1 files changed, 16 insertions, 16 deletions
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 37a5e3c4..7aa74d23 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -1523,12 +1523,15 @@ altstep as_l1_sacch() runs on ConnHdlr {
var LapdmFrameAB lb := valueof(ts_LAPDm_AB(0, false, false, enc_GsmRrL3Message(meas_rep)));
log("LAPDm: ", lb);
- var L1ctlDataReq data_req := {
- l1header := valueof(ts_SacchL1Header(g_pars.l1_pars.ms_power_level, false, g_pars.l1_pars.ms_actual_ta)),
- l2_payload := f_pad_oct(enc_LapdmFrameAB(lb), 21, '2B'O)
- }
- log("Sending Measurement Report: ", data_req);
- L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), data_req));
+ var template (value) SacchL1Header l1h := ts_SacchL1Header(
+ g_pars.l1_pars.ms_power_level, false,
+ g_pars.l1_pars.ms_actual_ta);
+
+ /* TODO: we can use an extension of TTCN-3 for that, i.e. PADDING('2B'O) */
+ var octetstring l2 := f_pad_oct(enc_LapdmFrameAB(lb), 21, '2B'O);
+
+ log("Sending Measurement Report: ", l1h, l2);
+ L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2));
repeat;
}
}
@@ -4522,19 +4525,16 @@ testcase TC_dyn_ipa_pdch_act_tchf_act_nack() runs on test_CT {
private function f_tx_lapdm(template (value) LapdmFrame l,
template (value) RslLinkId link_id) runs on ConnHdlr {
var octetstring l2 := enc_LapdmFrame(valueof(l));
+ var template (value) SacchL1Header l1h;
+
+ /* TODO: we can use an extension of TTCN-3 for padding, i.e. PADDING('2B'O) */
if (valueof(link_id.c) == SACCH) {
- /* prepend dummy L1 header */
- var L1ctlDataReq l1hl2 := {
- l1header := valueof(ts_SacchL1Header(g_pars.l1_pars.ms_power_level, false, g_pars.l1_pars.ms_actual_ta)),
- l2_payload := f_pad_oct(l2, 21, '2B'O)
- }
- L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, link_id, l1hl2));
+ /* Compose dummy L1 header */
+ l1h := ts_SacchL1Header(g_pars.l1_pars.ms_power_level, false, g_pars.l1_pars.ms_actual_ta);
+ L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, link_id, l1h, f_pad_oct(l2, 21, '2B'O)));
} else {
/* If required, pad L2 frame with constant 0x2b filling */
- l2 := f_pad_oct(l2, 23, '2B'O);
-
- log("encoding ", l, " to ", l2);
- L1CTL.send(ts_L1CTL_DATA_REQ(g_chan_nr, link_id, l2));
+ L1CTL.send(ts_L1CTL_DATA_REQ(g_chan_nr, link_id, f_pad_oct(l2, 23, '2B'O)));
}
}