diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index e3ad9fec6..0aa27e604 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -237,6 +237,9 @@ type component BSSGP_CT { * (currently only) SUSPEND/RESUME */ port BSSGP_SP_PT GLOBAL; + /* RAN INFORMATION MGMT */ + port BSSGP_SP_PT RIM; + /* port to a management instance */ port BSSGP_BVC_MGMT_SP_PT MGMT; @@ -305,6 +308,13 @@ private template PDU_BSSGP tr_GLOBAL := ( {pDU_BSSGP_SGSN_INVOKE_TRACE:=?}, {pDU_BSSGP_OVERLOAD:=?} ); +/* BSSGP messages that should arrive on the RIM port */ +private template PDU_BSSGP tr_RIM := ( + {pDU_BSSGP_RAN_INFORMATION:=?}, {pDU_BSSGP_RAN_INFORMATION_REQUEST:=?}, + {pDU_BSSGP_RAN_INFORMATION_ACK:=?}, {pDU_BSSGP_RAN_INFORMATION_ERROR:=?}, + {pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR:=?} +); + /* We are in BVC_S_UNBLOCKED state */ altstep as_sig_unblocked() runs on BSSGP_CT { var BSSGP_BVC_CT bvc_comp_ref; @@ -329,6 +339,11 @@ altstep as_sig_unblocked() runs on BSSGP_CT { [] BSCP.receive(f_BnsUdInd(tr_GLOBAL, 0)) -> value udi { GLOBAL.send(udi.bssgp); } + [] BSCP.receive(f_BnsUdInd(tr_RIM, 0)) -> value udi { + if (RIM.checkstate("Connected")) { + RIM.send(udi.bssgp); + } + } /* Route based on PTP BVCI in payload/IE of signaling PDU */ [] BSCP.receive(f_BnsUdInd(?, 0)) -> value udi { @@ -381,6 +396,11 @@ altstep as_sig_unblocked() runs on BSSGP_CT { [] GLOBAL.receive(tr_GLOBAL) -> value bssgp { BSCP.send(f_BnsUdReq(bssgp, 0, 0)); } + + [] RIM.receive(tr_RIM) -> value bssgp { + BSCP.send(f_BnsUdReq(bssgp, 0, 0)); + } + } /* We are in BVC_S_WAIT_NS_ALIVE_UNBLOCKED (only happens in BSS role) */