cbc: Support mme/bsc sctp/tcp server mode
Related: OS#4945
Change-Id: I9fa4ddfa18ac85644f219874e6b2166e1795e3a9
diff --git a/cbc/MME_ConnectionHandler.ttcn b/cbc/MME_ConnectionHandler.ttcn
index fec358c..ed0502e 100644
--- a/cbc/MME_ConnectionHandler.ttcn
+++ b/cbc/MME_ConnectionHandler.ttcn
@@ -25,15 +25,23 @@
type function void_fn() runs on MME_ConnHdlr;
+/* Coordinate with test_CT: */
+type port MME_ConnHdlr_Coord_PT message {
+ inout charstring;
+} with { extension "internal" };
+
/* this component represents a single subscriber connection */
type component MME_ConnHdlr extends SBC_AP_Adapter_CT {
var MME_ConnHdlrPars g_pars;
+ port MME_ConnHdlr_Coord_PT COORD;
}
type record MME_ConnHdlrPars {
+ charstring mme_host,
integer mme_sbcap_port,
charstring cbc_host,
integer cbc_sbcap_port,
+ boolean sctp_is_client,
void_fn start_fn,
CBS_Message exp_cbs_msg optional,
SBC_AP_Cause write_replace_warning_ind_cause optional,
@@ -42,7 +50,14 @@
function f_MME_ConnHdlr_main(charstring id, MME_ConnHdlrPars pars) runs on MME_ConnHdlr {
g_pars := pars;
- SBC_AP_Adapter.f_connect(g_pars.cbc_host, g_pars.cbc_sbcap_port, "", g_pars.mme_sbcap_port);
+ if (g_pars.sctp_is_client) {
+ SBC_AP_Adapter.f_connect(g_pars.cbc_host, g_pars.cbc_sbcap_port,
+ g_pars.mme_host, g_pars.mme_sbcap_port);
+ } else {
+ SBC_AP_Adapter.f_bind(g_pars.mme_host, g_pars.mme_sbcap_port);
+ SBC_AP_Adapter.f_wait_client_connect();
+ }
+ COORD.send(COORD_MSG_CONNECTED);
g_pars.start_fn.apply();
}