ranap: Allow RAB ReleaseList inside RabAssReq template

Related: OS#5152
Change-Id: If5dabf24ab410ef95f92be1cb865ac06330b495e
changes/00/27300/1
Daniel Willmann 9 months ago
parent 37c877fd1e
commit 9e789bec1b
  1. 2
      hnbgw/HNBGW_Tests.ttcn
  2. 226
      library/ranap/RANAP_Templates.ttcn

@ -947,7 +947,7 @@ friend function f_tc_rab_release(charstring id, TestHdlrParams pars) runs on Con
f_create_rab(pars.mgcp_pars);
/* 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);
T.start;

@ -1361,49 +1361,147 @@ template RAB_FailedList tr_RAB_FL(template RAB_ID rab_id,
}
} }
template (value) RANAP_PDU
ts_RANAP_RabAssReq(template (value) RAB_SetupOrModifyList rab_sml,
template (omit) RAB_AssignmentRequest.protocolExtensions exts := omit) := {
initiatingMessage := {
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 := *
}
}
}
} }
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,
criticality := reject,
value_ := {
rAB_AssignmentRequest := {
protocolIEs := {
{
id := id_RAB_SetupOrModifyList,
criticality := ignore,
value_ := {
rAB_SetupOrModifyList := rab_sml
}
}
},
protocolIEs := protocolIEs,
protocolExtensions := exts
}
}
}
return ret;
}
template RANAP_PDU
tr_RANAP_RabAssReq(template RAB_SetupOrModifyList rab_sml,
template RAB_AssignmentRequest.protocolExtensions exts := *) := {
initiatingMessage := {
function
tr_RANAP_RabAssReq(template RAB_SetupOrModifyList rab_sml := omit,
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,
criticality := reject,
value_ := {
rAB_AssignmentRequest := {
protocolIEs := {
{
id := id_RAB_SetupOrModifyList,
criticality := ignore,
value_ := {
rAB_SetupOrModifyList := rab_sml
}
}
},
protocolIEs := protocolIEs,
protocolExtensions := exts
}
}
}
return ret;
}
function
@ -1532,82 +1630,6 @@ tr_RANAP_RabAssResp(template RAB_SetupOrModifiedList rab_sml := omit,
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
}
}
}
}
/*****************************************************************************************************
*
*****************************************************************************************************/

Loading…
Cancel
Save