osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33595 )
Change subject: TC_lu_and_mt_csd: test multiple bearer services ......................................................................
TC_lu_and_mt_csd: test multiple bearer services
Related: OS#4394 Change-Id: Idf6502c826a441b8dd18257c85f9a3323883825e --- M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn 2 files changed, 52 insertions(+), 12 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/95/33595/1
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 4eedeee..9b3b255 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -1059,17 +1059,12 @@ /* 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) := @@ -1564,10 +1559,9 @@
if (cpars.emergency) { BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_EMERG_SETUP(cpars.transaction_id))); - } if (cpars.csd) { - BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_SETUP(cpars.transaction_id, cpars.called_party, ts_Bcap_csd))); } else { - BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_SETUP(cpars.transaction_id, cpars.called_party))); + BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_SETUP(cpars.transaction_id, cpars.called_party, + cpars.bearer_cap))); }
if (cpars.stop_after_cc_setup) { diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 22b308e..4c14070 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -7202,13 +7202,49 @@ 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.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); + + 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();