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();
