ranap: Allow RAB ReleaseList inside RabAssReq template

Related: OS#5152
Change-Id: If5dabf24ab410ef95f92be1cb865ac06330b495e
This commit is contained in:
Daniel Willmann 2022-02-22 13:30:51 +01:00
parent 37c877fd1e
commit 9e789bec1b
2 changed files with 125 additions and 103 deletions

View File

@ -947,7 +947,7 @@ friend function f_tc_rab_release(charstring id, TestHdlrParams pars) runs on Con
f_create_rab(pars.mgcp_pars); f_create_rab(pars.mgcp_pars);
/* Send RAB Release */ /* Send RAB Release */
tx := valueof(ts_RANAP_RabAssignmentReqRabRel(ts_RAB_RL(t_RAB_id(23), ts_RanapCause_om_intervention))); tx := valueof(ts_RANAP_RabAssReq(rab_rl := ts_RAB_RL(t_RAB_id(23), ts_RanapCause_om_intervention)));
BSSAP.send(tx); BSSAP.send(tx);
T.start; T.start;

View File

@ -1361,49 +1361,147 @@ template RAB_FailedList tr_RAB_FL(template RAB_ID rab_id,
} }
} } } }
template (value) RANAP_PDU template (value) RAB_ReleaseList ts_RAB_RL(template (value) RAB_ID rab_id,
ts_RANAP_RabAssReq(template (value) RAB_SetupOrModifyList rab_sml, template (value) Cause cause) := { {
template (omit) RAB_AssignmentRequest.protocolExtensions exts := omit) := { {
initiatingMessage := { id := id_RAB_ReleaseItem,
criticality := ignore,
value_ := {
rAB_ReleaseItem := {
rAB_ID := rab_id,
cause := cause,
iE_Extensions := omit
}
}
}
} }
template RAB_ReleaseList tr_RAB_RL(template (present) RAB_ID rab_id,
template Cause cause := ?) := { {
{
id := id_RAB_ReleaseItem,
criticality := ignore,
value_ := {
rAB_ReleaseItem := {
rAB_ID := rab_id,
cause := cause,
iE_Extensions := *
}
}
}
} }
function
ts_RANAP_RabAssReq(template (omit) RAB_SetupOrModifyList rab_sml := omit,
template (omit) RAB_ReleaseList rab_rl := omit,
template (omit) RAB_AssignmentRequest.protocolExtensions exts := omit) return template RANAP_PDU {
var template RANAP_PDU ret;
var template RAB_AssignmentRequest.protocolIEs protocolIEs := {};
var integer ie_pos := 0;
var template RAB_AssignmentRequest.protocolIEs protocolIEs_rab_sml;
var template RAB_AssignmentRequest.protocolIEs protocolIEs_rab_rl;
/* RAB-SetupOrModifyList */
if (istemplatekind(rab_sml, "value")) {
protocolIEs_rab_sml := {
{
id := id_RAB_SetupOrModifyList,
criticality := ignore,
value_ := {
rAB_SetupOrModifyList := rab_sml
}
}
};
protocolIEs[ie_pos] := protocolIEs_rab_sml[0];
ie_pos := ie_pos + 1;
}
/* RAB-ReleaseList */
if (istemplatekind(rab_rl, "value")) {
protocolIEs_rab_rl := {
{
id := id_RAB_ReleaseList,
criticality := ignore,
value_ := {
rAB_ReleaseList := rab_rl
}
}
};
protocolIEs[ie_pos] := protocolIEs_rab_rl[0];
ie_pos := ie_pos + 1;
}
ret.initiatingMessage := {
procedureCode := id_RAB_Assignment, procedureCode := id_RAB_Assignment,
criticality := reject, criticality := reject,
value_ := { value_ := {
rAB_AssignmentRequest := { rAB_AssignmentRequest := {
protocolIEs := { protocolIEs := protocolIEs,
{
id := id_RAB_SetupOrModifyList,
criticality := ignore,
value_ := {
rAB_SetupOrModifyList := rab_sml
}
}
},
protocolExtensions := exts protocolExtensions := exts
} }
} }
} }
return ret;
} }
template RANAP_PDU
tr_RANAP_RabAssReq(template RAB_SetupOrModifyList rab_sml, function
template RAB_AssignmentRequest.protocolExtensions exts := *) := { tr_RANAP_RabAssReq(template RAB_SetupOrModifyList rab_sml := omit,
initiatingMessage := { template RAB_ReleaseList rab_rl := omit,
template RAB_AssignmentRequest.protocolExtensions exts := *) return template RANAP_PDU {
var template RANAP_PDU ret;
var template RAB_AssignmentRequest.protocolIEs protocolIEs := {};
var integer ie_pos := 0;
var template RAB_AssignmentRequest.protocolIEs protocolIEs_rab_sml;
var template RAB_AssignmentRequest.protocolIEs protocolIEs_rab_rl;
/* RAB-SetupOrModifyList */
if (not istemplatekind(rab_sml, "omit")) {
protocolIEs_rab_sml := {
{
id := id_RAB_SetupOrModifyList,
criticality := ignore,
value_ := {
rAB_SetupOrModifyList := rab_sml
}
}
};
protocolIEs[ie_pos] := protocolIEs_rab_sml[0];
ie_pos := ie_pos + 1;
}
/* RAB-ReleaseList */
if (not istemplatekind(rab_rl, "omit")) {
protocolIEs_rab_rl := {
{
id := id_RAB_ReleaseList,
criticality := ignore,
value_ := {
rAB_ReleaseList := rab_rl
}
}
};
protocolIEs[ie_pos] := protocolIEs_rab_rl[0];
ie_pos := ie_pos + 1;
}
ret.initiatingMessage := {
procedureCode := id_RAB_Assignment, procedureCode := id_RAB_Assignment,
criticality := reject, criticality := reject,
value_ := { value_ := {
rAB_AssignmentRequest := { rAB_AssignmentRequest := {
protocolIEs := { protocolIEs := protocolIEs,
{
id := id_RAB_SetupOrModifyList,
criticality := ignore,
value_ := {
rAB_SetupOrModifyList := rab_sml
}
}
},
protocolExtensions := exts protocolExtensions := exts
} }
} }
} }
return ret;
} }
function function
@ -1532,82 +1630,6 @@ tr_RANAP_RabAssResp(template RAB_SetupOrModifiedList rab_sml := omit,
return ret; return ret;
} }
template (value) RAB_ReleaseList ts_RAB_RL(template (value) RAB_ID rab_id,
template (value) Cause cause) := { {
{
id := id_RAB_ReleaseItem,
criticality := ignore,
value_ := {
rAB_ReleaseItem := {
rAB_ID := rab_id,
cause := cause,
iE_Extensions := omit
}
}
}
} }
template RAB_ReleaseList tr_RAB_RL(template (present) RAB_ID rab_id,
template Cause cause := ?) := { {
{
id := id_RAB_ReleaseItem,
criticality := ignore,
value_ := {
rAB_ReleaseItem := {
rAB_ID := rab_id,
cause := cause,
iE_Extensions := *
}
}
}
} }
template (value) RANAP_PDU
ts_RANAP_RabAssignmentReqRabRel(template (value) RAB_ReleaseList rab_rl,
template (omit) RAB_AssignmentRequest.protocolExtensions exts := omit) := {
initiatingMessage := {
procedureCode := id_RAB_Assignment,
criticality := reject,
value_ := {
rAB_AssignmentRequest := {
protocolIEs := {
{
id := id_RAB_ReleaseList,
criticality := ignore,
value_ := {
rAB_ReleaseList := rab_rl
}
}
},
protocolExtensions := exts
}
}
}
}
template RANAP_PDU
tr_RANAP_RabAssignmentReqRabRel(template RAB_ReleaseList rab_rl,
template RAB_AssignmentRequest.protocolExtensions exts := *) := {
initiatingMessage := {
procedureCode := id_RAB_Assignment,
criticality := reject,
value_ := {
rAB_AssignmentRequest := {
protocolIEs := {
{
id := id_RAB_ReleaseList,
criticality := ignore,
value_ := {
rAB_ReleaseList := rab_rl
}
}
},
protocolExtensions := exts
}
}
}
}
/***************************************************************************************************** /*****************************************************************************************************
* *
*****************************************************************************************************/ *****************************************************************************************************/