diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2023-07-27 16:08:23 +0200 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2023-07-28 11:28:13 +0200 |
commit | d9a348c3ac30781648ef11202883601141ca613c (patch) | |
tree | fe378127ee53ca14ce7afa0719f1a5f7c9ea507c | |
parent | 7452806626cacd305c5f6668180bedaadb5fc899 (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.ttcnpp | 11 |
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 { |