aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-07-14 19:04:18 +0700
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-07-14 21:07:50 +0700
commiteec14f0951b3a362d255291f465a00525573c4fb (patch)
tree9e93be27c6d2c239491acb11215890e3c6791e7b /library
parenta9894281ef9434402224c0dcbcce9f7d70821ea7 (diff)
BTS_Tests_LAPDm: consider frequency hopping parameters
Diffstat (limited to 'library')
-rw-r--r--library/LAPDm_RAW_PT.ttcn28
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 {