pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40818?usp=email )
Change subject: NGAP_Templates: Fixes and improvements for UEContextReleaseComplete ...................................................................... NGAP_Templates: Fixes and improvements for UEContextReleaseComplete The existing templates for UEContextReleaseComplete were completelly wrong, probably due to copy-paste when introducing them. This commit fixes all those problems and allows passing optional parameters. * procedureCode was wrong * Criticality of several fields was wrong * Type of resource list was wrong, and marked as mandatory while it was optional. Change-Id: I50da7cd4cb15d8e6b2c68b21a4e4be93e3973593 --- M library/ngap/NGAP_Templates.ttcn 1 file changed, 154 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/18/40818/1 diff --git a/library/ngap/NGAP_Templates.ttcn b/library/ngap/NGAP_Templates.ttcn index 5ffe2a5..3dec8ef 100644 --- a/library/ngap/NGAP_Templates.ttcn +++ b/library/ngap/NGAP_Templates.ttcn @@ -1913,36 +1913,88 @@ /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.6 UE CONTEXT RELEASE COMPLETE */ - template (value) SuccessfulOutcome m_n2_UEContextReleaseComplete( - in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, - in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, - in template (value) PDUSessionResourceSetupListSURes p_pDUSessionResourceSetupListSURes - ) := { - procedureCode := id_InitialContextSetup, + template (value) SuccessfulOutcome m_n2_UEContextReleaseComplete(template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, + template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID) + := { + procedureCode := id_UEContextRelease, criticality := reject, value_ := { - PDUSessionResourceSetupResponse := { - 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_PDUSessionResourceSetupListSURes, - criticality := reject, - value_ := { PDUSessionResourceSetupListSURes := p_pDUSessionResourceSetupListSURes } - } - } - } + UEContextReleaseComplete := { + protocolIEs := { + { + id := id_AMF_UE_NGAP_ID, + criticality := ignore, + value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } + }, + { + id := id_RAN_UE_NGAP_ID, + criticality := ignore, + value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } + } + } + } } } // End of template m_n2_UEContextReleaseComplete + function f_ts_n2_UEContextReleaseComplete(template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, + template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, + template (omit) UserLocationInformation p_userLocationInformation := omit, + template (omit) InfoOnRecommendedCellsAndRANNodesForPaging p_infoOnRecommendedCellsAndRANNodesForPaging := omit, + template (omit) PDUSessionResourceListCxtRelCpl p_pDUSessionResourceListCxtRelCpl := omit, + template (omit) CriticalityDiagnostics p_criticalityDiagnostics := omit, + template (omit) PagingAssisDataforCEcapabUE p_pagingAssisDataforCEcapabUE := omit) + return template (value) SuccessfulOutcome { + + var template (value) SuccessfulOutcome pdu := m_n2_UEContextReleaseComplete(p_amfUeNgapID, p_ranUeNgapID); + var integer idx := lengthof(pdu.value_.UEContextReleaseComplete.protocolIEs); + + if (isvalue(p_userLocationInformation)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_UserLocationInformation, + criticality := ignore, + value_ := { UserLocationInformation := p_userLocationInformation } + }; + idx := idx + 1; + } + + if (isvalue(p_infoOnRecommendedCellsAndRANNodesForPaging)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_InfoOnRecommendedCellsAndRANNodesForPaging, + criticality := reject, + value_ := { InfoOnRecommendedCellsAndRANNodesForPaging := p_infoOnRecommendedCellsAndRANNodesForPaging } + }; + idx := idx + 1; + } + + if (isvalue(p_pDUSessionResourceListCxtRelCpl)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_PDUSessionResourceListCxtRelCpl, + criticality := reject, + value_ := { PDUSessionResourceListCxtRelCpl := p_pDUSessionResourceListCxtRelCpl } + }; + idx := idx + 1; + } + + if (isvalue(p_criticalityDiagnostics)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_CriticalityDiagnostics, + criticality := ignore, + value_ := { CriticalityDiagnostics := p_criticalityDiagnostics } + }; + idx := idx + 1; + } + + if (isvalue(p_pagingAssisDataforCEcapabUE)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_PagingAssisDataforCEcapabUE, + criticality := ignore, + value_ := { PagingAssisDataforCEcapabUE := p_pagingAssisDataforCEcapabUE } + } + idx := idx + 1; + } + return pdu; + } + } // End of group Send group Receive { @@ -1950,36 +2002,88 @@ /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.6 UE CONTEXT RELEASE COMPLETE */ - template (present) SuccessfulOutcome mw_n2_UEContextReleaseComplete( - template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, - template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, - template (present) PDUSessionResourceSetupListSURes p_pDUSessionResourceSetupListSURes := ? - ) := { - procedureCode := id_InitialContextSetup, + template (present) SuccessfulOutcome mw_n2_UEContextReleaseComplete(template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, + template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?) + := { + procedureCode := id_UEContextRelease, criticality := reject, value_ := { - PDUSessionResourceSetupResponse := { - 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_PDUSessionResourceSetupListSURes, - criticality := reject, - value_ := { PDUSessionResourceSetupListSURes := p_pDUSessionResourceSetupListSURes } - } - } - } + UEContextReleaseComplete := { + protocolIEs := { + { + id := id_AMF_UE_NGAP_ID, + criticality := ignore, + value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } + }, + { + id := id_RAN_UE_NGAP_ID, + criticality := ignore, + value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } + } + } + } } } // End of template mw_n2_UEContextReleaseComplete + function f_tr_n2_UEContextReleaseComplete(template (present) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, + template (present) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, + template UserLocationInformation p_userLocationInformation := omit, + template InfoOnRecommendedCellsAndRANNodesForPaging p_infoOnRecommendedCellsAndRANNodesForPaging := omit, + template PDUSessionResourceListCxtRelCpl p_pDUSessionResourceListCxtRelCpl := omit, + template CriticalityDiagnostics p_criticalityDiagnostics := omit, + template PagingAssisDataforCEcapabUE p_pagingAssisDataforCEcapabUE := omit) + return template (present) SuccessfulOutcome { + + var template (present) SuccessfulOutcome pdu := m_n2_UEContextReleaseComplete(p_amfUeNgapID, p_ranUeNgapID); + var integer idx := lengthof(pdu.value_.UEContextReleaseComplete.protocolIEs); + + if (not istemplatekind(p_userLocationInformation, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_UserLocationInformation, + criticality := ignore, + value_ := { UserLocationInformation := p_userLocationInformation } + }; + idx := idx + 1; + } + + if (not istemplatekind(p_infoOnRecommendedCellsAndRANNodesForPaging, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_InfoOnRecommendedCellsAndRANNodesForPaging, + criticality := reject, + value_ := { InfoOnRecommendedCellsAndRANNodesForPaging := p_infoOnRecommendedCellsAndRANNodesForPaging } + }; + idx := idx + 1; + } + + if (not istemplatekind(p_pDUSessionResourceListCxtRelCpl, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_PDUSessionResourceListCxtRelCpl, + criticality := reject, + value_ := { PDUSessionResourceListCxtRelCpl := p_pDUSessionResourceListCxtRelCpl } + }; + idx := idx + 1; + } + + if (not istemplatekind(p_criticalityDiagnostics, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_CriticalityDiagnostics, + criticality := ignore, + value_ := { CriticalityDiagnostics := p_criticalityDiagnostics } + }; + idx := idx + 1; + } + + if (not istemplatekind(p_pagingAssisDataforCEcapabUE, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_PagingAssisDataforCEcapabUE, + criticality := ignore, + value_ := { PagingAssisDataforCEcapabUE := p_pagingAssisDataforCEcapabUE } + } + idx := idx + 1; + } + return pdu; + } + } // End of group Receive } // End of group UE_CONTEXT_RELEASE_COMPLETE -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40818?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I50da7cd4cb15d8e6b2c68b21a4e4be93e3973593 Gerrit-Change-Number: 40818 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pes...@sysmocom.de>