ipa: Give all components proper names to aid log interpretation

This commit is contained in:
Harald Welte 2017-11-25 00:23:54 +01:00
parent 66fecd46a8
commit be620f6da6
6 changed files with 33 additions and 22 deletions

View File

@ -27,7 +27,7 @@ type component BSC_MS_ConnHdlr extends BSSAP_ConnHdlr {
/* Callback function from general BSSMAP_Emulation whenever a new incoming
* SCCP connection arrivces. Must create + start a new component */
private function CreateCallback(ASP_SCCP_N_CONNECT_ind conn_ind)
private function CreateCallback(ASP_SCCP_N_CONNECT_ind conn_ind, charstring id)
runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {
log("Incoming SCCP Connection on BSC ?!?");
self.stop;

View File

@ -22,21 +22,25 @@ type component BSC_CT {
var SCCP_PAR_Address g_sccp_addr_own;
var SCCP_PAR_Address g_sccp_addr_remote;
var charstring g_bsc_num_str;
}
function main(charstring remote_ip, PortNumber remote_port,
charstring local_ip, PortNumber local_port,
MSC_SCCP_MTP3_parameters sccp_pars,
SCCP_PAR_Address sccp_addr_own,
SCCP_PAR_Address sccp_addr_remote) runs on BSC_CT
SCCP_PAR_Address sccp_addr_remote, charstring id) runs on BSC_CT
{
var integer i := 0;
g_sccp_addr_own := sccp_addr_own;
g_sccp_addr_remote := sccp_addr_remote;
/* create components */
vc_IPA := IPA_Emulation_CT.create;
vc_SCCP := SCCP_CT.create;
vc_BSSMAP := BSSMAP_Emulation_CT.create;
vc_IPA := IPA_Emulation_CT.create(id & "-IPA");
vc_SCCP := SCCP_CT.create(id & "-SCCP");
vc_BSSMAP := BSSMAP_Emulation_CT.create(id & "-BSSMAP");
map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT);
@ -51,14 +55,16 @@ function main(charstring remote_ip, PortNumber remote_port,
vc_IPA.start(IPA_Emulation.main_client(remote_ip, remote_port, local_ip, local_port));
vc_SCCP.start(SCCPStart(sccp_pars));
vc_BSSMAP.start(BSSMAP_Emulation.main(BSC_MS_BssmapOps));
vc_BSSMAP.start(BSSMAP_Emulation.main(BSC_MS_BssmapOps, id));
while (true) {
/* blocking wait for 5 seconds */
timer T := 5.0;
T.start;
T.timeout;
f_start_BSC_MS();
//vc_IPA.MTP3_SP_PORT.send(t_ASP_MTP3_TRANSFERreq_sccp('83'O, 1, 2, 0, '012345'O));
f_start_BSC_MS(id & "-MS-" & int2str(i));
i := i + 1;
}
vc_IPA.done;
@ -66,11 +72,11 @@ function main(charstring remote_ip, PortNumber remote_port,
vc_SCCP.done
}
function f_start_BSC_MS() runs on BSC_CT {
function f_start_BSC_MS(charstring id) runs on BSC_CT {
var BSC_MS_ConnHdlr vc_conn;
/* start new component */
vc_conn := BSC_MS_ConnHdlr.create;
vc_conn := BSC_MS_ConnHdlr.create(id);
/* connect client BSSAP port to BSSAP dispatcher */
connect(vc_conn:BSSAP, vc_BSSMAP:CLIENT);
/* start component */

View File

@ -103,19 +103,22 @@ runs on test_CT {
function f_init() runs on test_CT {
var integer i;
var charstring id;
for (i := 0; i < NUM_MSC; i := i+1) {
f_init_MscState(msc[i], mp_msc_pc +i, mp_bsc_pc, mp_msc_ssn, mp_bsc_ssn);
msc[i].MSC := MSC_CT.create;
msc[i].MSC.start(MSC_Simulation.main(mp_msc_ip, mp_msc_port + i, msc[i].sccp_pars, msc[i].sccp_addr_own));
id := "MSC" & int2str(i);
msc[i].MSC.start(MSC_Simulation.main(mp_msc_ip, mp_msc_port + i, msc[i].sccp_pars, msc[i].sccp_addr_own, id));
}
for (i := 0; i < NUM_BSC; i := i+1) {
f_init_BscState(bsc[i], mp_bsc_pc +i, mp_msc_pc, mp_bsc_ssn, mp_msc_ssn);
bsc[i].BSC := BSC_CT.create;
id := "BSC" & int2str(i);
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, bsc[i].sccp_addr_own,
bsc[i].sccp_addr_peer));
bsc[i].sccp_addr_peer, id));
}
}

View File

@ -26,11 +26,11 @@ type component MSC_ConnHdlr extends BSSAP_ConnHdlr {
/* Callback function from general BSSMAP_Emulation whenever a new incoming
* SCCP connection arrivces. Must create + start a new component */
private function CreateCallback(ASP_SCCP_N_CONNECT_ind conn_ind)
private function CreateCallback(ASP_SCCP_N_CONNECT_ind conn_ind, charstring id)
runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {
var MSC_ConnHdlr vc_conn;
/* Create a new BSSAP_ConnHdlr component */
vc_conn := MSC_ConnHdlr.create;
vc_conn := MSC_ConnHdlr.create(g_bssmap_id & "-Conn-" & int2str(conn_ind.connectionId));
/* connect it to the port */
connect(vc_conn:BSSAP, self:CLIENT);
/* start it */

View File

@ -31,12 +31,12 @@ type component MSC_CT {
function main(charstring local_ip, PortNumber local_port,
MSC_SCCP_MTP3_parameters sccp_pars,
SCCP_PAR_Address sccp_addr_own) runs on MSC_CT
SCCP_PAR_Address sccp_addr_own, charstring id) runs on MSC_CT
{
/* create components */
vc_IPA := IPA_Emulation_CT.create;
vc_SCCP := SCCP_CT.create;
vc_BSSMAP := BSSMAP_Emulation_CT.create;
vc_IPA := IPA_Emulation_CT.create(id & "-IPA");
vc_SCCP := SCCP_CT.create(id & "-SCCP");
vc_BSSMAP := BSSMAP_Emulation_CT.create(id & "-BSSMAP");
map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT);
@ -51,7 +51,7 @@ function main(charstring local_ip, PortNumber local_port,
vc_IPA.start(IPA_Emulation.main_server(local_ip, local_port));
vc_SCCP.start(SCCPStart(sccp_pars));
vc_BSSMAP.start(BSSMAP_Emulation.main(MSC_BssmapOps));
vc_BSSMAP.start(BSSMAP_Emulation.main(MSC_BssmapOps, id & "-BSSMAP"));
/* wait until termination of respective components */
vc_IPA.done;

View File

@ -57,6 +57,7 @@ type component BSSMAP_Emulation_CT {
/* use 16 as this is also the number of SCCP connections that SCCP_Emulation can handle */
var ConnectionData ConnectionTable[16];
var charstring g_bssmap_id;
var integer g_next_e1_ts := 1;
};
@ -226,7 +227,7 @@ runs on BSSMAP_Emulation_CT {
/* call-back type, to be provided by specific implementation; called when new SCCP connection
* arrives */
type function BssmapCreateCallback(ASP_SCCP_N_CONNECT_ind conn_ind)
type function BssmapCreateCallback(ASP_SCCP_N_CONNECT_ind conn_ind, charstring id)
runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr;
type function BssmapUnitdataCallback(PDU_BSSAP bssap)
@ -237,8 +238,9 @@ type record BssmapOps {
BssmapUnitdataCallback unitdata_cb
}
function main(BssmapOps ops) runs on BSSMAP_Emulation_CT {
function main(BssmapOps ops, charstring id) runs on BSSMAP_Emulation_CT {
g_bssmap_id := id;
f_conn_table_init();
while (true) {
@ -270,7 +272,7 @@ function main(BssmapOps ops) runs on BSSMAP_Emulation_CT {
/* SCCP -> Client: new connection from BSC */
[] SCCP.receive(ASP_SCCP_N_CONNECT_ind:?) -> value conn_ind {
vc_conn := ops.create_cb.apply(conn_ind);
vc_conn := ops.create_cb.apply(conn_ind, id);
/* store mapping between client components and SCCP connectionId */
f_conn_table_add(vc_conn, conn_ind.connectionId);
/* handle user payload */