ipa: Give all components proper names to aid log interpretation
This commit is contained in:
parent
66fecd46a8
commit
be620f6da6
|
@ -27,7 +27,7 @@ type component BSC_MS_ConnHdlr extends BSSAP_ConnHdlr {
|
||||||
|
|
||||||
/* Callback function from general BSSMAP_Emulation whenever a new incoming
|
/* Callback function from general BSSMAP_Emulation whenever a new incoming
|
||||||
* SCCP connection arrivces. Must create + start a new component */
|
* 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 {
|
runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {
|
||||||
log("Incoming SCCP Connection on BSC ?!?");
|
log("Incoming SCCP Connection on BSC ?!?");
|
||||||
self.stop;
|
self.stop;
|
||||||
|
|
|
@ -22,21 +22,25 @@ type component BSC_CT {
|
||||||
|
|
||||||
var SCCP_PAR_Address g_sccp_addr_own;
|
var SCCP_PAR_Address g_sccp_addr_own;
|
||||||
var SCCP_PAR_Address g_sccp_addr_remote;
|
var SCCP_PAR_Address g_sccp_addr_remote;
|
||||||
|
|
||||||
|
var charstring g_bsc_num_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
function main(charstring remote_ip, PortNumber remote_port,
|
function main(charstring remote_ip, PortNumber remote_port,
|
||||||
charstring local_ip, PortNumber local_port,
|
charstring local_ip, PortNumber local_port,
|
||||||
MSC_SCCP_MTP3_parameters sccp_pars,
|
MSC_SCCP_MTP3_parameters sccp_pars,
|
||||||
SCCP_PAR_Address sccp_addr_own,
|
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_own := sccp_addr_own;
|
||||||
g_sccp_addr_remote := sccp_addr_remote;
|
g_sccp_addr_remote := sccp_addr_remote;
|
||||||
|
|
||||||
/* create components */
|
/* create components */
|
||||||
vc_IPA := IPA_Emulation_CT.create;
|
vc_IPA := IPA_Emulation_CT.create(id & "-IPA");
|
||||||
vc_SCCP := SCCP_CT.create;
|
vc_SCCP := SCCP_CT.create(id & "-SCCP");
|
||||||
vc_BSSMAP := BSSMAP_Emulation_CT.create;
|
vc_BSSMAP := BSSMAP_Emulation_CT.create(id & "-BSSMAP");
|
||||||
|
|
||||||
map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT);
|
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_IPA.start(IPA_Emulation.main_client(remote_ip, remote_port, local_ip, local_port));
|
||||||
vc_SCCP.start(SCCPStart(sccp_pars));
|
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) {
|
while (true) {
|
||||||
|
/* blocking wait for 5 seconds */
|
||||||
timer T := 5.0;
|
timer T := 5.0;
|
||||||
T.start;
|
T.start;
|
||||||
T.timeout;
|
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;
|
vc_IPA.done;
|
||||||
|
@ -66,11 +72,11 @@ function main(charstring remote_ip, PortNumber remote_port,
|
||||||
vc_SCCP.done
|
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;
|
var BSC_MS_ConnHdlr vc_conn;
|
||||||
|
|
||||||
/* start new component */
|
/* start new component */
|
||||||
vc_conn := BSC_MS_ConnHdlr.create;
|
vc_conn := BSC_MS_ConnHdlr.create(id);
|
||||||
/* connect client BSSAP port to BSSAP dispatcher */
|
/* connect client BSSAP port to BSSAP dispatcher */
|
||||||
connect(vc_conn:BSSAP, vc_BSSMAP:CLIENT);
|
connect(vc_conn:BSSAP, vc_BSSMAP:CLIENT);
|
||||||
/* start component */
|
/* start component */
|
||||||
|
|
|
@ -103,19 +103,22 @@ runs on test_CT {
|
||||||
|
|
||||||
function f_init() runs on test_CT {
|
function f_init() runs on test_CT {
|
||||||
var integer i;
|
var integer i;
|
||||||
|
var charstring id;
|
||||||
|
|
||||||
for (i := 0; i < NUM_MSC; i := i+1) {
|
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);
|
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 := 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) {
|
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);
|
f_init_BscState(bsc[i], mp_bsc_pc +i, mp_msc_pc, mp_bsc_ssn, mp_msc_ssn);
|
||||||
bsc[i].BSC := BSC_CT.create;
|
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].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_pars, bsc[i].sccp_addr_own,
|
||||||
bsc[i].sccp_addr_peer));
|
bsc[i].sccp_addr_peer, id));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,11 +26,11 @@ type component MSC_ConnHdlr extends BSSAP_ConnHdlr {
|
||||||
|
|
||||||
/* Callback function from general BSSMAP_Emulation whenever a new incoming
|
/* Callback function from general BSSMAP_Emulation whenever a new incoming
|
||||||
* SCCP connection arrivces. Must create + start a new component */
|
* 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 {
|
runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {
|
||||||
var MSC_ConnHdlr vc_conn;
|
var MSC_ConnHdlr vc_conn;
|
||||||
/* Create a new BSSAP_ConnHdlr component */
|
/* 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 it to the port */
|
||||||
connect(vc_conn:BSSAP, self:CLIENT);
|
connect(vc_conn:BSSAP, self:CLIENT);
|
||||||
/* start it */
|
/* start it */
|
||||||
|
|
|
@ -31,12 +31,12 @@ type component MSC_CT {
|
||||||
|
|
||||||
function main(charstring local_ip, PortNumber local_port,
|
function main(charstring local_ip, PortNumber local_port,
|
||||||
MSC_SCCP_MTP3_parameters sccp_pars,
|
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 */
|
/* create components */
|
||||||
vc_IPA := IPA_Emulation_CT.create;
|
vc_IPA := IPA_Emulation_CT.create(id & "-IPA");
|
||||||
vc_SCCP := SCCP_CT.create;
|
vc_SCCP := SCCP_CT.create(id & "-SCCP");
|
||||||
vc_BSSMAP := BSSMAP_Emulation_CT.create;
|
vc_BSSMAP := BSSMAP_Emulation_CT.create(id & "-BSSMAP");
|
||||||
|
|
||||||
map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT);
|
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_IPA.start(IPA_Emulation.main_server(local_ip, local_port));
|
||||||
vc_SCCP.start(SCCPStart(sccp_pars));
|
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 */
|
/* wait until termination of respective components */
|
||||||
vc_IPA.done;
|
vc_IPA.done;
|
||||||
|
|
|
@ -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 */
|
/* use 16 as this is also the number of SCCP connections that SCCP_Emulation can handle */
|
||||||
var ConnectionData ConnectionTable[16];
|
var ConnectionData ConnectionTable[16];
|
||||||
|
|
||||||
|
var charstring g_bssmap_id;
|
||||||
var integer g_next_e1_ts := 1;
|
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
|
/* call-back type, to be provided by specific implementation; called when new SCCP connection
|
||||||
* arrives */
|
* 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;
|
runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr;
|
||||||
|
|
||||||
type function BssmapUnitdataCallback(PDU_BSSAP bssap)
|
type function BssmapUnitdataCallback(PDU_BSSAP bssap)
|
||||||
|
@ -237,8 +238,9 @@ type record BssmapOps {
|
||||||
BssmapUnitdataCallback unitdata_cb
|
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();
|
f_conn_table_init();
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -270,7 +272,7 @@ function main(BssmapOps ops) runs on BSSMAP_Emulation_CT {
|
||||||
|
|
||||||
/* SCCP -> Client: new connection from BSC */
|
/* SCCP -> Client: new connection from BSC */
|
||||||
[] SCCP.receive(ASP_SCCP_N_CONNECT_ind:?) -> value conn_ind {
|
[] 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 */
|
/* store mapping between client components and SCCP connectionId */
|
||||||
f_conn_table_add(vc_conn, conn_ind.connectionId);
|
f_conn_table_add(vc_conn, conn_ind.connectionId);
|
||||||
/* handle user payload */
|
/* handle user payload */
|
||||||
|
|
Loading…
Reference in New Issue