diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2020-07-14 19:04:18 +0700 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2020-07-14 21:07:50 +0700 |
commit | eec14f0951b3a362d255291f465a00525573c4fb (patch) | |
tree | 9e93be27c6d2c239491acb11215890e3c6791e7b /library | |
parent | a9894281ef9434402224c0dcbcce9f7d70821ea7 (diff) |
BTS_Tests_LAPDm: consider frequency hopping parameters
Diffstat (limited to 'library')
-rw-r--r-- | library/LAPDm_RAW_PT.ttcn | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/library/LAPDm_RAW_PT.ttcn b/library/LAPDm_RAW_PT.ttcn index 394deab3..77f0452b 100644 --- a/library/LAPDm_RAW_PT.ttcn +++ b/library/LAPDm_RAW_PT.ttcn @@ -38,9 +38,8 @@ module LAPDm_RAW_PT { /* directly switch to a dedicated channel (without RACH/IMM.ASS */ type record DCCH_switch_req { - Arfcn arfcn, - RslChannelNr chan_nr, - GsmTsc tsc + ChannelDescription chan_desc, + L1ctlMA ma } type record DCCH_switch_res { @@ -236,17 +235,30 @@ module LAPDm_RAW_PT { /* store/save channel description */ chan_desc := imm_ass.chan_desc; - /* send DM_EST_REQ */ + /* send DM_EST_REQ, TODO: Mobile Allocation */ f_L1CTL_DM_EST_REQ_IA(L1CTL, imm_ass); set_ph_state(PH_STATE_DCH); } /* switching directly to a dedicated channel *without RACH/IMM-ASS */ - private function f_switch_dcch(Arfcn arfcn, RslChannelNr chan_nr, GsmTsc tsc) runs on lapdm_CT { + private function f_switch_dcch(in DCCH_switch_req sw_req) runs on lapdm_CT { set_ph_state(PH_STATE_TUNING_DCH); /* store/save channel description */ - chan_desc.chan_nr := chan_nr; - L1CTL.send(ts_L1CTL_DM_EST_REQ_H0(chan_nr, tsc, arfcn.arfcn)); + chan_desc := sw_req.chan_desc; + + /* tune the L1 to the indicated channel */ + if (chan_desc.h) { + L1CTL.send(ts_L1CTL_DM_EST_REQ_H1(chan_desc.chan_nr, + chan_desc.tsc, + chan_desc.maio_hsn.hsn, + chan_desc.maio_hsn.maio, + sw_req.ma)); + } else { + L1CTL.send(ts_L1CTL_DM_EST_REQ_H0(chan_desc.chan_nr, + chan_desc.tsc, + chan_desc.arfcn)); + } + set_ph_state(PH_STATE_DCH); } @@ -431,7 +443,7 @@ module LAPDm_RAW_PT { } [] LAPDM_SP.receive(DCCH_switch_req:?) -> value sw_req { var DCCH_switch_res res; - f_switch_dcch(sw_req.arfcn, sw_req.chan_nr, sw_req.tsc); + f_switch_dcch(sw_req); if (ph_state == PH_STATE_DCH) { res := { omit }; } else { |