MNCC_Emulation: allow moving call handling to another test component

Will be used by MSC_Tests.TC_call_re_establishment in
Ifdff5573eeb3b3d41e8599b9b0228411d2576864
where a call from one vc_conn gets re-established in another vc_conn.

Related: SYS#5130
Change-Id: If7e952e54ebd1bb88cce11ec5f0ff4826e02cb63
This commit is contained in:
Neels Hofmeyr 2021-07-27 22:32:30 +02:00 committed by laforge
parent 5c449f346e
commit 2edc2cd742
1 changed files with 15 additions and 1 deletions

View File

@ -287,6 +287,7 @@ runs on MNCC_Emulation_CT {
var MNCC_PDU mncc;
var MNCC_ConnHdlr vc_hdlr;
var charstring dest_nr;
var uint32_t mncc_call_id;
alt {
/* MNCC -> Client: UNIT-DATA (connectionless SCCP) from a BSC */
@ -360,6 +361,11 @@ runs on MNCC_Emulation_CT {
MNCC_PROC.reply(MNCCEM_register:{dest_nr, vc_hdlr}) to vc_hdlr;
}
[] MNCC_PROC.getcall(MNCCEM_change_connhdlr:{?,?}) -> param(mncc_call_id, vc_hdlr) {
f_call_table_del(mncc_call_id);
f_call_table_add(vc_hdlr, mncc_call_id);
MNCC_PROC.reply(MNCCEM_change_connhdlr:{mncc_call_id, vc_hdlr}) to vc_hdlr;
}
}
}
}
@ -384,9 +390,10 @@ type record ExpectData {
/* procedure based port to register for incoming calls */
signature MNCCEM_register(in charstring dest_nr, in MNCC_ConnHdlr hdlr);
signature MNCCEM_change_connhdlr(in uint32_t mncc_call_id, in MNCC_ConnHdlr hdlr);
type port MNCCEM_PROC_PT procedure {
inout MNCCEM_register;
inout MNCCEM_register, MNCCEM_change_connhdlr;
} with { extension "internal" };
/* CreateCallback that can be used as create_cb and will use the expectation table */
@ -445,6 +452,13 @@ function f_create_mncc_expect(charstring dest_number) runs on MNCC_ConnHdlr {
}
}
/* Move MNCC handling for a given call id to another MNCC_ConnHdlr test component. */
function f_mncc_change_connhdlr(uint32_t mncc_call_id) runs on MNCC_ConnHdlr {
MNCC_PROC.call(MNCCEM_change_connhdlr:{mncc_call_id, self}) {
[] MNCC_PROC.getreply(MNCCEM_change_connhdlr:{?,?}) {};
}
}
function DummyUnitdataCallback(MNCC_PDU mncc)
runs on MNCC_Emulation_CT return template MNCC_PDU {
log("Ignoring MNCC ", mncc);