diff options
Diffstat (limited to 'library/Osmocom_CTRL_Adapter.ttcn')
-rw-r--r-- | library/Osmocom_CTRL_Adapter.ttcn | 44 |
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 { |