pespin submitted this change.
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(-)
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 change 40818. To unsubscribe, or for help writing mail filters, visit settings.