From d9a348c3ac30781648ef11202883601141ca613c Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Thu, 27 Jul 2023 16:08:23 +0200 Subject: [PATCH] ASCI: Allow incoming VGCS/VBS connections at RAN_Emulation.ttcnpp Similar to Handover Requests the RAN Emulation can accept new SCCP connections with VGCS/VBS Setup message and VGCS/VBS Assignment Request message. The point code for the incoming connection can be registered in the same way as for the Handover Request. In order to allow multiple connections with the same point code, the table entry in the ExpectTable must be released after receiving the message. VGCS/VBS calls have multiple connections to the same BSC. This patch does not break existing MSC handover tests. Related: OS#4854 Change-Id: I3fc0c5efe7d9f270804e7295aeb65cfe7898bd7e --- library/RAN_Emulation.ttcnpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index 2fba50ac4..99753da9a 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -1348,6 +1348,14 @@ runs on RAN_Emulation_CT return RAN_ConnHdlr { handoverRequest := true; handoverRequestPointCode := bit2int(conn_ind.calledAddress.signPointCode); log("ExpectedCreateCallback handoverRequest ", handoverRequestPointCode); + } else if (ischosen(conn_ind.userData.pdu.bssmap.vGCS_VBSSetup)) { + handoverRequest := true; + handoverRequestPointCode := bit2int(conn_ind.calledAddress.signPointCode); + log("ExpectedCreateCallback VGCS/VBS Setup ", handoverRequestPointCode); + } else if (ischosen(conn_ind.userData.pdu.bssmap.vGCS_VBSAssignmentRequest)) { + handoverRequest := true; + handoverRequestPointCode := bit2int(conn_ind.calledAddress.signPointCode); + log("ExpectedCreateCallback VGCS/VBS Assignment ", handoverRequestPointCode); } else { setverdict(fail, "N-CONNECT.ind with L3 != COMPLETE L3 nor a Handover Request"); mtc.stop; @@ -1359,6 +1367,9 @@ runs on RAN_Emulation_CT return RAN_ConnHdlr { " ==? ", handoverRequestPointCode); if (ExpectTable[i].handoverRequestPointCode == handoverRequestPointCode) { ret := ExpectTable[i].vc_conn; + /* release this entry to be used again */ + ExpectTable[i].handoverRequestPointCode := omit; + ExpectTable[i].vc_conn := null; log("Found Expect[", i, "] for handoverRequest handled at ", ret); return ret; } else {