aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2023-06-21 16:19:51 +0200
committerOliver Smith <osmith@sysmocom.de>2023-07-18 09:45:26 +0200
commitf1219aa47ed43b0f93d961680f6142208af9c998 (patch)
treeb902fe2f658f982e83f6dd47d42d519cdd9348d6
parentdb99cb0378a46f56ee957c26299d86d2608be66d (diff)
msc: TC_lu_and_mt_csd: test multiple bearer services
-rw-r--r--msc/BSC_ConnectionHandler.ttcn9
-rw-r--r--msc/MSC_Tests.ttcn35
2 files changed, 35 insertions, 9 deletions
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 76702d4d..1359dc77 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -1059,17 +1059,12 @@ template CallParameters tr_CallParams := {
/* Allocate a call reference and send SETUP via MNCC to MSC */
function f_mt_call_initiate(inout CallParameters cpars)
runs on BSC_ConnHdlr {
- var template MNCC_bearer_cap bcap := ts_MNCC_bcap_voice;
-
- if (cpars.csd) {
- bcap := ts_MNCC_bcap_data;
- }
-
cpars.mo_call := false;
cpars.mncc_callref := f_rnd_int(2147483648);
MNCC.send(ts_MNCC_SETUP_req(cpars.mncc_callref, hex2str(g_pars.msisdn),
- hex2str(cpars.called_party), hex2str(g_pars.imsi), bcap));
+ hex2str(cpars.called_party), hex2str(g_pars.imsi),
+ cpars.mncc_bearer_cap));
}
private template (value) SDP_Message ts_SDP_CRCX_CN(CallParameters cpars) :=
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 22b308ee..1340252e 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -7202,13 +7202,44 @@ testcase TC_lu_and_mo_csd() runs on MTC_CT {
vc_conn.done;
}
-friend function f_tc_lu_and_mt_csd(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
- f_init_handler(pars);
+friend function f_mt_csd(charstring bs_name, BIT1 async, GSM48_bcap_transp transp, GSM48_bcap_user_rate user_rate)
+ runs on BSC_ConnHdlr {
+ log("-----------------------------------------------");
+ log("MT CSD: " & bs_name);
+ log("-----------------------------------------------");
+ g_Tguard.start(20.0);
+
var CallParameters cpars := valueof(t_CallParams);
+
cpars.csd := true;
+ cpars.mncc_bearer_cap := valueof(ts_MNCC_bcap_data);
+ cpars.mncc_bearer_cap.data.async := bit2int(async);
+ cpars.mncc_bearer_cap.data.transp := transp;
+ cpars.mncc_bearer_cap.data.user_rate := user_rate;
+
f_perform_lu();
f_mt_call(cpars);
}
+friend function f_tc_lu_and_mt_csd(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
+ f_init_handler(pars);
+
+ f_mt_csd("BS21T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_300);
+ f_mt_csd("BS22T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_1200);
+ f_mt_csd("BS24T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_2400);
+ f_mt_csd("BS25T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_4800);
+ f_mt_csd("BS26T", '1'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_9600);
+
+ f_mt_csd("BS21NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_300);
+ f_mt_csd("BS22NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_1200);
+ f_mt_csd("BS24NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_2400);
+ f_mt_csd("BS25NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_4800);
+ f_mt_csd("BS26NT", '1'B, GSM48_BCAP_TR_RLP, GSM48_BCAP_UR_9600);
+
+ f_mt_csd("BS31T", '0'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_1200);
+ f_mt_csd("BS32T", '0'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_2400);
+ f_mt_csd("BS33T", '0'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_4800);
+ f_mt_csd("BS34T", '0'B, GSM48_BCAP_TR_TRANSP, GSM48_BCAP_UR_9600);
+}
testcase TC_lu_and_mt_csd() runs on MTC_CT {
var BSC_ConnHdlr vc_conn;
f_init();