bsc vamos: ensure lchan state in some places

Change-Id: I5979516cf2b2e1adf5269acd0b8e7adb5e6a1ac5
diff --git a/bsc/BSC_Tests_VAMOS.ttcn b/bsc/BSC_Tests_VAMOS.ttcn
index 5caeeed..1958dc5 100644
--- a/bsc/BSC_Tests_VAMOS.ttcn
+++ b/bsc/BSC_Tests_VAMOS.ttcn
@@ -83,7 +83,7 @@
 const integer NUM_BTS := 3;
 const integer NUM_MSC := 3;
 
-private function f_rsl_chan_nr_to_subslot(RslChannelNr chan_nr)
+private function f_rsl_chan_nr_to_subslot(RslChannelNr chan_nr, boolean use_vamos_subslot_nr := false)
 return integer
 {
 	var integer subslot;
@@ -97,12 +97,19 @@
 			subslot := chan_nr.u.lm.sub_chan;
 		}
 		case (t_RslChanNr_Osmo_VAMOS_Bm(?)) {
-			/* TCH/F, always subslot 0 */
-			subslot := 0;
+			/* TCH/F shadow */
+			if (use_vamos_subslot_nr) {
+				subslot := 1;
+			} else {
+				subslot := 0;
+			}
 		}
 		case (t_RslChanNr_Osmo_VAMOS_Lm(?, ?)) {
-			/* TCH/H */
+			/* TCH/H shadow */
 			subslot := chan_nr.u.lm.sub_chan;
+			if (use_vamos_subslot_nr) {
+				subslot := subslot + 2;
+			}
 		}
 		case else {
 			setverdict(fail, "unsupported RslChannelNr type in f_rsl_chan_nr_to_subslot()");
@@ -201,10 +208,10 @@
 	}
 }
 
-private function f_lchan_str(integer bts_nr, integer trx_nr, RslChannelNr chan_nr)
+private function f_lchan_str(integer bts_nr, integer trx_nr, RslChannelNr chan_nr, boolean use_vamos_subslot_nr := false)
 return charstring
 {
-	var integer subslot := f_rsl_chan_nr_to_subslot(chan_nr);
+	var integer subslot := f_rsl_chan_nr_to_subslot(chan_nr, use_vamos_subslot_nr := use_vamos_subslot_nr);
 	return "lchan " & int2str(bts_nr) & " " & int2str(trx_nr) & " " & int2str(chan_nr.tn) & " " & int2str(subslot);
 }
 
@@ -217,7 +224,7 @@
 
 private function f_lchan_ensure_established(TELNETasp_PT vty, integer bts_nr, integer trx_nr, RslChannelNr chan_nr)
 {
-	var charstring lchan_str := f_lchan_str(bts_nr, trx_nr, chan_nr);
+	var charstring lchan_str := f_lchan_str(bts_nr, trx_nr, chan_nr, use_vamos_subslot_nr := true);
 	var charstring lchan_info := f_vty_transceive_ret(vty, "show " & lchan_str);
 	if (f_strstr(lchan_info, "State: ESTABLISHED") < 0) {
 		log("'show lchan' replied: ", lchan_info);
@@ -465,7 +472,7 @@
 	setverdict(pass);
 
 	f_sleep(1.0);
-	f_vty_transceive(BSCVTY, "show lchan summary");
+	f_lchan_ensure_established(BSCVTY, 0, 0, g_chan_nr);
 
 	f_verify_dtap();
 }
@@ -575,8 +582,7 @@
 	setverdict(pass);
 
 	f_sleep(1.0);
-	f_vty_transceive(BSCVTY, "show lchan summary");
-
+	f_lchan_ensure_established(BSCVTY, 0, 0, g_chan_nr);
 	f_verify_dtap();
 }