BSSMAP_Emulation: Introduce new MSC_CONN_PRIM_CONF_IND

If the ConnHdlr initiates an outbound connection, it needs to know
once that connection is established if it wants to send further
data. Transform the N-CONNECT.confirm into a MSC_CONN_PRIM_CONF_IND
and send it to the ConnHdlr.

Make use of it from the MSC_Tests when issuing a Complete L3 Info.

Change-Id: I7293a9f4993d13c90316224eb9f13e10130388ef
This commit is contained in:
Harald Welte 2018-01-21 20:43:53 +01:00
parent e5bd1ae81a
commit 71b693365d
2 changed files with 13 additions and 1 deletions

View File

@ -55,7 +55,9 @@ type enumerated BSSAP_Conn_Prim {
/* SCCP tell us that connection was released */
MSC_CONN_PRIM_DISC_IND,
/* we tell SCCP to release connection */
MSC_CONN_PRIM_DISC_REQ
MSC_CONN_PRIM_DISC_REQ,
/* Connection confirmed indication */
MSC_CONN_PRIM_CONF_IND
}
type record BSSAP_Conn_Req {
@ -420,6 +422,9 @@ function main(BssmapOps ops, charstring id) runs on BSSMAP_Emulation_CT {
/* SCCP -> Client: connection confirm for outbound connection */
[] BSSAP.receive(BSSAP_N_CONNECT_cfm:?) -> value conn_cfm {
vc_conn := f_comp_by_conn_id(conn_cfm.connectionId);
var BSSAP_Conn_Prim prim := MSC_CONN_PRIM_CONF_IND;
CLIENT.send(prim) to vc_conn;
/* handle user payload */
if (ispresent(conn_cfm.userData)) {
f_handle_userData(vc_conn, conn_cfm.userData);

View File

@ -93,6 +93,13 @@ runs on BSC_ConnHdlr {
var octetstring l3_enc := enc_PDU_ML3_MS_NW(l3);
BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own,
valueof(ts_BSSMAP_ComplL3(g_pars.cell_id, l3_enc))));
alt {
[] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {}
[] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {
setverdict(fail, "DISC.ind from SCCP");
self.stop;
}
}
}
/* helper function to fully establish a dedicated channel */