aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2023-07-27 16:08:23 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2023-07-28 11:28:13 +0200
commitd9a348c3ac30781648ef11202883601141ca613c (patch)
treefe378127ee53ca14ce7afa0719f1a5f7c9ea507c
parent7452806626cacd305c5f6668180bedaadb5fc899 (diff)
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
-rw-r--r--library/RAN_Emulation.ttcnpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp
index 2fba50ac..99753da9 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 {