blob: 93e893f48d7b75333457402cb2838497d3f109e8 [file] [log] [blame]
Harald Welteffe55fc2018-01-17 22:39:54 +01001module Osmocom_CTRL_Adapter {
2
Harald Welte34b5a952019-05-27 11:54:11 +02003/* Module that test suites can 'inherit' in order to have a CTRL connection to the IUT which they're testing
4 * (C) 2018 Harald Welte <laforge@gnumonks.org>
5 * contributions by sysmocom - s.f.m.c. GmbH
6 * All rights reserved.
7 *
8 * Released under the terms of GNU General Public License, Version 2 or
9 * (at your option) any later version.
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 */
Harald Welteffe55fc2018-01-17 22:39:54 +010013
14import from IPL4asp_Types all;
15
16import from IPA_Emulation all;
17import from IPA_Types all;
18
19import from Osmocom_CTRL_Functions all;
20import from Osmocom_CTRL_Types all;
21
22
23type component CTRL_Adapter_CT {
24 var IPA_Emulation_CT vc_CTRL_IPA;
25 /* test port for the CTRL interface of the BSC */
26 port IPA_CTRL_PT IPA_CTRL;
27}
28
29
30/*! Start the CTRL connection to the specified BSC IP+Port */
31function f_ipa_ctrl_start(charstring bsc_host, PortNumber bsc_port)
32runs on CTRL_Adapter_CT {
33 var charstring id := "IPA-CTRL"
34 timer T := 10.0;
35
36 vc_CTRL_IPA := IPA_Emulation_CT.create(id & "-IPA");
37
38 map(vc_CTRL_IPA:IPA_PORT, system:IPA_CODEC_PT);
39 connect(vc_CTRL_IPA:IPA_CTRL_PORT, self:IPA_CTRL);
40
Philipp Maier1f581b42018-12-18 17:04:25 +010041 vc_CTRL_IPA.start(IPA_Emulation.main_client(bsc_host, bsc_port, "", 0,
Harald Welte2d86aff2018-04-17 11:23:04 +020042 c_IPA_default_ccm_pars, false));
Harald Welteffe55fc2018-01-17 22:39:54 +010043
44 /* wait for IPA CTRL link to connect and send UP */
45 T.start;
46 alt {
47 [] IPA_CTRL.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}) { }
48 [] T.timeout {
49 setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP");
Daniel Willmanne4ff5372018-07-05 17:35:03 +020050 mtc.stop;
Harald Welteffe55fc2018-01-17 22:39:54 +010051 }
52 }
53}
54
Harald Welte12055472018-03-17 20:10:08 +010055function f_ipa_ctrl_stop() runs on CTRL_Adapter_CT {
56 vc_CTRL_IPA.stop;
57}
Harald Welteffe55fc2018-01-17 22:39:54 +010058
59
60/* BSC specific CTRL helper functions */
61function f_ctrl_get_bts(IPA_CTRL_PT pt, integer bts_nr, charstring suffix) return CtrlValue {
62 return f_ctrl_get(pt, "bts." & int2str(bts_nr) & "." & suffix);
63}
64
65template charstring ts_bts(integer bts_nr) := "bts." & int2str(bts_nr) & ".";
66template charstring ts_bts_trx(integer bts_nr, integer trx_nr ) :=
67 valueof(ts_bts(bts_nr)) & "trx." & int2str(trx_nr) & ".";
68
69function f_ctrl_get_exp_bts(IPA_CTRL_PT pt, integer bts_nr, CtrlVariable suffix, template CtrlValue exp) {
70 f_ctrl_get_exp(pt, valueof(ts_bts(bts_nr)) & suffix, exp);
71}
72
73function f_ctrl_get_exp_trx(IPA_CTRL_PT pt, integer bts_nr, integer trx_nr, CtrlVariable suffix,
74 template CtrlValue exp)
75{
76 f_ctrl_get_exp(pt, valueof(ts_bts_trx(bts_nr, trx_nr)) & suffix, exp);
77}
78
79
80}