msc: TC_lu_and_mo_csd: test multiple bearer services

Related: OS#4394
Change-Id: I74f983e1f5c0fef61018a9a5b92ed3b3cdbdfb5f
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 1340252..81819ff 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -7187,13 +7187,45 @@
 	f_TC_auth_options(11);
 }
 
-friend function f_tc_lu_and_mo_csd(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
-	f_init_handler(pars);
+friend function f_mo_csd(charstring bs_name, BIT1 async, GSM48_bcap_transp transp, GSM48_bcap_user_rate user_rate)
+		runs on BSC_ConnHdlr {
+	log("-----------------------------------------------");
+	log("MO CSD: " & bs_name);
+	log("-----------------------------------------------");
+	g_Tguard.start(20.0);
+
 	var CallParameters cpars := valueof(t_CallParams);
+
 	cpars.csd := true;
+	cpars.bearer_cap := valueof(ts_Bcap_csd);
+	cpars.bearer_cap.octet6.synchronous_asynchronous := async;
+	cpars.bearer_cap.octet6.connectionElement := int2bit(enum2int(transp), 2);
+	cpars.bearer_cap.octet6.userRate := int2bit(enum2int(user_rate), 4);
+
 	f_perform_lu();
 	f_mo_call(cpars);
 }
+
+friend function f_tc_lu_and_mo_csd(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
+	f_init_handler(pars);
+
+	f_mo_csd("BS21T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_300);
+	f_mo_csd("BS22T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_1200);
+	f_mo_csd("BS24T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_2400);
+	f_mo_csd("BS25T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_4800);
+	f_mo_csd("BS26T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_9600);
+
+	f_mo_csd("BS21NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_300);
+	f_mo_csd("BS22NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_1200);
+	f_mo_csd("BS24NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_2400);
+	f_mo_csd("BS25NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_4800);
+	f_mo_csd("BS26NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_9600);
+
+	f_mo_csd("BS31T", '0'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_1200);
+	f_mo_csd("BS32T", '0'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_2400);
+	f_mo_csd("BS33T", '0'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_4800);
+	f_mo_csd("BS34T", '0'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_9600);
+}
 testcase TC_lu_and_mo_csd() runs on MTC_CT {
 	var BSC_ConnHdlr vc_conn;
 	f_init();