BSSGP_Emulation: Add RIM port to BSSGP_CT

This port is used for sending/receiving RIM related BSSGP messages. It
exists once per BSSGP_CT Component (i.e. once per NSE), as RIM is global
for the entire NSE.

Change-Id: I04511df5dffbfe19faabf22014acc72b7673b7d6
This commit is contained in:
Harald Welte 2020-12-02 21:30:44 +01:00
parent f6e59b06d5
commit 0083ea6b69
1 changed files with 20 additions and 0 deletions

View File

@ -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) */