pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41746?usp=email )
Change subject: library/NGAP_Templates: PDUSessionResourceSetupRequest: Allow matching optional IEs ......................................................................
library/NGAP_Templates: PDUSessionResourceSetupRequest: Allow matching optional IEs
Change-Id: I7a61b4d7a70994e35f2fa5cbadc90f1088b32e64 --- M library/ngap/NGAP_Templates.ttcn 1 file changed, 79 insertions(+), 28 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/41746/1
diff --git a/library/ngap/NGAP_Templates.ttcn b/library/ngap/NGAP_Templates.ttcn index 1910120..27a9e33 100644 --- a/library/ngap/NGAP_Templates.ttcn +++ b/library/ngap/NGAP_Templates.ttcn @@ -145,35 +145,86 @@ /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.1.1 PDU SESSION RESOURCE SETUP REQUEST */ - template (present) InitiatingMessage mw_n2_PDUSessionResourceSetupRequest( - template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, - template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, - template (present) PDUSessionResourceSetupListSUReq p_pDUSessionResourceSetupListSUReq := ? - ) := { - procedureCode := id_PDUSessionResourceSetup, - criticality := reject, - value_ := { - PDUSessionResourceSetupRequest := { - protocolIEs := { - { - id := id_AMF_UE_NGAP_ID, - criticality := reject, - value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } - }, - { - id := id_RAN_UE_NGAP_ID, - criticality := reject, - value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } - }, - { - id := id_PDUSessionResourceSetupListSUReq, - criticality := reject, - value_ := { PDUSessionResourceSetupListSUReq := p_pDUSessionResourceSetupListSUReq } - } - } - } + function f_mw_n2_PDUSessionResourceSetupRequest(template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, + template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, + template RANPagingPriority p_rANPagingPriority := omit, + template NAS_PDU p_nAS_PDU := omit, + template (present) PDUSessionResourceSetupListSUReq p_pDUSessionResourceSetupListSUReq := ?, + template UEAggregateMaximumBitRate p_uEAggregateMaximumBitRate := omit, + template UESliceMaximumBitRateList p_uESliceMaximumBitRateList := omit + ) return template (present) InitiatingMessage { + + var template (present) InitiatingMessage pdu := { + procedureCode := id_PDUSessionResourceSetup, + criticality := reject, + value_ := { + PDUSessionResourceSetupRequest := { + protocolIEs := { + { + id := id_AMF_UE_NGAP_ID, + criticality := reject, + value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } + }, + { + id := id_RAN_UE_NGAP_ID, + criticality := reject, + value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } } - } // End of template mw_n2_PDUSessionResourceSetupRequest + } + } + } + }; + var integer idx := lengthof(pdu.value_.PDUSessionResourceSetupRequest.protocolIEs); + + /* RAN Paging Priority */ + if (not istemplatekind(p_rANPagingPriority, "omit")) { + pdu.value_.PDUSessionResourceSetupRequest.protocolIEs[idx] := { + id := id_RANPagingPriority, + criticality := ignore, + value_ := { RANPagingPriority := p_rANPagingPriority } + }; + idx := idx + 1; + } + + /* NAS-PDU */ + if (not istemplatekind(p_nAS_PDU, "omit")) { + pdu.value_.PDUSessionResourceSetupRequest.protocolIEs[idx] := { + id := id_NAS_PDU, + criticality := reject, + value_ := { NAS_PDU := p_nAS_PDU } + }; + idx := idx + 1; + } + + /* PDU Session Resource Setup Request List */ + pdu.value_.PDUSessionResourceSetupRequest.protocolIEs[idx] := { + id := id_PDUSessionResourceSetupListSUReq, + criticality := reject, + value_ := { PDUSessionResourceSetupListSUReq := p_pDUSessionResourceSetupListSUReq } + }; + idx := idx + 1; + + /* UE Aggregate Maximum Bit Rate */ + if (not istemplatekind(p_uEAggregateMaximumBitRate, "omit")) { + pdu.value_.PDUSessionResourceSetupRequest.protocolIEs[idx] := { + id := id_UEAggregateMaximumBitRate, + criticality := ignore, + value_ := { UEAggregateMaximumBitRate := p_uEAggregateMaximumBitRate } + }; + idx := idx + 1; + } + + /* UE Slice Maximum Bit Rate List */ + if (not istemplatekind(p_uESliceMaximumBitRateList, "omit")) { + pdu.value_.PDUSessionResourceSetupRequest.protocolIEs[idx] := { + id := id_UESliceMaximumBitRateList, + criticality := ignore, + value_ := { UESliceMaximumBitRateList := p_uESliceMaximumBitRateList } + }; + idx := idx + 1; + } + return pdu; + } // End of function f_mw_n2_PDUSessionResourceSetupRequest
} // End of group Receive