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>

Reply via email to