osmith has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33355 )


Change subject: msc: new test: TC_lu_and_mt_csd
......................................................................

msc: new test: TC_lu_and_mt_csd

Related: OS#4394
Change-Id: Ie1701546e3dc18a5b0da4608b44a580237c979a6
---
M library/MNCC_Types.ttcn
M msc/BSC_ConnectionHandler.ttcn
M msc/MSC_Tests.ttcn
3 files changed, 58 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/55/33355/1

diff --git a/library/MNCC_Types.ttcn b/library/MNCC_Types.ttcn
index 1de34a0..74b9ca9 100644
--- a/library/MNCC_Types.ttcn
+++ b/library/MNCC_Types.ttcn
@@ -192,6 +192,27 @@
        data            := omit
 };

+template MNCC_bearer_cap ts_MNCC_bcap_data := {
+       transfer        := 1,   /* unrestricted digital information */
+       mode            := 0,   /* circuit */
+       coding          := 0,   /* GSM standard */
+       radio           := 3,   /* FR/HR, FR preferred */
+       speech_ctm      := 0,   /* not supported */
+       speech_ver      := { -1 },
+       data            := {
+               rate_adaptation := GSM48_BCAP_RA_V110_X30,
+               sig_access := GSM48_BCAP_SA_NONE,
+               async := 1,
+               nr_stop_bits := 1,
+               nr_data_bits := 1,
+               user_rate := GSM48_BCAP_UR_4800,
+               parity := GSM48_BCAP_PAR_ODD,
+               interm_rate := GSM48_BCAP_IR_8k,
+               transp := GSM48_BCAP_TR_TRANSP,
+               modem_type := GSM48_BCAP_MT_V21
+       }
+};
+
 type record MNCC_number {
        GSM48_type_of_number    number_type,
        GSM48_num_plan_ind      plan,
@@ -514,12 +535,13 @@


 /* MT: MSC <- MNCC: SETUP.req from ext. MNCC handler to MSC */
-template MNCC_PDU ts_MNCC_SETUP_req(uint32_t call_id, charstring called, 
charstring calling, charstring imsi := "") := {
+template MNCC_PDU ts_MNCC_SETUP_req(uint32_t call_id, charstring called, 
charstring calling, charstring imsi := "",
+                                   template MNCC_bearer_cap bcap := 
ts_MNCC_bcap_voice) := {
        msg_type := MNCC_SETUP_REQ,
        u := {
                signal := {     /* See 24.008 9.3.23.1 */
                        callref := call_id,
-                       bearer_cap := ts_MNCC_bcap_voice,               /* 
mandatory */
+                       bearer_cap := valueof(bcap),                    /* 
mandatory */
                        called := valueof(ts_MNCC_number(called)),      /* 
optional */
                        calling := valueof(ts_MNCC_number(calling)),    /* 
optional */
                        redirecting := omit,                            /* 
optional */
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 3d7dc07..039a97d 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -1057,10 +1057,17 @@
 /* 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)));
+                                       hex2str(cpars.called_party), 
hex2str(g_pars.imsi), bcap));
 }

 private template (value) SDP_Message ts_SDP_CRCX_CN(CallParameters cpars) :=
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 9650b3e..22b308e 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -7202,6 +7202,21 @@
        vc_conn.done;
 }
 
+friend function f_tc_lu_and_mt_csd(charstring id, BSC_ConnHdlrPars pars) runs 
on BSC_ConnHdlr {
+       f_init_handler(pars);
+       var CallParameters cpars := valueof(t_CallParams);
+       cpars.csd := true;
+       f_perform_lu();
+       f_mt_call(cpars);
+}
+testcase TC_lu_and_mt_csd() runs on MTC_CT {
+       var BSC_ConnHdlr vc_conn;
+       f_init();
+
+       vc_conn := f_start_handler(refers(f_tc_lu_and_mt_csd), 7);
+       vc_conn.done;
+}
+
 control {
        execute( TC_cr_before_reset() );
        execute( TC_lu_imsi_noauth_tmsi() );
@@ -7381,6 +7396,7 @@
        execute( TC_auth_options_11() );

        execute( TC_lu_and_mo_csd() );
+       execute( TC_lu_and_mt_csd() );
 }



--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33355
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ie1701546e3dc18a5b0da4608b44a580237c979a6
Gerrit-Change-Number: 33355
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <[email protected]>
Gerrit-MessageType: newchange

Reply via email to