pespin has submitted this change. (
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(-)
Approvals:
Jenkins Builder: Verified
osmith: Looks good to me, but someone else must approve
fixeria: Looks good to me, approved
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: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I50da7cd4cb15d8e6b2c68b21a4e4be93e3973593
Gerrit-Change-Number: 40818
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>