bscnat: Add function to run actions on test per BSC component
Will be useful to test stuff on IPA layer BSC<->BSC-NAT. Change-Id: I97e743c79e5e9e7613ab91a1aa9ce2377a237fd5
This commit is contained in:
parent
d1d4953d31
commit
a839604956
|
@ -138,7 +138,7 @@ function f_init_vty(charstring id := "foo") runs on test_CT {
|
|||
f_vty_transceive(BSCNATVTY, "enable");
|
||||
}
|
||||
|
||||
function f_init(void_fn_bsc_ms fn_bsc_ms, BssmapCreateCallback cb_msc, boolean use_osmux) runs on test_CT {
|
||||
function f_init(void_fn_bsc_ms fn_bsc_ms, void_fn_bsc fn_bsc, BssmapCreateCallback cb_msc, boolean use_osmux) runs on test_CT {
|
||||
var integer i;
|
||||
var charstring id;
|
||||
|
||||
|
@ -166,7 +166,7 @@ function f_init(void_fn_bsc_ms fn_bsc_ms, BssmapCreateCallback cb_msc, boolean u
|
|||
pars.sccp_addr_remote := bsc[i].sccp_addr_peer;
|
||||
pars.use_osmux := use_osmux;
|
||||
bsc[i].BSC.start(BSC_MS_Simulation.main(mp_nat_ip, mp_nat_port, mp_bsc_ip, mp_bsc_port+i,
|
||||
bsc[i].sccp_pars, pars, fn_bsc_ms, id));
|
||||
bsc[i].sccp_pars, pars, fn_bsc_ms, fn_bsc, id));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -191,6 +191,7 @@ function f_TC_recv_dump(boolean use_osmux := false) runs on test_CT {
|
|||
timer T := 30.0;
|
||||
|
||||
f_init(refers(bsc_ms_establish_fully),
|
||||
refers(bsc_do_nothing),
|
||||
refers(CreateCallback_establish_fully),
|
||||
use_osmux);
|
||||
|
||||
|
|
|
@ -23,6 +23,9 @@ import from RAN_Emulation all;
|
|||
|
||||
import from BSC_MS_ConnectionHandler all;
|
||||
|
||||
type function void_fn_bsc(charstring id) runs on BSC_CT;
|
||||
type record of BSC_MS_ConnHdlr BSC_MS_ConnHdlrList;
|
||||
|
||||
type component BSC_CT {
|
||||
/* component references */
|
||||
var IPA_Emulation_CT vc_IPA;
|
||||
|
@ -64,11 +67,15 @@ runs on BSC_MS_ConnHdlr {
|
|||
fn.apply(id);
|
||||
}
|
||||
|
||||
function bsc_do_nothing(charstring id)
|
||||
runs on BSC_CT {
|
||||
}
|
||||
|
||||
function main(charstring remote_ip, PortNumber remote_port,
|
||||
charstring local_ip, PortNumber local_port,
|
||||
MSC_SCCP_MTP3_parameters sccp_pars,
|
||||
BSC_MS_TestHdlrParams pars,
|
||||
void_fn_bsc_ms fn, charstring id) runs on BSC_CT
|
||||
void_fn_bsc_ms fn_bsc_ms, void_fn_bsc fn_bsc, charstring id) runs on BSC_CT
|
||||
{
|
||||
var integer i := 0;
|
||||
timer T := 1.0;
|
||||
|
@ -101,8 +108,15 @@ function main(charstring remote_ip, PortNumber remote_port,
|
|||
T.start(2.0);
|
||||
T.timeout;
|
||||
|
||||
var BSC_MS_ConnHdlrList vc_conns;
|
||||
for (i := 0; i < mp_num_iterations; i := i+1) {
|
||||
f_start_BSC_MS(fn, id & "-MS-" & int2str(i));
|
||||
vc_conns[i] := f_start_handler(fn_bsc_ms, id & "-MS-" & int2str(i), g_pars);
|
||||
}
|
||||
|
||||
fn_bsc.apply(id);
|
||||
|
||||
for (i := 0; i < mp_num_iterations; i := i+1) {
|
||||
vc_conns[i].done;
|
||||
}
|
||||
|
||||
/* explicitly stop all components that we started above */
|
||||
|
@ -111,13 +125,4 @@ function main(charstring remote_ip, PortNumber remote_port,
|
|||
vc_SCCP.stop;
|
||||
}
|
||||
|
||||
function f_start_BSC_MS(void_fn_bsc_ms fn, charstring id) runs on BSC_CT {
|
||||
var BSC_MS_ConnHdlr vc_conn;
|
||||
/* start component */
|
||||
vc_conn := f_start_handler(fn, id, g_pars);
|
||||
/* blocking wait until component terminates. If you want to start MSs in parallel,
|
||||
* you have to remove this statement here */
|
||||
vc_conn.done;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue