aboutsummaryrefslogtreecommitdiffstats
path: root/library/Osmocom_CTRL_Adapter.ttcn
diff options
context:
space:
mode:
Diffstat (limited to 'library/Osmocom_CTRL_Adapter.ttcn')
-rw-r--r--library/Osmocom_CTRL_Adapter.ttcn44
1 files changed, 31 insertions, 13 deletions
diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn
index 0be3ebbf..fefff8b6 100644
--- a/library/Osmocom_CTRL_Adapter.ttcn
+++ b/library/Osmocom_CTRL_Adapter.ttcn
@@ -26,12 +26,24 @@ type component CTRL_Adapter_CT {
port IPA_CTRL_PT IPA_CTRL;
}
-
-/*! Start the CTRL connection to the specified BSC IP+Port */
-function f_ipa_ctrl_start(charstring bsc_host, PortNumber bsc_port)
+/* wait for IPA CTRL link to connect and send UP */
+function f_ipa_ctrl_wait_link_up()
runs on CTRL_Adapter_CT {
- var charstring id := "IPA-CTRL"
timer T := 10.0;
+ T.start;
+ alt {
+ [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { }
+ [] T.timeout {
+ setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP");
+ mtc.stop;
+ }
+ }
+}
+
+/*! Start the CTRL client connection to the specified CTRL IP+Port server*/
+function f_ipa_ctrl_start_client(charstring bsc_host, PortNumber bsc_port)
+runs on CTRL_Adapter_CT {
+ var charstring id := "IPA-CTRL-CLI"
vc_CTRL_IPA := IPA_Emulation_CT.create(id & "-IPA");
@@ -41,15 +53,21 @@ runs on CTRL_Adapter_CT {
vc_CTRL_IPA.start(IPA_Emulation.main_client(bsc_host, bsc_port, "", 0,
c_IPA_default_ccm_pars, false));
- /* wait for IPA CTRL link to connect and send UP */
- T.start;
- alt {
- [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { }
- [] T.timeout {
- setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP");
- mtc.stop;
- }
- }
+ f_ipa_ctrl_wait_link_up();
+}
+
+/*! Start the CTRL server on the specified CTRL IP+Port */
+function f_ipa_ctrl_start_server(charstring listen_host, PortNumber listen_port)
+runs on CTRL_Adapter_CT {
+ var charstring id := "IPA-CTRL-SRV"
+ timer T := 10.0;
+
+ vc_CTRL_IPA := IPA_Emulation_CT.create(id & "-IPA");
+
+ map(vc_CTRL_IPA:IPA_PORT, system:IPA_CODEC_PT);
+ connect(vc_CTRL_IPA:IPA_CTRL_PORT, self:IPA_CTRL);
+
+ vc_CTRL_IPA.start(IPA_Emulation.main_server(listen_host, listen_port, false));
}
function f_ipa_ctrl_stop() runs on CTRL_Adapter_CT {