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 <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
