BTS_Tests: fix TC_rsl_rf_resource_ind: handle dynTS and PDCH

Change-Id: I2d13fd3f0fd15d1762bf6f2f61de85cbe990ec36
Related: osmo-bts.git I56f83db5264c246ec1b4b8a973105a4fc09931fb
Related: SYS#5313, OS#5956
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 6e4a36a..db66b0c 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -7758,22 +7758,38 @@
 	}
 }
 testcase TC_rsl_rf_resource_ind() runs on test_CT {
+	var TrxParsItem trx_pars := mp_trx_pars[0];
 	var RSL_ResourceInfo info := { };
+	var ChannelNrs chans := { };
 
 	f_init(trx_nr := 0);
 
 	f_init_l1ctl();
 	f_l1_tune(L1CTL);
 
-	/* g_AllChannels contains all logical channels */
-	for (var integer i := 0; i < lengthof(g_AllChannels); i := i + 1) {
-		var RslChannelNr chan_nr := g_AllChannels[i];
+	/* Generate a list of logical channels from module parameters */
+	for (var integer tn := 0; tn < lengthof(trx_pars.ts); tn := tn + 1) {
+		var PchanConfig config := trx_pars.ts[tn].config;
+		select (config) {
+		case (GSM_PCHAN_TCHH_TCHF_PDCH) {
+			/* dyn/osmocom: set to NONE by default */
+			}
+		case (GSM_PCHAN_TCHF_PDCH) {
+			/* dyn/ipaccess: set to TCH/F by default */
+			chans := chans & { valueof(ts_RslChanNr_Bm(tn)) };
+			}
+		case (GSM_PCHAN_PDCH) {
+			chans := chans & { valueof(ts_RslChanNr_PDCH(tn)) };
+			}
+		case else {
+			chans := chans & f_gen_chans_for_ts(tn, config);
+			}
+		}
+	}
 
-		/* FIXME: osmo-bts does not report for Osmocom style dynamic timeslots */
-		if (mp_trx_pars[0].ts[chan_nr.tn].config == GSM_PCHAN_TCHH_TCHF_PDCH)
-			{ continue; }
-
-		info := info & { valueof(ts_RSL_ResourceInfoItem(chan_nr, mp_interf_band)) };
+	/* Generate a list of RSL ResourceInfo items */
+	for (var integer i := 0; i < lengthof(chans); i := i + 1) {
+		info := info & { valueof(ts_RSL_ResourceInfoItem(chans[i], mp_interf_band)) };
 	}
 
 	/* Align to the first interference report */