diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index ecd9953..0844955 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1849,7 +1849,7 @@
 	return dt;
 }
 
-private function f_tc_assignment_csd(charstring id) runs on MSC_ConnHdlr {
+private function f_tc_assignment_csd(charstring data_rate_str, OCT1 data_rate) runs on MSC_ConnHdlr {
 	var template PDU_BSSAP exp_compl := f_gen_exp_compl();
 	var PDU_BSSAP ass_cmd := f_gen_ass_req();
 	var SDP_FIELD_PayloadType pt_csd := PT_CSD;
@@ -1857,7 +1857,11 @@
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelTypeCSD);
 	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecCSData}));
 
-	ass_cmd.pdu.bssmap.assignmentRequest.channelType.speechId_DataIndicator := GSM0808_DATA_RATE_TRANSP_4k8;
+	ass_cmd.pdu.bssmap.assignmentRequest.channelType.speechId_DataIndicator := data_rate;
+
+	log("-----------------------------------------------");
+	log("Assignment req with data rate: " & data_rate_str);
+	log("-----------------------------------------------");
 
 	f_establish_fully(ass_cmd, exp_compl);
 
@@ -1867,15 +1871,26 @@
 
 	f_perform_clear();
 }
+private function f_tc_assignment_csd_all(charstring id) runs on MSC_ConnHdlr {
+	/* Data rates that require multi-slot HSCSD assignment are not tested
+	 * on purpuse (not supported): T_32k0, T_28k8 */
+	f_tc_assignment_csd("T_14k4", GSM0808_DATA_RATE_TRANSP_14k4);
+	f_tc_assignment_csd("T_9k6", GSM0808_DATA_RATE_TRANSP_9k6);
+	f_tc_assignment_csd("T_4k8", GSM0808_DATA_RATE_TRANSP_4k8);
+	f_tc_assignment_csd("T_2k4", GSM0808_DATA_RATE_TRANSP_2k4);
+	f_tc_assignment_csd("T_1k2", GSM0808_DATA_RATE_TRANSP_1k2);
+	f_tc_assignment_csd("T_600", GSM0808_DATA_RATE_TRANSP_600);
+	f_tc_assignment_csd("T_1200_75", GSM0808_DATA_RATE_TRANSP_1200_75);
+}
 testcase TC_assignment_csd() runs on test_CT {
 	if (Misc_Helpers.f_osmo_repo_is("nightly")) { /* osmo-bsc > 1.10.0 */
 		var MSC_ConnHdlr vc_conn;
 		var TestHdlrParams pars := f_gen_test_hdlr_pars();
 		pars.encr := valueof(t_EncrParams('01'O, f_rnd_octstring(8)));
 
-		f_init(1, true);
+		f_init(1, true, guard_timeout := 90.0);
 		f_sleep(1.0);
-		vc_conn := f_start_handler(refers(f_tc_assignment_csd), pars);
+		vc_conn := f_start_handler(refers(f_tc_assignment_csd_all), pars);
 		vc_conn.done;
 	} else {
 		var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail;
