diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn index 7b9a49c96..745e33312 100644 --- a/hnbgw/HNBGW_Tests.ttcn +++ b/hnbgw/HNBGW_Tests.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; diff --git a/library/ranap/RANAP_Templates.ttcn b/library/ranap/RANAP_Templates.ttcn index caccdc76d..11947d9a1 100644 --- a/library/ranap/RANAP_Templates.ttcn +++ b/library/ranap/RANAP_Templates.ttcn @@ -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 - } - } - } -} - /***************************************************************************************************** * *****************************************************************************************************/