BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP
Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756
Related: OS#4951
diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp
index 5c825d6..7996f96 100644
--- a/library/BSSGP_Emulation.ttcnpp
+++ b/library/BSSGP_Emulation.ttcnpp
@@ -1,7 +1,7 @@
module BSSGP_Emulation {
/* BSSGP Emulation in TTCN-3
- * (C) 2018-2020 Harald Welte <laforge@gnumonks.org>
+ * (C) 2018-2021 Harald Welte <laforge@gnumonks.org>
* All rights reserved.
*
* Released under the terms of GNU General Public License, Version 2 or
@@ -306,7 +306,7 @@
private template PDU_BSSGP tr_GLOBAL_SIG := (
{pDU_BSSGP_SUSPEND:=?}, {pDU_BSSGP_SUSPEND_ACK:=?}, {pDU_BSSGP_SUSPEND_NACK:=?},
{pDU_BSSGP_RESUME:=?}, {pDU_BSSGP_RESUME_ACK:=?}, {pDU_BSSGP_RESUME_NACK:=?},
- {pDU_BSSGP_SGSN_INVOKE_TRACE:=?}, {pDU_BSSGP_OVERLOAD:=?}
+ {pDU_BSSGP_SGSN_INVOKE_TRACE:=?}, {pDU_BSSGP_OVERLOAD:=?}, {pDU_BSSGP_STATUS:=?}
);
/* BSSGP messages that should arrive on the RIM port */
@@ -784,6 +784,10 @@
};
type record length(16) of LLC_Entity LLC_Entities;
+private template PDU_BSSGP tr_GLOBAL_PTP := (
+ {pDU_BSSGP_STATUS:=?}
+);
+
function f_llc_create(boolean sgsn_role := false) return LLC_Entities {
var LLC_Entities llc;
for (var integer i := 0; i < 16; i := i+1) {
@@ -1141,6 +1145,14 @@
}
}
+ [] BVC.receive(tr_ptp_BnsUdInd(tr_GLOBAL_PTP, g_cfg.bvci)) -> value udi {
+ if (GLOBAL.checkstate("Connected")) {
+ GLOBAL.send(udi.bssgp);
+ } else {
+ setverdict(fail, "Received BSSGP STATUS ", udi.bssgp);
+ }
+ }
+
/* Any other PTP BSSGP message: If it has TLLI, route to component; otherwise broadcast */
[] BVC.receive(tr_ptp_BnsUdInd(?, g_cfg.bvci)) -> value udi {
var BssgpDecoded dec := f_dec_bssgp(udi.bssgp);