aboutsummaryrefslogtreecommitdiffstats
path: root/sgsn
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-06-17 22:12:04 +0200
committerHarald Welte <laforge@osmocom.org>2020-06-18 13:33:43 +0200
commita5c71cdefe659f984f7d268a8e5dd980a66bac3b (patch)
tree406673ea39fdbec9e2df5779afc3372a0e515747 /sgsn
parentf2f3c9bf79f50667501d6cedb4f5a00c24797f3d (diff)
sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case
In some scenarios we do not expect a PDU from GTP to show up on the Gb side. Let's add support for this. Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Related: OS#4616
Diffstat (limited to 'sgsn')
-rw-r--r--sgsn/SGSN_Tests.ttcn15
1 files changed, 13 insertions, 2 deletions
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 77ebbcda..4b4bbd98 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -1506,15 +1506,26 @@ template (value) PDU_SN ts_SN_UD(BIT4 nsapi, octetstring payload) := {
}
/* Transceive given 'payload' as MT message from GTP -> OsmoSGSN -> Gb */
-private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer ran_index := 0)
+private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer ran_index := 0, boolean expect_fwd := true)
runs on BSSGP_ConnHdlr {
+ timer T := 5.0;
/* Send PDU via GTP from our simulated GGSN to the SGSN */
f_gtpu_send(apars, payload);
+ T.start;
/* Expect PDU via BSSGP/LLC on simulated PCU from SGSN */
alt {
[] as_xid(apars, ran_index);
//[] BSSGP[ran_index].receive(tr_BD_SNDCP(apars.sapi, tr_SN_UD(apars.nsapi, payload)));
- [] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload));
+ [expect_fwd] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload));
+ [expect_fwd] T.timeout {
+ setverdict(fail, "Timeout waiting for GTP-U to appear on BSSGP");
+ mtc.stop;
+ }
+ [not expect_fwd] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)) {
+ setverdict(fail, "GTP-U forwarded to BSSGP but not expected")
+ mtc.stop;
+ }
+ [not expect_fwd] T.timeout {}
}
}