diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2019-05-28 22:18:28 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2019-06-01 14:03:42 +0700 |
commit | 0a8d6daa6573abcb8234a27fd5bf32acc8c7d223 (patch) | |
tree | b659461874562d0529e8feae9b6a64f27d2ec692 /bts | |
parent | 690d6593e9ad9af7fc5c7528bf87f22c5b0ebfac (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.ttcn | 32 |
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))); } } |