ASCI: Rename handoverRequest to n_connect in RAN_Emulation.ttcnpp

The expectation table is used to deliver new connections with Handover
Request as well as with VGCS/VBS Setup and VGCS/VBS Assignment Request.
"handoverRequest" is renamed to "n_connect".

Related: OS#4854
Change-Id: I941c5db5235785841f3368ef908a409bbb12150e
This commit is contained in:
Andreas Eversberg 2023-07-28 10:45:20 +02:00
parent d9a348c3ac
commit e5a6ef1d31
3 changed files with 37 additions and 37 deletions

View File

@ -1266,9 +1266,9 @@ function main(RanOps ops, charstring id) runs on RAN_Emulation_CT {
PROC.reply(RAN_register:{l3_info, vc_hdlr}) to vc_hdlr;
}
[] PROC.getcall(RAN_register_handoverRequest:{?,?}) -> param(targetPointCode, vc_hdlr) {
[] PROC.getcall(RAN_register_n_connect:{?,?}) -> param(targetPointCode, vc_hdlr) {
f_create_expect(omit, vc_hdlr, targetPointCode);
PROC.reply(RAN_register_handoverRequest:{targetPointCode, vc_hdlr}) to vc_hdlr;
PROC.reply(RAN_register_n_connect:{targetPointCode, vc_hdlr}) to vc_hdlr;
}
[] PROC.getcall(RAN_register_sccp_cr_without_payload:{?}) -> param(vc_hdlr) {
@ -1305,7 +1305,7 @@ private function f_mgcp_ep_extract_cic(charstring inp) return integer {
type record ExpectData {
/* L3 payload based on which we can match it */
octetstring l3_payload optional,
integer handoverRequestPointCode optional,
integer n_connectPointCode optional,
boolean sccp_cr_without_payload,
/* component reference for this connection */
RAN_ConnHdlr vc_conn
@ -1313,7 +1313,7 @@ type record ExpectData {
/* procedure based port to register for incoming connections */
signature RAN_register(in octetstring l3, in RAN_ConnHdlr hdlr);
signature RAN_register_handoverRequest(in integer targetPointCode, in RAN_ConnHdlr hdlr);
signature RAN_register_n_connect(in integer targetPointCode, in RAN_ConnHdlr hdlr);
signature RAN_register_sccp_cr_without_payload(in RAN_ConnHdlr hdlr);
/* procedure based port to register for incoming IMSI/TMSI */
@ -1327,7 +1327,7 @@ signature RAN_last_n_sd(in RAN_ConnHdlr hdlr, out N_Sd_Array last_n_sd);
signature RAN_continue_after_n_sd(N_Sd_Array last_n_sd, in RAN_ConnHdlr hdlr);
type port RAN_PROC_PT procedure {
inout RAN_register, RAN_register_imsi, RAN_unregister_imsi, RAN_register_handoverRequest,
inout RAN_register, RAN_register_imsi, RAN_unregister_imsi, RAN_register_n_connect,
RAN_register_sccp_cr_without_payload, RAN_last_n_sd, RAN_continue_after_n_sd;
} with { extension "internal" };
@ -1337,40 +1337,40 @@ function ExpectedCreateCallback(BSSAP_N_CONNECT_ind conn_ind, charstring id)
runs on RAN_Emulation_CT return RAN_ConnHdlr {
var RAN_ConnHdlr ret := null;
var octetstring l3_info;
var boolean handoverRequest := false;
var integer handoverRequestPointCode;
var boolean n_connect := false;
var integer n_connectPointCode;
var integer i;
if (ischosen(conn_ind.userData.pdu.bssmap.completeLayer3Information)) {
l3_info := conn_ind.userData.pdu.bssmap.completeLayer3Information.layer3Information.layer3info;
log("ExpectedCreateCallback completeLayer3Information");
} else if (ischosen(conn_ind.userData.pdu.bssmap.handoverRequest)) {
handoverRequest := true;
handoverRequestPointCode := bit2int(conn_ind.calledAddress.signPointCode);
log("ExpectedCreateCallback handoverRequest ", handoverRequestPointCode);
n_connect := true;
n_connectPointCode := bit2int(conn_ind.calledAddress.signPointCode);
log("ExpectedCreateCallback handoverRequest ", n_connectPointCode);
} else if (ischosen(conn_ind.userData.pdu.bssmap.vGCS_VBSSetup)) {
handoverRequest := true;
handoverRequestPointCode := bit2int(conn_ind.calledAddress.signPointCode);
log("ExpectedCreateCallback VGCS/VBS Setup ", handoverRequestPointCode);
n_connect := true;
n_connectPointCode := bit2int(conn_ind.calledAddress.signPointCode);
log("ExpectedCreateCallback VGCS/VBS Setup ", n_connectPointCode);
} else if (ischosen(conn_ind.userData.pdu.bssmap.vGCS_VBSAssignmentRequest)) {
handoverRequest := true;
handoverRequestPointCode := bit2int(conn_ind.calledAddress.signPointCode);
log("ExpectedCreateCallback VGCS/VBS Assignment ", handoverRequestPointCode);
n_connect := true;
n_connectPointCode := bit2int(conn_ind.calledAddress.signPointCode);
log("ExpectedCreateCallback VGCS/VBS Assignment ", n_connectPointCode);
} else {
setverdict(fail, "N-CONNECT.ind with L3 != COMPLETE L3 nor a Handover Request");
setverdict(fail, "N-CONNECT.ind with L3 != COMPLETE L3 nor a new BSS connection");
mtc.stop;
}
for (i := 0; i < sizeof(ExpectTable); i:= i+1) {
if (handoverRequest) {
log("ExpectTable[", i, "].handoverRequestPointCode = ", ExpectTable[i].handoverRequestPointCode,
" ==? ", handoverRequestPointCode);
if (ExpectTable[i].handoverRequestPointCode == handoverRequestPointCode) {
if (n_connect) {
log("ExpectTable[", i, "].n_connectPointCode = ", ExpectTable[i].n_connectPointCode,
" ==? ", n_connectPointCode);
if (ExpectTable[i].n_connectPointCode == n_connectPointCode) {
ret := ExpectTable[i].vc_conn;
/* release this entry to be used again */
ExpectTable[i].handoverRequestPointCode := omit;
ExpectTable[i].n_connectPointCode := omit;
ExpectTable[i].vc_conn := null;
log("Found Expect[", i, "] for handoverRequest handled at ", ret);
log("Found Expect[", i, "] for N-CONNECT handled at ", ret);
return ret;
} else {
continue;
@ -1436,25 +1436,25 @@ runs on RAN_Emulation_CT return RAN_ConnHdlr {
#endif
private function f_create_expect(template octetstring l3, RAN_ConnHdlr hdlr,
template integer handoverRequestPointCode := omit)
template integer n_connectPointCode := omit)
runs on RAN_Emulation_CT {
var integer i;
log("f_create_expect(l3 := ", l3, ", handoverRequest := ", handoverRequestPointCode);
log("f_create_expect(l3 := ", l3, ", n_connectPointCode := ", n_connectPointCode);
for (i := 0; i < sizeof(ExpectTable); i := i+1) {
if (not ispresent(ExpectTable[i].l3_payload)
and not ExpectTable[i].sccp_cr_without_payload
and not ispresent(ExpectTable[i].handoverRequestPointCode)) {
and not ispresent(ExpectTable[i].n_connectPointCode)) {
if (ispresent(l3)) {
ExpectTable[i].l3_payload := valueof(l3);
} else {
ExpectTable[i].sccp_cr_without_payload := true;
}
if (ispresent(handoverRequestPointCode)) {
ExpectTable[i].handoverRequestPointCode := valueof(handoverRequestPointCode);
if (ispresent(n_connectPointCode)) {
ExpectTable[i].n_connectPointCode := valueof(n_connectPointCode);
}
ExpectTable[i].vc_conn := hdlr;
if (ispresent(handoverRequestPointCode)) {
log("Created Expect[", i, "] for handoverRequest to be handled at ", hdlr);
if (ispresent(n_connectPointCode)) {
log("Created Expect[", i, "] for N-CONNECT to be handled at ", hdlr);
} else {
log("Created Expect[", i, "] for ", l3, " to be handled at ", hdlr);
}
@ -1499,7 +1499,7 @@ private function f_expect_table_init()
runs on RAN_Emulation_CT {
for (var integer i := 0; i < sizeof(ExpectTable); i := i+1) {
ExpectTable[i].l3_payload := omit;
ExpectTable[i].handoverRequestPointCode := omit;
ExpectTable[i].n_connectPointCode := omit;
ExpectTable[i].sccp_cr_without_payload := false;
}
}

View File

@ -1969,9 +1969,9 @@ function f_expect_clear(float t := 5.0, boolean verify_vlr_cell_id := true) runs
}
}
function f_create_bssmap_exp_handoverRequest(integer targetPointCode) runs on BSC_ConnHdlr {
BSSAP_PROC.call(RAN_register_handoverRequest:{targetPointCode, self}) {
[] BSSAP_PROC.getreply(RAN_register_handoverRequest:{?, ?}) {};
function f_create_bssmap_exp_n_connect(integer targetPointCode) runs on BSC_ConnHdlr {
BSSAP_PROC.call(RAN_register_n_connect:{targetPointCode, self}) {
[] BSSAP_PROC.getreply(RAN_register_n_connect:{?, ?}) {};
}
}

View File

@ -5819,7 +5819,7 @@ private function f_tc_ho_inter_bsc0(charstring id, BSC_ConnHdlrPars pars) runs o
/* Ok, that went well, now the other BSC is handovering back here --
* from now on this here is the new BSS. */
f_create_bssmap_exp_handoverRequest(193);
f_create_bssmap_exp_n_connect(193);
var template BSSMAP_IE_EncryptionInformation encryptionInformation;
var template BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm;
@ -5883,7 +5883,7 @@ private function f_tc_ho_inter_bsc1(charstring id, BSC_ConnHdlrPars pars) runs o
bss_rtp_ip := "1.2.3.4";
}
f_init_handler(pars);
f_create_bssmap_exp_handoverRequest(194);
f_create_bssmap_exp_n_connect(194);
var template BSSMAP_IE_EncryptionInformation encryptionInformation;
var template BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm;
@ -6218,7 +6218,7 @@ private function f_tc_ho_inter_msc_out(charstring id, BSC_ConnHdlrPars pars) run
/* inter-MSC handover back to the first MSC */
f_create_bssmap_exp_handoverRequest(193);
f_create_bssmap_exp_n_connect(193);
cil := { cIl_CGI := { ts_BSSMAP_CI_CGI('262'H, '42'H, 23, 42) } };
/* old BSS sends Handover Required, via inter-MSC E link: like