module Lib_NG_NAS_Templates {

  // Lib3GPP/Common
  import from CommonDefs all;
  import from NAS_CommonTypeDefs all;

  // Lib3GPP/NG_NAS
  import from NG_NAS_TypeDefs all;
  import from NG_NAS_MsgContainers all;
  import from NG_NAS_Templates all;
  import from NG_NAS_Common all;

  // Lib3GPP/NasEmulation
  import from NAS_CommonTemplates all;

  template (omit) NG_NAS_DL_Message_Type m_NG_AUTHENTICATION_REQUEST(
                                                                    in NAS_KsiValue p_KeySetId,
                                                                    in template (value) ABBA p_ABBA,
                                                                    in template (omit) RAND p_RAND := omit,
                                                                    in template (omit) AUTN p_AUTN := omit,
                                                                    in template (omit) EAP_Message p_EAP := omit
                                                                    ) modifies cs_NG_AUTHENTICATION_REQUEST := {
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    authentication_Request := {
    }
  } // End of template m_NG_AUTHENTICATION_REQUEST

  template (present) NG_NAS_DL_Message_Type mw_NG_AUTHENTICATION_REQUEST(
                                                                         template (present) NAS_KsiValue p_KeySetId := ?,
                                                                         template (present) ABBA p_ABBA := ?,
                                                                         template RAND p_RAND := *,
                                                                         template AUTN p_AUTN := *,
                                                                         template EAP_Message p_EAP := *
                                                                         ) := { /* 24.501 cl. 8.2.1 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    authentication_Request := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_AuthenticationRequest, /* cl. 9.7      M V 1   */
      spareHalfOctet2         := tsc_SpareHalfOctet,              /* cl. 9.5      M V 1/2 */
      ngNasKeySetId           := cr_NAS_KeySetIdentifier(p_KeySetId, tsc_NasKsi_NativeSecurityContext), /* cl. 9.11.3.32 M V 1/2 */
      abba                    := p_ABBA,                          /* cl. 9.11.3.10 M LV 3-n */
      rand                    := p_RAND,                          /* cl. 9.11.3.16 O TV 17  IEI=21 */
      autn                    := p_AUTN,                          /* cl. 9.11.3.15 O TLV 18 IEI=20 */
      eapMessage              := p_EAP                            /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
    }
  } // End of template mw_NG_AUTHENTICATION_REQUEST

  template (omit) NG_NAS_UL_Message_Type m_NG_AUTHENTICATION_RESPONSE(
                                                                      in template (value) AuthenticationResponseParameter p_Res,
                                                                      in template (omit) EAP_Message p_EAP := omit
                                                                      ) := { /* 24.501 cl. 8.2.2 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    authentication_Response := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_AuthenticationResponse, /* cl. 9.7      M V 1   */
      authResponseParam       := p_Res,   /* cl. 9.11.3.17 O TLV 18 IEI=2D */
      eapMessage              := p_EAP                    /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
    }
  } // End of template m_NG_AUTHENTICATION_RESPONSE

  template (present) NG_NAS_UL_Message_Type mw_NG_AUTHENTICATION_RESPONSE(
                                                                          template (present) AuthenticationResponseParameter p_Res := mw_AuthenticationResponseParameter(?),
                                                                          template EAP_Message p_EAP := *) modifies cr_NG_AUTHENTICATION_RESPONSE :=
  { /* 24.501 cl. 8.2.2 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    authentication_Response := {}
  } // End of template mw_NG_AUTHENTICATION_RESPONSE

  template (value) NG_NAS_DL_Message_Type m_NG_AUTHENTICATION_RESULT(
                                                                     in NAS_KsiValue p_KeySetId,
                                                                     in template (omit) EAP_Message p_EAP,
                                                                     in template (omit) ABBA p_ABBA
                                                                     ) modifies cs_NG_AUTHENTICATION_RESULT := { /* @status    APPROVED (NR5GC) */
    /* 24.501 cl. 8.2.3 */
    authentication_Result := {
    }
  } // End of template m_NG_AUTHENTICATION_RESULT

  template (present) NG_NAS_DL_Message_Type mw_NG_AUTHENTICATION_RESULT(
                                                                        template (present) NAS_KsiValue p_KeySetId := ?,
                                                                        template EAP_Message p_EAP := *,
                                                                        template ABBA p_ABBA := *
                                                                        ) := { /* @status    APPROVED (NR5GC) */
    /* 24.501 cl. 8.2.3 */
    authentication_Result := {
      protocolDiscriminator   := tsc_EPD_GMM,                      /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,               /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_AuthenticationResult,   /* cl. 9.7      M V 1   */
      spareHalfOctet2         := tsc_SpareHalfOctet,               /* cl. 9.5      M V 1/2 */
      ngNasKeySetId           := cr_NAS_KeySetIdentifier(p_KeySetId, tsc_NasKsi_NativeSecurityContext), /* cl. 9.11.3.32 M V 1/2 */
      eapMessage              := p_EAP,                            /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
      abba                    := p_ABBA                            /* cl. 9.11.3.10 M LV 3-n */
    }
  } // End of template mw_NG_AUTHENTICATION_RESULT

  template (omit) NG_NAS_UL_Message_Type m_NG_AUTHENTICATION_FAILURE(
                                                                     in template (value) GMM_GSM_Cause p_Cause,
                                                                     in template (omit) AuthenticationFailureParameter p_AuthFailParam := omit
                                                                     ) := { /* 24.501 cl. 8.2.4 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    authentication_Failure := {
      protocolDiscriminator   := tsc_EPD_GMM,                      /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,               /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_AuthenticationFailure,  /* cl. 9.7      M V 1   */
      gmmCause                := p_Cause,                          /* cl. 9.11.3.2   M V 1   */
      authFailureParam        := p_AuthFailParam                   /* cl. 9.11.3.12  O TLV 16 IEI=30 */
    }
  } // End of template m_NG_AUTHENTICATION_FAILURE

  template (present) NG_NAS_UL_Message_Type mw_NG_AUTHENTICATION_FAILURE(
                                                                         template (present) GMM_GSM_Cause p_Cause := ?,
                                                                         template AuthenticationFailureParameter p_AuthFailParam := *
                                                                         ) modifies cr_NG_AUTHENTICATION_FAILURE := { /* 24.501 cl. 8.2.4 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    authentication_Failure := {
      protocolDiscriminator   := tsc_EPD_GMM,                      /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,               /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_AuthenticationFailure,  /* cl. 9.7      M V 1   */
      gmmCause                := p_Cause,                          /* cl. 9.11.3.2   M V 1   */
      authFailureParam        := p_AuthFailParam                   /* cl. 9.11.3.12  O TLV 16 IEI=30 */
    }
  } // End of template mw_NG_AUTHENTICATION_FAILURE

  template (omit) NG_NAS_DL_Message_Type m_NG_AUTHENTICATION_REJECT(
                                                                    in template (omit) EAP_Message p_EAP := omit
                                                                    ) modifies cs_NG_AUTHENTICATION_REJECT := { /* @status    APPROVED (NR5GC) */
    /* 24.501 cl. 8.2.5 */
    authentication_Reject := {
      protocolDiscriminator   := tsc_EPD_GMM,                    /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,             /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_AuthenticationReject, /* cl. 9.7      M V 1   */
      eapMessage              := p_EAP                           /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
    }
  } // End of template m_NG_AUTHENTICATION_REJECT

  template NG_NAS_DL_Message_Type mw_NG_AUTHENTICATION_REJECT(
                                                              template EAP_Message p_EAP := *
                                                              ) := { /* @status    APPROVED (NR5GC) */
    /* 24.501 cl. 8.2.5 */
    authentication_Reject := {
      protocolDiscriminator   := tsc_EPD_GMM,                    /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,             /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_AuthenticationReject, /* cl. 9.7      M V 1   */
      eapMessage              := p_EAP                           /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
    }
  } // End of template mw_NG_AUTHENTICATION_REJECT

  template (omit) NG_NAS_UL_Message_Type m_NG_REGISTRATION_REQUEST(
                                                                   in template (value) RegistrationType p_RegistrationType,
                                                                   in template (value) NAS_KsiValue p_KeySetId,
                                                                   in template (value) B1_Type p_Tsc,
                                                                   in template (value) NG_MobileIdentity p_MobileId,
                                                                   in template (omit) NAS_KeySetIdentifier p_NonCurrentKSI := omit,
                                                                   in template (omit) NG_GMM_Cap p_GMM_Cap := omit,
                                                                   in template (omit) NG_UE_SecurityCapability p_UESecurityCap := omit,
                                                                   in template (omit) NSSAI p_ReqNSSAI := omit,
                                                                   in template (omit) NG_TrackingAreaId p_TAI := omit,
                                                                   in template (omit) UE_NetworkCap p_UE_NetworkCap := omit,
                                                                   in template (omit) ULDataStatus p_ULDataStatus := omit,
                                                                   in template (omit) PDU_SessionStatus p_PDU_SessionStatus := omit,
                                                                   in template (omit) MICO_Ind p_MICO_Ind := omit,
                                                                   in template (omit) UE_Status p_UE_Status := omit,
                                                                   in template (omit) NG_MobileIdentity p_AddGUTI := omit,
                                                                   in template (omit) AllowedPDU_SessionStatus p_AllowedPDU_SessionStatus := omit,
                                                                   in template (omit) UE_UsageSetting p_UE_UsageSetting := omit,
                                                                   in template (omit) NG_DRXparameter p_DRXparam := omit,
                                                                   in template (omit) EPS_MessageContainer p_EPSMsg := omit,
                                                                   in template (omit) LADN_Ind p_LADN_Ind := omit,
                                                                   in template (omit) PayloadContainerType p_ContainerType := omit, // @sic R5w190113 sic@
                                                                   in template (omit) PayloadContainer p_Payload := omit,
                                                                   in template (omit) NetworkSlicingInd p_NetworkSlicingInd := omit,
                                                                   in template (omit) NG_UpdateType p_NG_UpdateType := omit,
                                                                   in template (omit) MS_Clsmk2 p_MS_Clsmk2 := omit,
                                                                   in template (omit) CodecList p_SupportedCodecs := omit,
                                                                   in template (omit) EPS_BearerContextStatus p_EPS_BearerContextStatus := omit, // @sic R5s190543 sic@
                                                                   in template (omit) NASMessageContainer p_Msg := omit,
                                                                   in template (omit) ExtdDRXParams p_ExtdDRXParams := omit,
                                                                   in template (omit) GPRS_Timer3 p_T3324 := omit,
                                                                   in template (omit) UERadioCapId p_UERadioCapId := omit,
                                                                   in template (omit) MappedNSSAI p_MappedNSSAI := omit,
                                                                   in template (omit) AddInfoRequest p_AddInfoRequest := omit,
                                                                   in template (omit) WUSAssistInfo p_WUSAssistInfo := omit,
                                                                   in template (omit) N5GCInd p_N5GCInd := omit,
                                                                   in template (omit) NB_N1ModeDRXParams p_NB_N1ModeDRXParams := omit,
                                                                   in template (omit) UE_RequestType p_UeRequestType := omit,
                                                                   in template (omit) NG_PagingRestriction p_PagingRestrict := omit,
                                                                   in template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit,
                                                                   in template (omit) NID p_NId := omit,
                                                                   in template (omit) PLMN_IdIE p_MSPLMNwDisasterCondition := omit,
                                                                   in template (omit) PEIPS_AssistInfo p_RequestedPEIPS_AssistInfo := omit,
                                                                   in template (omit) GPRS_Timer3 p_T3512 := omit
                                                                   ) := { /* 24.501 cl. 8.2.6 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    registration_Request := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_RegistrationRequest,   /* cl. 9.7      M V 1   */
      ngNasKSI                := cs_NAS_KeySetIdentifier_lv(valueof(p_KeySetId), valueof(p_Tsc)), /* cl. 9.11.3.32 M V 1/2 */
      registrationType        := p_RegistrationType,              /* cl. 9.11.3.7 M LV 2  */
      ngMobileId              := p_MobileId,                      /* cl. 9.11.3.4 M LV 5-?  */
      nonCurrentNativeKSI     := p_NonCurrentKSI,                 /* cl. 9.11.3.32 O TV 1 IEI=C- */
      gmmCapability           := p_GMM_Cap,                       /* cl. 9.11.3.1  O TLV 3-15 IEI=10 */
      ueSecurityCapability    := p_UESecurityCap,                 /* cl. 9.11.3.54 O TLV 4-10 IEI=2E */
      requestedNSSAI          := p_ReqNSSAI,                      /* cl. 9.11.3.37 O TLV 4-74 IEI=2F */
      lastVisitedRegisteredTai := p_TAI,                          /* cl. 9.11.3.8  O TV 7 IEI=52 */
      s1_UE_Capability        := p_UE_NetworkCap,                 /* cl. 9.11.3.48 O LV 4-15 IEI=65 */
      ulDataStatus            := p_ULDataStatus,                  /* cl. 9.11.3.57 O TLV 4-34 IEI=40 */
      pduSessionStatus        := p_PDU_SessionStatus,             /* cl. 9.11.3.44  O TLV 4-34 IEI=50 */
      micoInd                 := p_MICO_Ind,                      /* cl. 9.11.3.31 O TLV 1 IEI=B */
      ueStatus                := p_UE_Status,                     /* cl. 9.11.3.56 O TLV 3 IEI=2B */
      additionalGUTI          := p_AddGUTI,                       /* cl. 9.11.3.4  O TLV 5-? IEI=2C */
      allowedPDUSessionStatus := p_AllowedPDU_SessionStatus,      /* cl. 9.11.3.13 O TLV 4-34 IEI=25 */
      ueUsageSetting          := p_UE_UsageSetting,               /* cl. 9.11.3.55 O TLV 3 IEI=60 */
      reqDRXParams            := p_DRXparam,                      /* cl. 9.11.3.22 O TLV ? IEI=51 */
      epsMessage              := p_EPSMsg,                        /* cl. 9.11.3.24 O TLV-E ? IEI=7C */
      ladnInd                 := p_LADN_Ind,                      /* cl. 9.11.3.29 O TLV-E 3-811 IEI=7E */
      payloadContainerType    := p_ContainerType,                 /* cl. 9.11.3.40 O TV 1 IEI=8 Mar 19 @sic R5w190113 sic@*/
      payload                 := p_Payload,                       /* cl. 9.11.3.39 O TLV-E 4-65538 IEI=7B */
      networkSlicingInd       := p_NetworkSlicingInd,             /* cl. 9.11.3.36 O TV 1 IEI=9 Dec18 */
      updateType              := p_NG_UpdateType,                 /* cl. 9.11.3.9A O TLV 3 IEI=53 Dec18 */
      msClassmark2            := p_MS_Clsmk2, /* cl. 9.11.3.31C O TLV 5 IEI=41 Sep20 @sic R5s201387 Baseline Moving sic@ */
      supportedCodecs         := p_SupportedCodecs, /* cl. 9.11.3.51A O TLV 5-n IEI=42 Sep20 @sic R5s201387 Baseline Moving sic@ */
      nasMsg                  := p_Msg,                           /* cl. 9.11.3.33 O TLV-E 4-n IEI=71 Dec18 */
      epsBearerContextStatus  := p_EPS_BearerContextStatus,       /* cl. 9.11.3.23A O TLV 4 IEI=60 Jun19 @sic R5s190543 sic@ */
      requestedExtdDRXParams  := p_ExtdDRXParams, /* cl. 9.11.3.26A O TLV 3 IEI=6E Sep20 @sic R5s201387 Baseline Moving sic@ */
      t3324Value              := p_T3324, /* cl. 9.11.2.5   O TLV 3 IEI=6A Sep20 @sic R5s201387 Baseline Moving sic@ */
      ueRadioCapabilityId     := p_UERadioCapId, /* cl. 9.11.3.68  O TLV 3-n IEI=67 Sep20 @sic R5s201387 Baseline Moving sic@ */
      requestedMappedNSSAI    := p_MappedNSSAI, /* cl. 9.11.3.31B O TLV 3-42 IEI=35 Sep20 @sic R5s201387 Baseline Moving sic@ */
      additionalInfoReq       := p_AddInfoRequest, /* cl. 9.11.3.12A O TLV 3 IEI=48 Sep20 @sic R5s201387 Baseline Moving sic@ */
      requestedWUSAssistanceInfo := p_WUSAssistInfo, /* cl. 9.11.3.71  O TLV 3-n IEI=1A Sep20 @sic R5s201387 Baseline Moving sic@ */
      n5GCInd                 := p_N5GCInd, /* cl. 9.11.3.72  O T   1 IEI=A Sep20 @sic R5s201387 Baseline Moving sic@ */
      requestedNB_N1DRXParams := p_NB_N1ModeDRXParams,  /* cl. 9.11.3.73  O TLV 3 IEI=30 Sep20 @sic R5s201387 Baseline Moving sic@ */
      ueRequestType           := p_UeRequestType, /* cl. 9.11.3.76  O TLV 3 IEI=29 Sep22 @sic R5s221179 Baseline Moving sic@ */
      pagingRestrict          := p_PagingRestrict, /* cl. 9.11.3.77  O TLV 3-35 IEI=28 Sep22 @sic R5s221179 Baseline Moving sic@ */
      serviceLvlAA            := p_ServiceLvlAA, /* cl. 9.11.2.10  O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving sic@ */
      nId                     := p_NId, /* cl. 9.11.3.79  O TLV 8 IEI=32 Sep22 @sic R5s221179 Baseline Moving sic@ */
      msPLMNwDisasterCondition  := p_MSPLMNwDisasterCondition, /* cl. 9.11.3.85  O TLV 5 IEI=16 Sep22 @sic R5s221179 Baseline Moving sic@ */
      requestedPEIPS_AssistInfo := p_RequestedPEIPS_AssistInfo,  /* cl. 9.11.3.80  O TLV 3-n IEI=2A Sep22 @sic R5s221179 Baseline Moving sic@ */
      t3512Value              := p_T3512  /* cl. 9.11.2.5   O TLV 3 IEI=3B Jun23 @sic R5s230533 sic@ */
    }
  } // End of template m_NG_REGISTRATION_REQUEST

  template (present) NG_NAS_UL_Message_Type mw_NG_REGISTRATION_REQUEST(
                                                                       template (present) RegistrationType p_RegistrationType := ?,
                                                                       template (present) NAS_KsiValue p_KeySetId := ?,
                                                                       template (present) B1_Type p_Tsc := ?,
                                                                       template (present) NG_MobileIdentity p_MobileId := ?,
                                                                       template NAS_KeySetIdentifier p_NonCurrentKSI := *,
                                                                       template NG_GMM_Cap p_GMM_Cap := *,
                                                                       template NG_UE_SecurityCapability p_UESecurityCap := *,
                                                                       template NSSAI p_ReqNSSAI := *,
                                                                       template NG_TrackingAreaId p_TAI := *,
                                                                       template UE_NetworkCap p_UE_NetworkCap := *,
                                                                       template ULDataStatus p_ULDataStatus := *,
                                                                       template PDU_SessionStatus p_PDU_SessionStatus := *,
                                                                       template MICO_Ind p_MICO_Ind := *,
                                                                       template UE_Status p_UE_Status := *,
                                                                       template NG_MobileIdentity p_AddGUTI := *,
                                                                       template AllowedPDU_SessionStatus p_AllowedPDU_SessionStatus := *,
                                                                       template UE_UsageSetting p_UE_UsageSetting := *,
                                                                       template NG_DRXparameter p_DRXparam := *,
                                                                       template EPS_MessageContainer p_EPSMsg := *,
                                                                       template LADN_Ind p_LADN_Ind := *,
                                                                       template PayloadContainerType p_ContainerType := *, // @sic R5w190113 sic@
                                                                       template PayloadContainer p_Payload := *,
                                                                       template NetworkSlicingInd p_NetworkSlicingInd := *,
                                                                       template NG_UpdateType p_NG_UpdateType := *,
                                                                       template MS_Clsmk2 p_MS_Clsmk2 := *,
                                                                       template CodecList p_SupportedCodecs := *,
                                                                       template EPS_BearerContextStatus p_EPS_BearerContextStatus := *, // @sic R5s190543 sic@
                                                                       template NASMessageContainer p_Msg := *,
                                                                       template ExtdDRXParams p_ExtdDRXParams := *,
                                                                       template GPRS_Timer3 p_T3324 := *,
                                                                       template UERadioCapId p_UERadioCapId := *,
                                                                       template MappedNSSAI p_MappedNSSAI := *,
                                                                       template AddInfoRequest p_AddInfoRequest := *,
                                                                       template WUSAssistInfo p_WUSAssistInfo := *,
                                                                       template N5GCInd p_N5GCInd := *,
                                                                       template NB_N1ModeDRXParams p_NB_N1ModeDRXParams := *,
                                                                       template UE_RequestType p_UeRequestType := *,
                                                                       template NG_PagingRestriction p_PagingRestrict := *,
                                                                       template ServiceLvlAAContainer p_ServiceLvlAA := *,
                                                                       template NID p_NId := *,
                                                                       template PLMN_IdIE p_MSPLMNwDisasterCondition := *,
                                                                       template PEIPS_AssistInfo p_RequestedPEIPS_AssistInfo := *,
                                                                       template GPRS_Timer3 p_T3512 := *
                                                                       ) modifies cr_NG_REGISTRATION_REQUEST := { /* 24.501 cl. 8.2.6 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    registration_Request := {
    }
  } // End of template mw_NG_REGISTRATION_REQUEST

  template (value) NG_UpdateType m_NG_Update(
                                             in template (value) B1_Type p_NgRAN_RCU,
                                             in template (value) B1_Type p_SmsRequested,
                                             in template (value) B2_Type p_EPS_PNB_CIoT,
                                             in template (value) B2_Type p_NG_PNB_CIoT
                                             ) := { /* 24.501 cl. 9.11.3.9A;
       @sic R5s201387 Baseline Moving sic@  */
    /* @status    APPROVED (NR5GC) */
    iei := '53'O,
    iel := '01'O,
    spare := '00'B,
    eps_PNB_CIoT := p_EPS_PNB_CIoT,
    ng_PNB_CIoT := p_NG_PNB_CIoT,
    ngRAN_RCU := p_NgRAN_RCU,
    smsRequested := p_SmsRequested
  } // End of template m_NG_Update

  template (present) NG_UpdateType mw_NG_Update(
                                                template (present) B1_Type p_NgRAN_RCU := ?,
                                                template (present) B1_Type p_SmsRequested := ?,
                                                template (present) B2_Type p_EPS_PNB_CIoT := ?,
                                                template (present) B2_Type p_NG_PNB_CIoT := ?
                                                ) modifies cr_NG_Update := { /* 24.501 cl. 9.11.3.9A;
       @sic R5s201387 Baseline Moving sic@  */
    /* @status    APPROVED (NR5GC) */
    iei := '53'O,
    iel := '01'O,
    spare := '00'B,
    eps_PNB_CIoT := p_EPS_PNB_CIoT,
    ng_PNB_CIoT := p_NG_PNB_CIoT,
    ngRAN_RCU := p_NgRAN_RCU,
    smsRequested := p_SmsRequested
  } // End of template mw_NG_Update

  template (value) NG_NAS_DL_Message_Type m_NG_REGISTRATION_ACCEPT(
                                                                   in template (value) RegistrationResult p_RegistrationResult,
                                                                   in template (omit) NG_MobileIdentity p_GUTI := omit,
                                                                   in template (omit) PLMN_List p_EPLMNs := omit,
                                                                   in template (omit) NG_TrackingAreaIdList p_TAIList := omit,
                                                                   in template (omit) NSSAI p_AllowedNSSAI := omit,
                                                                   in template (omit) RejectedNSSAI p_RejectedNSSAI := omit,
                                                                   in template (omit) NSSAI p_ConfiguredNSSAI := omit,
                                                                   in template (omit) NG_NetworkFeatureSupport p_NwkFeatureSupport := omit,
                                                                   in template (omit) PDU_SessionStatus p_PDU_SessionStatus := omit,
                                                                   in template (omit) PDU_SessionReactivationResult p_PDU_SessionReactResult := omit,
                                                                   in template (omit) PDU_SessionReactivationError p_PDU_SessionReactError := omit,
                                                                   in template (omit) LADN_Info p_LADN_Info := omit,
                                                                   in template (omit) MICO_Ind p_MICO_Ind := omit,
                                                                   in template (omit) NetworkSlicingInd p_NetworkSlicingInd := omit,
                                                                   in template (omit) ServiceAreaIdList p_SAIList := omit,
                                                                   in template (omit) GPRS_Timer3 p_T3512 := omit,
                                                                   in template (omit) GPRS_Timer2 p_Non3GPPDereg := omit,
                                                                   in template (omit) GPRS_Timer2 p_T3502 := omit,
                                                                   in template (omit) EmergNumList p_EmergNumList := omit,
                                                                   in template (omit) ExtdEmergNumList p_ExtdEmergNumList := omit,
                                                                   in template (omit) SORTransparentContainer p_SOR := omit,
                                                                   in template (omit) EAP_Message p_EAP := omit,
                                                                   in template (omit) InclusionModeNSSAI p_InclusionModeNSSAI := omit,
                                                                   in template (omit) OperatorAccessCatDefinitions p_AccessCatDefinition := omit,
                                                                   in template (omit) NG_DRXparameter p_NG_DRXparameter := omit,
                                                                   in template (omit) Non3GPP_NW_ProvidedPolicies p_Non3GPP_NW_ProvidedPolicies := omit,
                                                                   in template (omit) EPS_BearerContextStatus p_EPS_BearerContextStatus := omit,
                                                                   in template (omit) ExtdDRXParams p_NegotiatedExtdDRXParams := omit,
                                                                   in template (omit) GPRS_Timer3 p_T3447 := omit,
                                                                   in template (omit) GPRS_Timer3 p_T3448 := omit,
                                                                   in template (omit) GPRS_Timer3 p_T3324 := omit,
                                                                   in template (omit) UERadioCapId p_UERadioCapId := omit,
                                                                   in template (omit) UERadioCapIdDeletion p_UERadioCapIdDeletion := omit,
                                                                   in template (omit) NSSAI p_PendingNSSAI := omit,
                                                                   in template (omit) NG_CipheringKeyData p_CipheringKeyData := omit,
                                                                   in template (omit) CAGInfoList p_CAGInfoList := omit,
                                                                   in template (omit) TruncatedS_TMSIConfig p_TruncatedS_TMSIConfig := omit,
                                                                   in template (omit) WUSAssistInfo p_WUSAssistInfo := omit,
                                                                   in template (omit) NB_N1ModeDRXParams p_NB_N1ModeDRXParams := omit,
                                                                   in template (omit) ExtdRejectedNSSAI p_ExtdRejectedNSSAI := omit,
                                                                   in template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit,
                                                                   in template (omit) PEIPS_AssistInfo p_NegotiatedPEIPS_AssistInfo := omit,
                                                                   in template (omit) NG_AddReqResult p_AddRequestResult := omit,
                                                                   in template (omit) NSSRG_Info p_NssrgInfo := omit,
                                                                   in template (omit) RegistrationWaitRange p_DisasterRoamingWaitRange := omit,
                                                                   in template (omit) RegistrationWaitRange p_DisasterReturnWaitRange := omit,
                                                                   in template (omit) DisasterPLMNList p_DisasterPLMNList := omit,
                                                                   in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_Roaming := omit,
                                                                   in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := omit,
                                                                   in template (omit) ExtdCAGInfoList p_ExtdCAGInfoList := omit,
                                                                   in template (omit) NSAG_Info p_NsagInfo := omit
                                                                   ) modifies cs_NG_REGISTRATION_ACCEPT := { /* 24.501 cl. 8.2.7 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    registration_Accept := {
    }
  } // End of template m_NG_REGISTRATION_ACCEPT

  template (present) NG_NAS_DL_Message_Type mw_NG_REGISTRATION_ACCEPT(
                                                                      template (present) RegistrationResult p_RegistrationResult := ?,
                                                                      template NG_MobileIdentity p_GUTI := *,
                                                                      template PLMN_List p_EPLMNs := *,
                                                                      template NG_TrackingAreaIdList p_TAIList := *,
                                                                      template NSSAI p_AllowedNSSAI := *,
                                                                      template RejectedNSSAI p_RejectedNSSAI := *,
                                                                      template NSSAI p_ConfiguredNSSAI := *,
                                                                      template NG_NetworkFeatureSupport p_NwkFeatureSupport := *,
                                                                      template PDU_SessionStatus p_PDU_SessionStatus := *,
                                                                      template PDU_SessionReactivationResult p_PDU_SessionReactResult := *,
                                                                      template PDU_SessionReactivationError p_PDU_SessionReactError := *,
                                                                      template LADN_Info p_LADN_Info := *,
                                                                      template MICO_Ind p_MICO_Ind := *,
                                                                      template NetworkSlicingInd p_NetworkSlicingInd := *,
                                                                      template ServiceAreaIdList p_SAIList := *,
                                                                      template GPRS_Timer3 p_T3512 := *,
                                                                      template GPRS_Timer2 p_Non3GPPDereg := *,
                                                                      template GPRS_Timer2 p_T3502 := *,
                                                                      template EmergNumList p_EmergNumList := *,
                                                                      template ExtdEmergNumList p_ExtdEmergNumList := *,
                                                                      template SORTransparentContainer p_SOR := *,
                                                                      template EAP_Message p_EAP := *,
                                                                      template InclusionModeNSSAI p_InclusionModeNSSAI := *,
                                                                      template OperatorAccessCatDefinitions p_AccessCatDefinition := *,
                                                                      template NG_DRXparameter p_NG_DRXparameter := *,
                                                                      template Non3GPP_NW_ProvidedPolicies p_Non3GPP_NW_ProvidedPolicies := *,
                                                                      template EPS_BearerContextStatus p_EPS_BearerContextStatus := *,
                                                                      template ExtdDRXParams p_NegotiatedExtdDRXParams := *,
                                                                      template GPRS_Timer3 p_T3447 := *,
                                                                      template GPRS_Timer3 p_T3448 := *,
                                                                      template GPRS_Timer3 p_T3324 := *,
                                                                      template UERadioCapId p_UERadioCapId := *,
                                                                      template UERadioCapIdDeletion p_UERadioCapIdDeletion := *,
                                                                      template NSSAI p_PendingNSSAI := *,
                                                                      template NG_CipheringKeyData p_CipheringKeyData := *,
                                                                      template CAGInfoList p_CAGInfoList := *,
                                                                      template TruncatedS_TMSIConfig p_TruncatedS_TMSIConfig := *,
                                                                      template WUSAssistInfo p_WUSAssistInfo := *,
                                                                      template NB_N1ModeDRXParams p_NB_N1ModeDRXParams := *,
                                                                      template ExtdRejectedNSSAI p_ExtdRejectedNSSAI := *,
                                                                      template ServiceLvlAAContainer p_ServiceLvlAA := *,
                                                                      template PEIPS_AssistInfo p_NegotiatedPEIPS_AssistInfo := *,
                                                                      template NG_AddReqResult p_AddRequestResult := *,
                                                                      template NSSRG_Info p_NssrgInfo := *,
                                                                      template RegistrationWaitRange p_DisasterRoamingWaitRange := *,
                                                                      template RegistrationWaitRange p_DisasterReturnWaitRange := *,
                                                                      template DisasterPLMNList p_DisasterPLMNList := *,
                                                                      template NG_TrackingAreaIdList p_ForbidTAIList_Roaming := *,
                                                                      template NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := *,
                                                                      template ExtdCAGInfoList p_ExtdCAGInfoList := *,
                                                                      template NSAG_Info p_NsagInfo
                                                                      ) := { /* 24.501 cl. 8.2.7 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    registration_Accept := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_RegistrationAccept,    /* cl. 9.7      M V 1   */
      registrationResult      := p_RegistrationResult,            /* cl. 9.11.3.6 M LV 2 */
      guti                    := p_GUTI,                          /* cl. 9.11.3.4 O TLV 13 IEI=2C */
      equivalentPlmns         := p_EPLMNs,                        /* cl. 9.11.3.45 O TLV 5-47 IEI=4A */
      taiList                 := p_TAIList,                       /* cl. 9.11.3.9 O TLV 9-114 IEI=54 */
      allowedNSSAI            := p_AllowedNSSAI,                  /* cl. 9.11.3.37 O TLV 4-74 IEI=70 */
      rejectedNSSAI           := p_RejectedNSSAI,                 /* cl. 9.11.3.46 O TLV 4-42 IEI=0x11 */
      configuredNSSAI         := p_ConfiguredNSSAI,               /* cl. 9.11.3.37 O TLV 4-146 IEI=31 */
      ngs_NetworkFeatureSupport := p_NwkFeatureSupport,           /* cl. 9.11.3.5  O TLV 3-5  IEI=21*/
      pduSessionStatus        := p_PDU_SessionStatus,             /* cl. 9.11.3.44 O TLV 4-34 IEI=50 */
      pduSessionReactivationResult := p_PDU_SessionReactResult,   /* cl. 9.11.3.42 O TLV 4-32 IEI=26 */
      pduSessionReactResultError := p_PDU_SessionReactError,      /* cl. 9.11.3.43 O TLV-E 5-515 IEI=7E */
      ladnInfo                := p_LADN_Info,                     /* cl. 9.11.3.30 O TLV-E 12-1707 IEI=79 */
      micoInd                 := p_MICO_Ind,                      /* cl. 9.11.3.31 O TV 1 IEI=B */
      networkSlicingInd       := p_NetworkSlicingInd,             /* cl. 9.11.3.36 O TV 1 IEI=9 */
      saiList                 := p_SAIList,                       /* cl. 9.11.3.49 O TLV 6-114 IEI=27 */
      t3512Value              := p_T3512,                         /* cl. 9.11.2.5  O TLV 3 IEI=5E */
      non3GPPDeregisterValue  := p_Non3GPPDereg,                  /* cl. 9.11.2.4 O TLV 3 IEI=5D */
      t3502Value              := p_T3502,                         /* cl. 9.11.2.4 O TLV 3 IEI=16 */
      emergencyNumberList     := p_EmergNumList,                  /* cl. 9.11.3.23 O TLV 5-50 IEI=34 */
      xtdEmergencyNumberList  := p_ExtdEmergNumList,              /* cl. 9.11.3.26 O TLV-E 6-65538 IEI=7A */
      sorTransparentContainer := p_SOR,                           /* cl. 9.11.3.51 O TLV-E 20-2048 IEI=7F */
      eapMessage              := p_EAP,                           /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78*/
      inclusionModeNSSAI      := p_InclusionModeNSSAI,            /* cl. 9.11.3.37A O TV 1 IEI=A */
      operatorAccessCatDefs   := p_AccessCatDefinition,           /* cl. 9.11.3.38 O TLV-E 4-n IEI=76 */
      negotiatedDRXParams     := p_NG_DRXparameter,               /* cl. 9.11.3.2A O TLV 3 IEI=51 */
      non3GPP_NW_ProvidedPolicies := p_Non3GPP_NW_ProvidedPolicies,  /* cl. 9.11.3.58 O TV 1 IEI = ? Mar 19 @sic R5w190113 sic@ */
      epsBearerContextStatus  := p_EPS_BearerContextStatus,       /* cl. 9.11.3.23A O TLV 4 IEI=60 Jun19 @sic R5s190543 sic@ */
      negotiatedExtdDRXParams := p_NegotiatedExtdDRXParams,       /* cl. 9.11.3.26A O TLV 3 IEI=6E Sep20 @sic R5s201387 Baseline Moving sic@ */
      t3447Value              := p_T3447, /* cl. 9.11.2.5   O TLV 3 IEI=6C Sep20 @sic R5s201387 Baseline Moving sic@ */
      t3448Value              := p_T3448, /* cl. 9.11.2.4   O TLV 3 IEI=6B Sep20 @sic R5s201387 Baseline Moving sic@ */
      t3324Value              := p_T3324, /* cl. 9.11.2.5   O TLV 3 IEI=6A Sep20 @sic R5s201387 Baseline Moving sic@ */
      ueRadioCapabilityId     := p_UERadioCapId, /* cl. 9.11.3.68  O TLV 3-n IEI=67 Sep20 @sic R5s201387 Baseline Moving sic@ */
      ueRadioCapIdDeletionInd := p_UERadioCapIdDeletion, /* cl. 9.11.3.69  O TV  1 IEI=E Sep20 @sic R5s201387 Baseline Moving sic@ */
      pendingNSSAI            := p_PendingNSSAI, /* cl. 9.11.3.37  O TLV 4-146 IEI=39 Sep20 @sic R5s201387 Baseline Moving sic@ */
      cipheringKeyData        := p_CipheringKeyData, /* cl. 9.11.3.18C O TLV-E 34-n IEI=74 Sep20 @sic R5s201387 Baseline Moving sic@ */
      cagInfoList             := p_CAGInfoList, /* cl. 9.11.3.18A O TLV-E 3-n IEI=75 Sep20 @sic R5s201387 Baseline Moving sic@ */
      truncatedS_TMSIConfig   := p_TruncatedS_TMSIConfig, /* cl. 9.11.3.70  O TLV 3 IEI=1B Sep20 @sic R5s201387 Baseline Moving sic@ */
      negotiatedWUSAssistanceInfo  := p_WUSAssistInfo, /* cl. 9.11.3.71  O TLV 3-n IEI=1C Sep20 @sic R5s201387 Baseline Moving sic@ */
      negotiatedNB_N1DRXParams     := p_NB_N1ModeDRXParams,  /* cl. 9.11.3.73  O TLV 3 IEI=29 Sep20 @sic R5s201387 Baseline Moving sic@ */
      extdRejectedNSSAI            := p_ExtdRejectedNSSAI, /* cl. 9.11.3.75  O TLV 5-90 IEI=68 Sep22 @sic R5s221179 Baseline Moving sic@ */
      serviceLvlAA                 := p_ServiceLvlAA, /* cl. 9.11.2.10  O TLV-E 6-n IEI=7B Sep22 @sic R5s221179 Baseline Moving sic@ */
      negotiatedPEIPS_AssistInfo   := p_NegotiatedPEIPS_AssistInfo, /* cl. 9.11.3.80  O TLV 3-n IEI=33 Sep22 @sic R5s221179 Baseline Moving sic@ */
      ngAddRequestResult           := p_AddRequestResult, /* cl. 9.11.3.81  O TLV 3 IEI=34 Sep22 @sic R5s221179 Baseline Moving sic@ */
      nssrgInfo                    := p_NssrgInfo, /* cl. 9.11.3.82  O TLV-E 7-65538 IEI=70 Sep22 @sic R5s221179 Baseline Moving sic@ */
      disasterRoamingWaitRange     := p_DisasterRoamingWaitRange, /* cl. 9.11.3.84  O TLV 4 IEI=14 Sep22 @sic R5s221179 Baseline Moving sic@ */
      disasterReturnWaitRange      := p_DisasterReturnWaitRange, /* cl. 9.11.3.84  O TLV 4 IEI=2C Sep22 @sic R5s221179 Baseline Moving sic@ */
      disasterPLMNList             := p_DisasterPLMNList, /* cl. 9.11.3.83  O TLV 2-n IEI=13 Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_Roaming        := p_ForbidTAIList_Roaming, /* cl. 9.11.3.9   O TLV 9-114 IEI=1D Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_RegProvService := p_ForbidTAIList_RegProvService, /* cl. 9.11.3.9   O TLV 9-114 IEI=1E Sep22 @sic R5s221179 Baseline Moving sic@ */
      extdCAGInfoList              := p_ExtdCAGInfoList, /* cl. 9.11.3.86  O TLV-E 3-n IEI=71 Sep22 @sic R5s221179 Baseline Moving sic@ */
      nsagInfo                     := p_NsagInfo  /* cl. 9.11.3.87  O TLV-E 10-n IEI=7C Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_REGISTRATION_ACCEPT

  template (value) NG_NAS_UL_Message_Type m_NG_REGISTRATION_COMPLETE(
                                                                     in template (value) SORTransparentContainer p_SOR
                                                                     ) := { /* 24.501 cl. 8.2.8 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    registration_Complete := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_RegistrationComplete,  /* cl. 9.7      M V 1   */
      sorTransparentContainer := p_SOR                            /* cl. 9.11.3.49 O TLV-E 20-2048 IEI=7F */
    }
  } // End of template m_NG_REGISTRATION_COMPLETE

  template (present) NG_NAS_UL_Message_Type mw_NG_REGISTRATION_COMPLETE(
                                                                        template SORTransparentContainer p_SOR := ?
                                                                        ) modifies cr_NG_REGISTRATION_COMPLETE := { /* 24.501 cl. 8.2.8 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    registration_Complete := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_RegistrationComplete,  /* cl. 9.7      M V 1   */
      sorTransparentContainer := p_SOR                            /* cl. 9.11.3.49 O TLV-E 20-2048 IEI=7F */
    }
  } // End of template mw_NG_REGISTRATION_COMPLETE

  template (value) NG_NAS_DL_Message_Type m_NG_REGISTRATION_REJECT(
                                                                   in template (value) GMM_GSM_Cause p_Cause,
                                                                   in template (omit) GPRS_Timer2 p_T3346 := omit,
                                                                   in template (omit) GPRS_Timer2 p_T3502 := omit,
                                                                   in template (omit) EAP_Message p_EAP := omit,
                                                                   in template (omit) RejectedNSSAI p_RejectedNSSAI := omit,
                                                                   in template (omit) CAGInfoList p_CAGInfoList := omit,
                                                                   in template (omit) ExtdRejectedNSSAI p_ExtdRejectedNSSAI := omit,
                                                                   in template (omit) RegistrationWaitRange p_DisasterReturnWaitRange := omit,
                                                                   in template (omit) ExtdCAGInfoList p_ExtdCAGInfoList := omit,
                                                                   in template (omit) GPRS_Timer3 p_LowerBoundTimerValue := omit,
                                                                   in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_Roaming := omit,
                                                                   in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := omit
                                                                   ) modifies cs_NG_REGISTRATION_REJECT := { /* @status    APPROVED (NR5GC, NR5GC_IRAT) */
    /* 24.501 cl. 8.2.9 */
    registration_Reject := {
    }
  } // End of template m_NG_REGISTRATION_REJECT

  template (present) NG_NAS_DL_Message_Type mw_NG_REGISTRATION_REJECT(
                                                                      template (present) GMM_GSM_Cause p_Cause := ?,
                                                                      template GPRS_Timer2 p_T3346 := *,
                                                                      template GPRS_Timer2 p_T3502 := *,
                                                                      template EAP_Message p_EAP := *,
                                                                      template RejectedNSSAI p_RejectedNSSAI := *,
                                                                      template CAGInfoList p_CAGInfoList := *,
                                                                      template ExtdRejectedNSSAI p_ExtdRejectedNSSAI := *,
                                                                      template RegistrationWaitRange p_DisasterReturnWaitRange := *,
                                                                      template ExtdCAGInfoList p_ExtdCAGInfoList := *,
                                                                      template GPRS_Timer3 p_LowerBoundTimerValue := *,
                                                                      template NG_TrackingAreaIdList p_ForbidTAIList_Roaming := *,
                                                                      template NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := *
                                                                      ) := { /* @status    APPROVED (NR5GC, NR5GC_IRAT) */
    /* 24.501 cl. 8.2.9 */
    registration_Reject := {
      protocolDiscriminator   := tsc_EPD_GMM,                  /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,           /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_RegistrationReject, /* cl. 9.7      M V 1   */
      gmmCause                := p_Cause,                      /* cl. 9.11.3.2 M V 1   */
      t3346                   := p_T3346,                      /* cl. 9.11.2.4 O TLV 3 IEI=5F */
      t3502                   := p_T3502,                      /* cl. 9.11.2.4 O TLV 3 IEI=16 */
      eapMessage              := p_EAP,                        /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
      rejectedNSSAI           := p_RejectedNSSAI,              /* cl. 9.11.3.46 O TLV 4-42 IEI=69 Sep20 @sic R5s201387 Baseline Moving sic@ */
      cagInfoList             := p_CAGInfoList,                 /* cl. 9.11.3.18A O TLV-E 3-n IEI=75 Sep20 @sic R5s201387 Baseline Moving sic@ */
      extdRejectedNSSAI            := p_ExtdRejectedNSSAI, /* cl. 9.11.3.75  O TLV 5-90 IEI=68 Sep22 @sic R5s221179 Baseline Moving sic@ */
      disasterReturnWaitRange      := p_DisasterReturnWaitRange, /* cl. 9.11.3.84  O TLV 4 IEI=2C Sep22 @sic R5s221179 Baseline Moving sic@ */
      extdCAGInfoList              := p_ExtdCAGInfoList, /* cl. 9.11.3.86  O TLV-E 3-n IEI=71 Sep22 @sic R5s221179 Baseline Moving sic@ */
      lowerBoundTimerValue         := p_LowerBoundTimerValue, /* cl. 9.11.2.5  O TLV 3 IEI=3A Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_Roaming        := p_ForbidTAIList_Roaming, /* cl. 9.11.3.9   O TLV 9-114 IEI=3B Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_RegProvService := p_ForbidTAIList_RegProvService /* cl. 9.11.3.9   O TLV 9-114 IEI=3C Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_REGISTRATION_REJECT

  template (value) NG_NAS_UL_Message_Type m_NG_DEREGISTRATION_REQUEST_MO(
                                                                         in template (value) DeregisterType p_DeregisterType,
                                                                         in template (value) NAS_KeySetIdentifier p_KSI,
                                                                         in template (value) NG_MobileIdentity p_MobileId
                                                                         ) := { /* 24.501 cl. 8.2.12 (UE originating deregister) */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    deregistration_RequestMO := {
      protocolDiscriminator   := tsc_EPD_GMM,                         /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,                  /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_DeregistrationRequest_MO,  /* cl. 9.7      M V 1   */
      ngKSI                   := p_KSI,                               /* cl. 9.11.3.32 M V 1/2 */
      deregistrationType      := p_DeregisterType,                    /* cl. 9.11.3.20  M V 1/2 */
      ngMobileId              := p_MobileId                           /* cl. 9.11.3.4   M LV 5-?  */
    }
  } // End of template m_NG_DEREGISTRATION_REQUEST_MO

  template (present) NG_NAS_UL_Message_Type mw_NG_DEREGISTRATION_REQUEST_MO(
                                                                            template (present) DeregisterType p_DeregisterType := ?,
                                                                            template (present) NAS_KeySetIdentifier p_KSI := ?,
                                                                            template (present) NG_MobileIdentity p_MobileId := ?
                                                                            ) modifies cr_NG_DEREGISTRATION_REQUEST_MO :=
  { /* 24.501 cl. 8.2.12 (UE originating deregister) */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    deregistration_RequestMO := {
    }
  } // End of template mw_NG_DEREGISTRATION_REQUEST_MO

  template (value) NG_NAS_DL_Message_Type m_NG_DEREGISTRATION_ACCEPT_MO modifies cs_NG_DEREGISTRATION_ACCEPT :=
  { /* @status    APPROVED (NR5GC) */
    /* 24.501 cl. 8.2.13/15 (DL) */
    deregistration_Accept := {
    }
  } // End of template m_NG_DEREGISTRATION_ACCEPT_MO

  template (present) NG_NAS_UL_Message_Type mw_NG_DEREGISTRATION_ACCEPT_MO modifies cr_NG_DEREGISTRATION_ACCEPT :=
  { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.2.13/15 (UL) */
    deregistration_Accept := {
    }
  } // End of template mw_NG_DEREGISTRATION_ACCEPT_MO

  template (omit) NG_NAS_DL_Message_Type m_NG_DEREGISTRATION_REQUEST_MT(
                                                                        in template (value) DeregisterType p_Type,
                                                                        in template (omit) GMM_GSM_Cause p_Cause := omit,
                                                                        in template (omit) GPRS_Timer2 p_T3346 := omit,
                                                                        in template (omit) RejectedNSSAI p_RejectedNSSAI := omit,
                                                                        in template (omit) CAGInfoList p_CAGInfoList := omit,
                                                                        in template (omit) ExtdRejectedNSSAI p_ExtdRejectedNSSAI := omit,
                                                                        in template (omit) RegistrationWaitRange p_DisasterReturnWaitRange := omit,
                                                                        in template (omit) ExtdCAGInfoList p_ExtdCAGInfoList := omit,
                                                                        in template (omit) GPRS_Timer3 p_LowerBoundTimerValue := omit,
                                                                        in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_Roaming := omit,
                                                                        in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := omit
                                                                        ) modifies cs_NG_DEREGISTRATION_REQUEST_MT := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.2.14 (UE terminated deregister) */
    deregistration_RequestMT := {
    }
  } // End of template m_NG_DEREGISTRATION_REQUEST_MT

  template (present) NG_NAS_DL_Message_Type mw_NG_DEREGISTRATION_REQUEST_MT(
                                                                            template (present) DeregisterType p_Type := ?,
                                                                            template GMM_GSM_Cause p_Cause := *,
                                                                            template GPRS_Timer2 p_T3346 := *,
                                                                            template RejectedNSSAI p_RejectedNSSAI := *,
                                                                            template CAGInfoList p_CAGInfoList := *,
                                                                            template ExtdRejectedNSSAI p_ExtdRejectedNSSAI := *,
                                                                            template RegistrationWaitRange p_DisasterReturnWaitRange := *,
                                                                            template ExtdCAGInfoList p_ExtdCAGInfoList := *,
                                                                            template GPRS_Timer3 p_LowerBoundTimerValue := *,
                                                                            template NG_TrackingAreaIdList p_ForbidTAIList_Roaming := *,
                                                                            template NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := *
                                                                            ) := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.2.14 (UE terminated deregister) */
    deregistration_RequestMT := {
      protocolDiscriminator   := tsc_EPD_GMM,                  /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,           /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_DeregistrationRequest_MT, /* cl. 9.7      M V 1   */
      spareHalfOctet2         := tsc_SpareHalfOctet,           /* cl. 9.3      M V 1/2 */
      deregistrationType      := p_Type,                       /* cl. 9.11.3.20  M V 1/2 */
      gmmCause                := p_Cause,                      /* cl. 9.11.3.2   O TV 2 IEI=058 */
      t3346                   := p_T3346,                      /* cl. 9.11.2.4   O TLV 3 IEI=5F */
      rejectedNSSAI           := p_RejectedNSSAI,              /* cl. 9.11.3.46 O TLV 4-42 IEI=69 Sep20 @sic R5s201387 Baseline Moving sic@ */
      cagInfoList             := p_CAGInfoList,                /* cl. 9.11.3.18A O TLV-E 3-n IEI=75 Sep20 @sic R5s201387 Baseline Moving sic@ */
      extdRejectedNSSAI            := p_ExtdRejectedNSSAI, /* cl. 9.11.3.75  O TLV 5-90 IEI=68 Sep22 @sic R5s221179 Baseline Moving sic@ */
      disasterReturnWaitRange      := p_DisasterReturnWaitRange, /* cl. 9.11.3.84  O TLV 4 IEI=2C Sep22 @sic R5s221179 Baseline Moving sic@ */
      extdCAGInfoList              := p_ExtdCAGInfoList, /* cl. 9.11.3.86  O TLV-E 3-n IEI=71 Sep22 @sic R5s221179 Baseline Moving sic@ */
      lowerBoundTimerValue         := p_LowerBoundTimerValue, /* cl. 9.11.2.5  O TLV 3 IEI=3A Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_Roaming        := p_ForbidTAIList_Roaming, /* cl. 9.11.3.9   O TLV 9-114 IEI=3B Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_RegProvService := p_ForbidTAIList_RegProvService /* cl. 9.11.3.9   O TLV 9-114 IEI=3C Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_DEREGISTRATION_REQUEST_MT

  template (value) NG_NAS_DL_Message_Type m_NG_DEREGISTRATION_ACCEPT_MT modifies cs_NG_DEREGISTRATION_ACCEPT :=
  { /* @status    APPROVED (NR5GC) */
    /* 24.501 cl. 8.2.13/15 (DL) */
    deregistration_Accept := {
    }
  } // End of template m_NG_DEREGISTRATION_ACCEPT_MT

  template (present) NG_NAS_UL_Message_Type mw_NG_DEREGISTRATION_ACCEPT_MT modifies cr_NG_DEREGISTRATION_ACCEPT :=
  { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.2.13/15 (UL) */
    deregistration_Accept := {
    }
  } // End of template mw_NG_DEREGISTRATION_ACCEPT_MT

  template (omit) NG_NAS_DL_Message_Type m_NG_SECURITY_MODE_COMMAND(
                                                                    in template (value) NG_NAS_SecurityAlgorithms p_Algs,
                                                                    in NAS_KsiValue p_KeySetId,
                                                                    in NG_UE_SecurityCapability p_UECap,
                                                                    in template (omit) IMEISV_Request p_IMEISV := omit,
                                                                    in template (omit) NAS_SecurityAlgorithms p_EPSAlgs := omit,
                                                                    in template (omit) AdditionalSecurityInfo p_AddInfo := omit,
                                                                    in template (omit) EAP_Message p_EAP := omit,
                                                                    in template (omit) ABBA p_ABBA := omit,
                                                                    in template (omit) S1_UE_SecurityCapability p_ReplayedSecurityCap := omit
                                                                    ) modifies cs_NG_SECURITY_MODE_COMMAND := { /* 24.501 cl. 8.2.25 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    security_Mode_Command := {
    }
  } // End of template m_NG_SECURITY_MODE_COMMAND

  template (present) NG_NAS_DL_Message_Type mw_NG_SECURITY_MODE_COMMAND(
                                                                        template (present) NG_NAS_SecurityAlgorithms p_Algs := ?,
                                                                        template (present) NAS_KsiValue p_KeySetId := ?,
                                                                        template (present) NG_UE_SecurityCapability p_UECap := ?,
                                                                        template IMEISV_Request p_IMEISV := *,
                                                                        template NAS_SecurityAlgorithms p_EPSAlgs := *,
                                                                        template AdditionalSecurityInfo p_AddInfo := *,
                                                                        template EAP_Message p_EAP := *,
                                                                        template ABBA p_ABBA := *,
                                                                        template S1_UE_SecurityCapability p_ReplayedSecurityCap := *
                                                                        ) := { /* 24.501 cl. 8.2.25 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    security_Mode_Command := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_SecurityModeCommand,   /* cl. 9.7      M V 1   */
      nasSecurityAlgorithms   := p_Algs,                          /* cl. 9.11.3.34 M V 1   */
      spareHalfOctet2         := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      ngNasKSI                := {iei := ?, tsc := ?, nasKeySetId := p_KeySetId}, // FIXME FSCOM To be enhanced
      ueSecurityCapability    := p_UECap,                         /* cl. 9.11.3.54 M LV 3-9 */
      imeisvRequest           := p_IMEISV,                        /* cl. 9.11.3.28 O TV 1 IEI=E */
      epsSecurityAlgorithms   := p_EPSAlgs,                       /* cl. 9.11.3.25 O TV 2 IEI=57 */
      add5GSecurityInfo       := p_AddInfo,                       /* cl. 9.11.3.12 O TLV 3 IEI=36 */
      eapMessage              := p_EAP,                           /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
      abba                    := p_ABBA,                          /* cl. 9.11.3.10 O TLV 4-n IEI=38 Dec18 */
      replayedUESecurityCap   := p_ReplayedSecurityCap            /* cl. 9.11.3.48 O TLV 4-7 IEI=19 Dec18 */
    }
  } // End of template mw_NG_SECURITY_MODE_COMMAND

  template (value) NG_NAS_UL_Message_Type m_NG_SECURITY_MODE_COMPLETE(
                                                                      in template (value) NG_MobileIdentity p_IMEISV,
                                                                      in template (value) ReplayedNASMessageContainer p_NASMsg,
                                                                      in template (value) NG_MobileIdentity p_NonIMEISV_PEI
                                                                      ) := { /* 24.501 cl. 8.2.26 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    security_Mode_Complete := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_SecurityModeComplete,  /* cl. 9.7      M V 1   */
      imeisv                  := p_IMEISV,                        /* cl. 9.11.3.4  O TLV 11 IEI=2C  */
      nasMsg                  := p_NASMsg,                        /* cl. 9.11.3.33 O TLV-E 3-n IEI=7D */
      nonIMEISV_PEI           := p_NonIMEISV_PEI                  /* cl. 9.11.3.4  O TLV-E 7-n IEI=78 Sep20 @sic R5s201387 Baseline Moving sic@ */
    }
  } // End of template m_NG_SECURITY_MODE_COMPLETE

  template (present) NG_NAS_UL_Message_Type mw_NG_SECURITY_MODE_COMPLETE(
                                                                         template (present) NG_MobileIdentity p_IMEISV := ?,
                                                                         template (present) ReplayedNASMessageContainer p_NASMsg := ?,
                                                                         template (present) NG_MobileIdentity p_NonIMEISV_PEI := ?
                                                                         ) modifies cr_NG_SECURITY_MODE_COMPLETE := { /* 24.501 cl. 8.2.26 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    security_Mode_Complete := {
    }
  } // End of template mw_NG_SECURITY_MODE_COMPLETE

  template (value) NG_NAS_UL_Message_Type m_NG_SECURITY_MODE_REJECT(
                                                                    in template (value) GMM_GSM_Cause p_Cause
                                                                    ) := { /* @status    APPROVED (NR5GC) */
    /* 24.501 cl. 8.2.27 */
    security_Mode_Reject := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_SecurityModeReject,    /* cl. 9.7      M V 1   */
      gmmCause                := p_Cause                          /* cl. 9.11.3.2  M V 1   */
    }
  } // End of template m_NG_SECURITY_MODE_REJECT

  template (present) NG_NAS_UL_Message_Type mw_NG_SECURITY_MODE_REJECT(
                                                                       template (present) GMM_GSM_Cause p_Cause := ?
                                                                       ) modifies cr_NG_SECURITY_MODE_REJECT :=
  { /* @status    APPROVED (NR5GC) */
    /* 24.501 cl. 8.2.27 */
    security_Mode_Reject := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_SecurityModeReject,    /* cl. 9.7      M V 1   */
      gmmCause                := p_Cause                          /* cl. 9.11.3.2  M V 1   */
    }
  } // End of template mw_NG_SECURITY_MODE_REJECT

  template (omit) NG_NAS_UL_Message_Type m_NG_PDU_SESSION_ESTABLISHMENT_REQUEST(
                                                                                in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                                in template (value) ProcedureTransactionIdentifier p_PTI,
                                                                                in template (omit) PDU_SessionType p_PDU_SessionType := omit,
                                                                                in template (omit) SSC_Mode p_SSC_Mode := omit,
                                                                                in template (omit) NG_UE_SM_Cap p_UECap := omit,
                                                                                in template (omit) MaxNumPacketFilters p_MaxNumPacketFilters := omit,
                                                                                in template (omit) IntegrityProtMaxDataRate p_IntegrityProtMaxDataRate := omit,
                                                                                in template (omit) AlwaysOnPDUSessionReq p_AlwaysOnPDUSessionReq := omit,
                                                                                in template (omit) SM_PDU_DN_RequestContainer p_PDUReq := omit,
                                                                                in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit,
                                                                                in template (omit) IPHeaderCompressionConfig p_IPHeaderCompConfig := omit,
                                                                                in template (omit) DS_TT_EthernetPortMACAddr p_DS_TT_EthernetPortMACAddr := omit,
                                                                                in template (omit) UE_DS_TT_ResidenceTime p_UE_DS_TT_ResidenceTime := omit,
                                                                                in template (omit) PortManagementInfoContainer p_PortManagementInfoContainer := omit,
                                                                                in template (omit) EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := omit,
                                                                                in template (omit) PDU_Address p_SuggestedInterfaceId := omit,
                                                                                in template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit,
                                                                                in template (omit) RequestedMBSContainer p_RequestedMBS := omit,
                                                                                in template (omit) PDUSessionPairId p_PduSessionPairId := omit,
                                                                                in template (omit) RSN p_RSN := omit
                                                                                ) := { /* 24.501 cl. 8.3.1 */
   /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    pdu_Session_Establishment_Request := {
      protocolDiscriminator         := tsc_EPD_GSM,                     /* cl. 9.2       M V 1   */
      pduSessionId                  := p_PDU_SessionId,                 /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                   /* cl. 9.6       M V 1   */
      messageType                   := tsc_MT_NG_PDUSessionEstablishmentRequest, /* cl. 9.7       M V 1   */
      integrityProtMaxDataRate      := p_IntegrityProtMaxDataRate,     /* cl. 9.11.4.7  M V 2 */
      pduSessionType                := p_PDU_SessionType,               /* cl. 9.11.4.11 O TV 1 IEI=9 */
      sscMode                       := p_SSC_Mode,                      /* cl. 9.11.4.16 O TV 1 IEI=A */
      smCapability                  := p_UECap,                         /* cl. 9.11.4.1  O TLV 3-15 IEI=28 */
      maxNumPacketFilters           := p_MaxNumPacketFilters,           /* cl. 9.11.4.6  O TV 3 IEI=55 */
      alwaysOnPDUSessionReq         := p_AlwaysOnPDUSessionReq,         /* cl. 9.11.4.4  O TV 1 IEI=B */
      smPDU_RequestContainer        := p_PDUReq,                        /* cl. 9.11.4.15 O TLV ? ? */
      extdProtocolConfigurationOptions := p_ExtdPCO,                    /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
      ipHeaderCompressionConfig     := p_IPHeaderCompConfig,            /* cl. 9.11.4.24   O TLV 5-257 IEI=66 Sep20 @sic R5s201387 Baseline Moving sic@ */
      ds_TT_EthernetPortMACAddr     := p_DS_TT_EthernetPortMACAddr,     /* cl. 9.11.4.25  O TLV 8 IEI=6E Sep20 @sic R5s201387 Baseline Moving sic@ */
      ueDS_TT_ResidenceTime         := p_UE_DS_TT_ResidenceTime,        /* cl. 9.11.4.26  O TLV 10 IEI=6F Sep20 @sic R5s201387 Baseline Moving sic@ */
      portManagementInfoContainer   := p_PortManagementInfoContainer,   /* cl. 9.11.4.27  O TLV-E 8-65538 IEI=7C Sep20 @sic R5s201387 Baseline Moving sic@ */
      ethernetHeaderCompressConfig  := p_EthernetHeaderCompConfig,      /* cl. 9.11.4.28  O TLV 3 IEI=1F Sep20 @sic R5s201387 Baseline Moving sic@ */
      suggestedInterfaceId          := p_SuggestedInterfaceId,          /* cl. 9.11.4.10  O TLV 11 IEI=29 Sep20 @sic R5s201387 Baseline Moving sic@ */
      serviceLvlAA                  := p_ServiceLvlAA,                  /* cl. 9.11.2.10  O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving sic@ */
      requestedMBS                  := p_RequestedMBS,                  /* cl. 9.11.4.30  O TLV-E 8-65538 IEI=70 Sep22 @sic R5s221179 Baseline Moving sic@ */
      pduSessionPairId              := p_PduSessionPairId,              /* cl. 9.11.4.32  O TLV 3 IEI=34 Sep22 @sic R5s221179 Baseline Moving sic@ */
      rsn                           := p_RSN                            /* cl. 9.11.4.33  O TLV 3 IEI=35 Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template m_NG_PDU_SESSION_ESTABLISHMENT_REQUEST

  template (present) NG_NAS_UL_Message_Type mw_NG_PDU_SESSION_ESTABLISHMENT_REQUEST(
                                                                                    template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                                    template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                                    template PDU_SessionType p_PDU_SessionType,
                                                                                    template SSC_Mode p_SSC_Mode := *,
                                                                                    template NG_UE_SM_Cap p_UECap := *,
                                                                                    template MaxNumPacketFilters p_MaxNumPacketFilters := *,
                                                                                    template IntegrityProtMaxDataRate p_IntegrityProtMaxDataRate := *,
                                                                                    template AlwaysOnPDUSessionReq p_AlwaysOnPDUSessionReq := *,
                                                                                    template SM_PDU_DN_RequestContainer p_PDUReq := *,
                                                                                    template ExtdProtocolConfigOptions p_ExtdPCO := *,
                                                                                    template IPHeaderCompressionConfig p_IPHeaderCompConfig := *,
                                                                                    template DS_TT_EthernetPortMACAddr p_DS_TT_EthernetPortMACAddr := *,
                                                                                    template UE_DS_TT_ResidenceTime p_UE_DS_TT_ResidenceTime := *,
                                                                                    template PortManagementInfoContainer p_PortManagementInfoContainer := *,
                                                                                    template EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := *,
                                                                                    template PDU_Address p_SuggestedInterfaceId := *,
                                                                                    template ServiceLvlAAContainer p_ServiceLvlAA := *,
                                                                                    template RequestedMBSContainer p_RequestedMBS := *,
                                                                                    template PDUSessionPairId p_PduSessionPairId := *,
                                                                                    template RSN p_RSN
                                                                                    ) modifies cr_NG_PDU_SESSION_ESTABLISHMENT_REQUEST := { /* 24.501 cl. 8.3.1 */
   /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    pdu_Session_Establishment_Request := {
    }
  } // End of template mw_NG_PDU_SESSION_ESTABLISHMENT_REQUEST

  template (value) NG_NAS_DL_Message_Type m_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT(
                                                                                in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                                in ProcedureTransactionIdentifier p_PTI,
                                                                                in template (value) SSC_Mode p_SSC_Mode,
                                                                                in template (value) PDU_SessionType p_PDU_SessionType,
                                                                                in template (value) QoS_Rules p_QoS_Rules,
                                                                                in template (value) Session_AMBR p_Session_AMBR,
                                                                                in template (omit) GMM_GSM_Cause p_Cause := omit,
                                                                                in template (omit) PDU_Address p_PDU_Address := omit,
                                                                                in template (omit) GPRS_Timer p_RQTimer := omit,
                                                                                in template (omit) S_NSSAI_Type p_S_NSSAI := omit,
                                                                                in template (omit) AlwaysOnPDUSessionInd p_AlwaysOnPDUSessionInd := omit,
                                                                                in template (omit) MappedEPSBearerContexts p_MappedEPSBearerContexts := omit,
                                                                                in template (omit) EAP_Message p_EAP := omit,
                                                                                in template (omit) QoSFlowDescr p_QoSFlowDescr := omit,
                                                                                in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit,
                                                                                in template (omit) DNN p_DNN := omit,
                                                                                in template (omit) NGSM_NetworkFeatureSupport p_NGSM_NtwkFeatSupport := omit,
                                                                                in template (omit) ServingPLMNRateControl p_ServingPLMNRateCtrl := omit,
                                                                                in template (omit) ATSSSContainer p_ATSSSContainer := omit,
                                                                                in template (omit) ControlPlaneInd p_ControlPlaneInd := omit,
                                                                                in template (omit) IPHeaderCompressionConfig p_IPHeaderCompConfig := omit,
                                                                                in template (omit) EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := omit,
                                                                                in template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit,
                                                                                in template (omit) ReceivedMBSContainer p_ReceivedMBS := omit
                                                                                ) modifies cs_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT := { /* 24.501 cl. 8.3.2 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    pdu_Session_Establishment_Accept := {
    }
  } // End of template m_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT

  template (present) NG_NAS_DL_Message_Type mw_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT(
                                                                                   template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                                   template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                                   template (present) SSC_Mode p_SSC_Mode := ?,
                                                                                   template (present) PDU_SessionType p_PDU_SessionType := ?,
                                                                                   template (present) QoS_Rules p_QoS_Rules := ?,
                                                                                   template (present) Session_AMBR p_Session_AMBR := ?,
                                                                                   template GMM_GSM_Cause p_Cause := *,
                                                                                   template PDU_Address p_PDU_Address := *,
                                                                                   template GPRS_Timer p_RQTimer := *,
                                                                                   template S_NSSAI_Type p_S_NSSAI := *,
                                                                                   template AlwaysOnPDUSessionInd p_AlwaysOnPDUSessionInd := *,
                                                                                   template MappedEPSBearerContexts p_MappedEPSBearerContexts := *,
                                                                                   template EAP_Message p_EAP := *,
                                                                                   template QoSFlowDescr p_QoSFlowDescr := *,
                                                                                   template ExtdProtocolConfigOptions p_ExtdPCO := *,
                                                                                   template DNN p_DNN := *,
                                                                                   template NGSM_NetworkFeatureSupport p_NGSM_NtwkFeatSupport := *,
                                                                                   template ServingPLMNRateControl p_ServingPLMNRateCtrl := *,
                                                                                   template ATSSSContainer p_ATSSSContainer := *,
                                                                                   template ControlPlaneInd p_ControlPlaneInd := *,
                                                                                   template IPHeaderCompressionConfig p_IPHeaderCompConfig := *,
                                                                                   template EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := *,
                                                                                   template ServiceLvlAAContainer p_ServiceLvlAA := *,
                                                                                   template ReceivedMBSContainer p_ReceivedMBS := *
                                                                                   ) := { /* 24.501 cl. 8.3.2 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    pdu_Session_Establishment_Accept := {
      protocolDiscriminator   := tsc_EPD_GSM,                 /* cl. 9.2       M V 1   */
      pduSessionId            := p_PDU_SessionId,             /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,               /* cl. 9.6       M V 1   */
      messageType             := tsc_MT_NG_PDUSessionEstablishmentAccept, /* cl. 9.7       M V 1   */
      sscMode                 := p_SSC_Mode,                  /* cl. 9.11.4.16 M V 1/2 */
      pduSessionType          := p_PDU_SessionType,           /* cl. 9.11.4.11 M V 1/2 */
      authorizedQoSRules      := p_QoS_Rules,                 /* cl. 9.11.4.13 M LV-E 7-65538 */
      sessionAMBR             := p_Session_AMBR,              /* cl. 9.11.4.14 M LV ? */
      gsmCause                := p_Cause,                     /* cl. 9.11.4.2  O TV 2 IEI=59 */
      pduAddress              := p_PDU_Address,               /* cl. 9.11.4.10 O TLV 7-15 IEI=29 */
      rqTimerValue            := p_RQTimer,                   /* cl. 9.11.2.3  O TLV 2 IEI=56 */
      s_NSSAI                 := p_S_NSSAI,                   /* cl. 9.11.2.6  O TLV 3-10 IEI=22 */
      alwaysOnPDUSessionInd   := p_AlwaysOnPDUSessionInd,     /* c.  9.11.4.3  O TV 1 IEI=8 */
      mappedEPSContexts       := p_MappedEPSBearerContexts,   /* cl. 9.11.4.9  O TLV-E 7-65538 IEI=7F */
      eapMessage              := p_EAP,                       /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
      authorizedQoSFlowDescr  := p_QoSFlowDescr,              /* cl. 9.11.4.12  O TLV-E 6-65538 IEI=79 */
      extdProtocolConfigurationOptions := p_ExtdPCO,          /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
      dnn                     := p_DNN,                       /* cl. 9.11.2.1A O TLV 3-102 IEI=25 */
      ngs_NetworkFeatureSupport     := p_NGSM_NtwkFeatSupport,  /* cl. 9.11.4.18 O TLV 3-15  IEI=17 Sep20 @sic R5s201387 Baseline Moving sic@ */
      servingPLMNRateControl        := p_ServingPLMNRateCtrl,  /* cl. 9.11.4.20 O TLV 4  IEI=18 Sep20 @sic R5s201387 Baseline Moving sic@ */
      atsssContainer                := p_ATSSSContainer,  /* cl. 9.11.4.22 O TLV-E 3-65538  IEI=77 Sep20 @sic R5s201387 Baseline Moving sic@ */
      controlPlaneOnlyIndication    := p_ControlPlaneInd,  /* cl. 9.11.4.23 O TV 1  IEI=C Sep20 @sic R5s201387 Baseline Moving sic@ */
      ipHeaderCompressionConfig     := p_IPHeaderCompConfig,  /* cl. 9.11.4.24 O TLV 5-257 IEI=66 Sep20 @sic R5s201387 Baseline Moving sic@ */
      ethernetHeaderCompressConfig  := p_EthernetHeaderCompConfig,   /* cl. 9.11.4.28 O TLV 3 IEI=1F Sep20 @sic R5s201387 Baseline Moving sic@ */
      serviceLvlAA                  := p_ServiceLvlAA,                  /* cl. 9.11.2.10  O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving sic@ */
      receivedMBS                   := p_ReceivedMBS                  /* cl. 9.11.4.30  O TLV-E 8-65538 IEI=71 Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT

  template (omit) NG_NAS_DL_Message_Type m_NG_PDU_SESSION_ESTABLISHMENT_REJECT(
                                                                               in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                               in template (value) ProcedureTransactionIdentifier p_PTI,
                                                                               in template (value) GMM_GSM_Cause p_Cause,
                                                                               in template (omit) GPRS_Timer3 p_BackOff := omit,
                                                                               in template (omit) AllowedSSCMode p_SSC_Mode := omit,
                                                                               in template (omit) EAP_Message p_EAP := omit,
                                                                               in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit,
                                                                               in template (omit) ReAttemptIndicator p_ReAttemptIndicator := omit,
                                                                               in template (omit) NGSM_CongestionReattemptInd p_NGSM_CongestionReattemptInd := omit, // @sic R5s190543 sic@
                                                                               in template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit
                                                                               ) modifies cs_NG_PDU_SESSION_ESTABLISHMENT_REJECT := { /* 24.501 cl. 8.3.3 */
    /* @status    APPROVED (NR5GC) */
    pdu_Session_Establishment_Reject := {
    }
  } // End of template m_NG_PDU_SESSION_ESTABLISHMENT_REJECT

  template (present) NG_NAS_DL_Message_Type mw_NG_PDU_SESSION_ESTABLISHMENT_REJECT(
                                                                                   template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                                   template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                                   template (present) GMM_GSM_Cause p_Cause := ?,
                                                                                   template GPRS_Timer3 p_BackOff := *,
                                                                                   template AllowedSSCMode p_SSC_Mode := *,
                                                                                   template EAP_Message p_EAP := *,
                                                                                   template ExtdProtocolConfigOptions p_ExtdPCO := *,
                                                                                   template ReAttemptIndicator p_ReAttemptIndicator := *,
                                                                                   template NGSM_CongestionReattemptInd p_NGSM_CongestionReattemptInd := *, // @sic R5s190543 sic@
                                                                                   template ServiceLvlAAContainer p_ServiceLvlAA := *
                                                                                   ) := { /* 24.501 cl. 8.3.3 */
    /* @status    APPROVED (NR5GC) */
    pdu_Session_Establishment_Reject := {
      protocolDiscriminator   := tsc_EPD_GSM,                 /* cl. 9.2       M V 1   */
      pduSessionId            := p_PDU_SessionId,             /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,               /* cl. 9.6       M V 1   */
      messageType             := tsc_MT_NG_PDUSessionEstablishmentReject, /* cl. 9.7       M V 1   */
      gsmCause                := p_Cause,                     /* cl. 9.11.4.2  M V 1   */
      backOffTimerValue       := p_BackOff,                   /* cl. 9.11.2.5  O TLV 3 IEI=37 */
      allowedSSCMode          := p_SSC_Mode,                  /* cl. 9.11.4.5  O TV  1 IEI=F */
      eapMessage              := p_EAP,                       /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
      ngsmCongestionReattemptInd  := p_NGSM_CongestionReattemptInd,  /* cl. 9.11.4.2A O TLV 3 IEI=61 Jun19 @sic R5s201387, R5s210444 Baseline Moving sic@ */
      extdProtocolConfigurationOptions := p_ExtdPCO,          /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
      reattemptInd            := p_ReAttemptIndicator,        /* cl. 9.11.4.17 O TLV 3 IEI=1D Sep20 @sic R5s201387 Baseline Moving sic@ */
      serviceLvlAA            := p_ServiceLvlAA               /* cl. 9.11.2.10  O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template m_NG_PDU_SESSION_ESTABLISHMENT_REJECT

  template (omit) NG_NAS_UL_Message_Type m_NG_PDU_SESSION_RELEASE_REQUEST(
                                                                          in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                          in template (value) ProcedureTransactionIdentifier p_PTI,
                                                                          in template (omit) GMM_GSM_Cause p_Cause := omit,
                                                                          in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit
                                                                          ) := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.3.12 */
    pdu_Session_Release_Request := {
      protocolDiscriminator           := tsc_EPD_GSM,                    /* cl. 9.2       M V 1   */
      pduSessionId                    := p_PDU_SessionId,                /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                          /* cl. 9.6       M V 1   */
      messageType                     := tsc_MT_NG_PDUSessionReleaseRequest, /* cl. 9.7       M V 1   */
      gsmCause                        := p_Cause,                        /* cl. 9.11.4.2  O TV 2 IEI=59  */
      extdProtocolConfigurationOptions := p_ExtdPCO                      /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
    }
  } // End of template m_NG_PDU_SESSION_RELEASE_REQUEST

  template (present) NG_NAS_UL_Message_Type mw_NG_PDU_SESSION_RELEASE_REQUEST(
                                                                              template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                              template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                              template GMM_GSM_Cause p_Cause := *,
                                                                              template ExtdProtocolConfigOptions p_ExtdPCO := *
                                                                              ) modifies cr_NG_PDU_SESSION_RELEASE_REQUEST := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.3.12 */
    pdu_Session_Release_Request := {
    }
  } // End of template mw_NG_PDU_SESSION_RELEASE_REQUEST

  template (omit) NG_NAS_DL_Message_Type m_NG_PDU_SESSION_RELEASE_REJECT(
                                                                         in NG_PDU_SessionId p_PDU_SessionId,
                                                                         in ProcedureTransactionIdentifier p_PTI,
                                                                         in GMM_GSM_Cause p_Cause,
                                                                         in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit
                                                                         ) modifies cs_NG_PDU_SESSION_RELEASE_REJECT := {                      /* 24.501 cl. 8.3.13 */
    pdu_Session_Release_Reject := {
      protocolDiscriminator           := tsc_EPD_GSM,                    /* cl. 9.2       M V 1   */
      pduSessionId                    := p_PDU_SessionId,                /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                          /* cl. 9.6       M V 1   */
      messageType                     := tsc_MT_NG_PDUSessionReleaseReject, /* cl. 9.7       M V 1   */
      gsmCause                        := p_Cause,                        /* cl. 9.11.4.2  M V 1   */
      extdProtocolConfigurationOptions := p_ExtdPCO                      /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
    }
  } // End of template m_NG_PDU_SESSION_RELEASE_REJECT

  template (present) NG_NAS_DL_Message_Type mw_NG_PDU_SESSION_RELEASE_REJECT(
                                                                             template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                             template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                             template (present) GMM_GSM_Cause p_Cause := ?,
                                                                             template ExtdProtocolConfigOptions p_ExtdPCO := *
                                                                             ) := {                      /* 24.501 cl. 8.3.13 */
    pdu_Session_Release_Reject := {
      protocolDiscriminator           := tsc_EPD_GSM,                    /* cl. 9.2       M V 1   */
      pduSessionId                    := p_PDU_SessionId,                /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                          /* cl. 9.6       M V 1   */
      messageType                     := tsc_MT_NG_PDUSessionReleaseReject, /* cl. 9.7       M V 1   */
      gsmCause                        := p_Cause,                        /* cl. 9.11.4.2  M V 1   */
      extdProtocolConfigurationOptions := p_ExtdPCO                      /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
    }
  } // End of template mw_NG_PDU_SESSION_RELEASE_REJECT

  template (omit) NG_NAS_DL_Message_Type m_NG_PDU_SESSION_RELEASE_COMMAND(
                                                                          in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                          in ProcedureTransactionIdentifier p_PTI,
                                                                          in template (value) GMM_GSM_Cause p_Cause,
                                                                          in template (omit) GPRS_Timer3 p_BackOffTimer := omit,
                                                                          in template (omit) EAP_Message p_EAP := omit,
                                                                          in template (omit) NGSM_CongestionReattemptInd p_NGSM_CongestionReattemptInd := omit, // @sic R5s190543 sic@
                                                                          in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit,
                                                                          in template (omit) AccessType p_AccessType := omit,
                                                                          in template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit
                                                                          ) modifies cs_NG_PDU_SESSION_RELEASE_COMMAND := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.3.14 */
    pdu_Session_Release_Command := {
    }
  } // End of template m_NG_PDU_SESSION_RELEASE_COMMAND

  template (present) NG_NAS_DL_Message_Type mw_NG_PDU_SESSION_RELEASE_COMMAND(
                                                                              template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                              template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                              template (present) GMM_GSM_Cause p_Cause := ?,
                                                                              template GPRS_Timer3 p_BackOffTimer := *,
                                                                              template EAP_Message p_EAP := *,
                                                                              template NGSM_CongestionReattemptInd p_NGSM_CongestionReattemptInd := *, // @sic R5s190543 sic@
                                                                              template ExtdProtocolConfigOptions p_ExtdPCO := *,
                                                                              template AccessType p_AccessType := *,
                                                                              template ServiceLvlAAContainer p_ServiceLvlAA := *
                                                                             ) := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.3.14 */
    pdu_Session_Release_Command := {
      protocolDiscriminator           := tsc_EPD_GSM,                    /* cl. 9.2       M V 1   */
      pduSessionId                    := p_PDU_SessionId,                /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                          /* cl. 9.6       M V 1   */
      messageType                     := tsc_MT_NG_PDUSessionReleaseCommand, /* cl. 9.7       M V 1   */
      gsmCause                        := p_Cause,                        /* cl. 9.11.4.2  M V 1   */
      backOffTimerValue               := p_BackOffTimer,                 /* cl. 9.11.2.5  O TLV 3 IEI=37 */
      eapMessage                      := p_EAP,                          /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
      ngsmCongestionReattemptInd      := p_NGSM_CongestionReattemptInd,  /* cl. 9.11.4.2A O TLV 3 IEI=61 Jun19 @sic R5s190543 sic@ */
      extdProtocolConfigurationOptions := p_ExtdPCO,                     /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
      accessType                      := p_AccessType,                   /* cl. 9.11.2.1A O TV 1 IEI=D Sep20 @sic R5s201387 Baseline Moving sic@ */
      serviceLvlAA                    := p_ServiceLvlAA                  /* cl. 9.11.2.10  O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_PDU_SESSION_RELEASE_COMMAND

  template (omit) NG_NAS_UL_Message_Type m_NG_PDU_SESSION_RELEASE_COMPLETE(
                                                                           in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                           in template (value) ProcedureTransactionIdentifier p_PTI,
                                                                           in template (omit) GMM_GSM_Cause p_Cause := omit,
                                                                           in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit
                                                                           ) := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.3.15 */
    pdu_Session_Release_Complete := {
      protocolDiscriminator           := tsc_EPD_GSM,                    /* cl. 9.2       M V 1   */
      pduSessionId                    := p_PDU_SessionId,                /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                          /* cl. 9.6       M V 1   */
      messageType                     := tsc_MT_NG_PDUSessionReleaseComplete, /* cl. 9.7       M V 1   */
      gsmCause                        := p_Cause,                        /* cl. 9.11.4.2  O TV 2 IEI=59  */
      extdProtocolConfigurationOptions := p_ExtdPCO                      /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
    }
  } // End of template m_NG_PDU_SESSION_RELEASE_COMPLETE

  template (present) NG_NAS_UL_Message_Type mw_NG_PDU_SESSION_RELEASE_COMPLETE(
                                                                               template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                               template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                               template GMM_GSM_Cause p_Cause := *,
                                                                               template ExtdProtocolConfigOptions p_ExtdPCO := *
                                                                               ) modifies cr_NG_PDU_SESSION_RELEASE_COMPLETE := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    /* 24.501 cl. 8.3.15 */
    pdu_Session_Release_Complete := {
    }
  } // End of template mw_NG_PDU_SESSION_RELEASE_COMPLETE

  template (value) NG_NAS_DL_Message_Type m_NG_IDENTITY_REQUEST(
                                                                in NAS_IdType p_IdType
                                                                ) modifies cs_NG_IDENTITY_REQUEST := {
    identity_Request :={}
  } // End of template m_NG_IDENTITY_REQUEST

  template (present) NG_NAS_DL_Message_Type mw_NG_IDENTITY_REQUEST(
                                                                   template (present) NAS_IdType p_IdType := ?
                                                                   ) := {
    identity_Request :={
      protocolDiscriminator   := tsc_EPD_GMM,
      spareHalfOctet          := tsc_SpareHalfOctet,
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_IdentityRequest,
      spareHalfOctet2         := tsc_SpareHalfOctet,
      identityType            := mw_IdentityType(p_IdType)
    }
  } // End of template mw_NG_IDENTITY_REQUEST

  template (value) NG_NAS_UL_Message_Type m_NG_IDENTITY_RESPONSE(
                                                                 in NG_MobileIdentity p_MobileId
                                                                 ) := {
    identity_Response :={
      protocolDiscriminator   := tsc_EPD_GMM,
      spareHalfOctet          := tsc_SpareHalfOctet,
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_IdentityResponse,
      ngMobileId              := p_MobileId
    }
  } // End of template m_NG_IDENTITY_RESPONSE

  template (present) NG_NAS_UL_Message_Type mw_NG_IDENTITY_RESPONSE(
                                                                    template (present) NG_MobileIdentity p_MobileId := ?
                                                                    ) modifies cr_NG_IDENTITY_RESPONSE := {
    identity_Response :={}
  } // End of template mw_NG_IDENTITY_RESPONSE

  template (omit) NG_NAS_DL_Message_Type m_NG_CONFIGURATION_UPDATE_COMMAND(
                                                                           in template (omit) ConfigUpdateInd p_ConfigUpdateInd := omit,
                                                                           in template (omit) NG_MobileIdentity p_Guti := omit,
                                                                           in template (omit) NG_TrackingAreaIdList p_TaiList := omit,
                                                                           in template (omit) NSSAI p_AllowedNSSAI := omit,
                                                                           in template (omit) ServiceAreaIdList p_SaiList := omit,
                                                                           in template (omit) NetworkName p_FullNetworkName := omit,
                                                                           in template (omit) NetworkName p_ShortNetworkName := omit,
                                                                           in template (omit) TimeZone p_LocalTimeZone := omit,
                                                                           in template (omit) TimeZoneAndTime p_LocalTimeZoneAndTime := omit,
                                                                           in template (omit) DaylightSavingTime p_DaylightSavingTime := omit,
                                                                           in template (omit) LADN_Info p_LadnInfo := omit,
                                                                           in template (omit) MICO_Ind p_MicoInd := omit,
                                                                           in template (omit) NetworkSlicingInd p_NetworkSlicingInd := omit,
                                                                           in template (omit) NSSAI p_ConfiguredNSSAI := omit,
                                                                           in template (omit) RejectedNSSAI p_RejectedNSSAI := omit,
                                                                           in template (omit) OperatorAccessCatDefinitions p_OperatorAccessCatDefs := omit,
                                                                           in template (omit) SMSInd p_SmsInd := omit,
                                                                           in template (omit) GPRS_Timer3 p_T3447 := omit,
                                                                           in template (omit) CAGInfoList p_CAGInfoList := omit,
                                                                           in template (omit) UERadioCapId p_UERadioCapId := omit,
                                                                           in template (omit) UERadioCapIdDeletion p_UERadioCapIdDeletion := omit,
                                                                           in template (omit) RegistrationResult p_RegistrationResult := omit,
                                                                           in template (omit) TruncatedS_TMSIConfig p_TruncatedS_TMSIConfig := omit,
                                                                           in template (omit) AddConfigInfo p_AddConfigInfo := omit,
                                                                           in template (omit) ExtdRejectedNSSAI p_ExtdRejectedNSSAI := omit,
                                                                           in template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit,
                                                                           in template (omit) NSSRG_Info p_NssrgInfo := omit,
                                                                           in template (omit) RegistrationWaitRange p_DisasterRoamingWaitRange := omit,
                                                                           in template (omit) RegistrationWaitRange p_DisasterReturnWaitRange := omit,
                                                                           in template (omit) DisasterPLMNList p_DisasterPLMNList := omit,
                                                                           in template (omit) ExtdCAGInfoList p_ExtdCAGInfoList := omit,
                                                                           in template (omit) PEIPS_AssistInfo p_UpdatedPEIPS_AssistInfo := omit,
                                                                           in template (omit) NSAG_Info p_NsagInfo := omit,
                                                                           in template (omit) PriorityInd p_PriorityInd := omit
                                                                           ) modifies cs_NG_CONFIGURATION_UPDATE_COMMAND := {
   configuration_Update_Command := {}
  } // End of template m_NG_CONFIGURATION_UPDATE_COMMAND

  template  NG_NAS_DL_Message_Type mw_NG_CONFIGURATION_UPDATE_COMMAND(
                                                                     template ConfigUpdateInd p_ConfigUpdateInd := *,
                                                                     template NG_MobileIdentity p_Guti := *,
                                                                     template NG_TrackingAreaIdList p_TaiList := *,
                                                                     template NSSAI p_AllowedNSSAI := *,
                                                                     template ServiceAreaIdList p_SaiList := *,
                                                                     template NetworkName p_FullNetworkName := *,
                                                                     template NetworkName p_ShortNetworkName := *,
                                                                     template TimeZone p_LocalTimeZone := *,
                                                                     template TimeZoneAndTime p_LocalTimeZoneAndTime := *,
                                                                     template DaylightSavingTime p_DaylightSavingTime := *,
                                                                     template LADN_Info p_LadnInfo := *,
                                                                     template MICO_Ind p_MicoInd := *,
                                                                     template NetworkSlicingInd p_NetworkSlicingInd := *,
                                                                     template NSSAI p_ConfiguredNSSAI := *,
                                                                     template RejectedNSSAI p_RejectedNSSAI := *,
                                                                     template OperatorAccessCatDefinitions p_OperatorAccessCatDefs := *,
                                                                     template SMSInd p_SmsInd := *,
                                                                     template GPRS_Timer3 p_T3447 := *,
                                                                     template CAGInfoList p_CAGInfoList := *,
                                                                     template UERadioCapId p_UERadioCapId := *,
                                                                     template UERadioCapIdDeletion p_UERadioCapIdDeletion := *,
                                                                     template RegistrationResult p_RegistrationResult := *,
                                                                     template TruncatedS_TMSIConfig p_TruncatedS_TMSIConfig := *,
                                                                     template AddConfigInfo p_AddConfigInfo := *,
                                                                     template ExtdRejectedNSSAI p_ExtdRejectedNSSAI := *,
                                                                     template ServiceLvlAAContainer p_ServiceLvlAA := *,
                                                                     template NSSRG_Info p_NssrgInfo := *,
                                                                     template RegistrationWaitRange p_DisasterRoamingWaitRange := *,
                                                                     template RegistrationWaitRange p_DisasterReturnWaitRange := *,
                                                                     template DisasterPLMNList p_DisasterPLMNList := *,
                                                                     template ExtdCAGInfoList p_ExtdCAGInfoList := *,
                                                                     template PEIPS_AssistInfo p_UpdatedPEIPS_AssistInfo := *,
                                                                     template NSAG_Info p_NsagInfo := *,
                                                                     template PriorityInd p_PriorityInd := *
                                                                     ) := {
  configuration_Update_Command := {
    protocolDiscriminator        := tsc_EPD_GMM ,                              /* cl. 9.2       M V 1   */
    spareHalfOctet               := tsc_SpareHalfOctet,                        /* cl. 9.5       M V 1/2 */
    securityHeaderType           := tsc_SHT_NoSecurityProtection,              /* cl. 9.3       M V 1/2 */
    messageType                  := tsc_MT_NG_ConfigurationUpdateCommand,      /* cl. 9.7       M V 1   */
    configUpdateInd              := p_ConfigUpdateInd,                         /* cl. 9.11.3.18 M TV 1 IEI=D */
    guti                         := p_Guti,                                    /* cl. 9.11.3.4  O TLV 13 IEI=77 Dec18 */
    taiList                      := p_TaiList,                                 /* cl. 9.11.3.9  O TLV 9-114 IEI=54 */
    allowedNSSAI                 := p_AllowedNSSAI,                            /* cl. 9.11.3.37 O TLV 4-74 IEI=15 */
    saiList                      := p_SaiList,                                 /* cl. 9.11.3.49 O TLV 6-114 IEI=27 */
    fullNetworkName              := p_FullNetworkName,                         /* cl. 9.11.3.35 O TLV 3-? IEI=43 */
    shortNetworkName             := p_ShortNetworkName,                        /* cl. 9.11.3.35 O TLV 3-? IEI=45 */
    localTimeZone                := p_LocalTimeZone,                           /* cl. 9.11.3.52 O TV 2    IEI=46 */
    localTimeZoneAndTime         := p_LocalTimeZoneAndTime,                    /* cl. 9.11.3.53 O TV 8    IEI=47 */
    daylightSavingTime           := p_DaylightSavingTime,                      /* cl. 9.11.3.19 O TLV 3   IEI=49 */
    ladnInfo                     := p_LadnInfo,                                /* cl. 9.11.3.30 O TLV-E 3-1715 IEI=79 */
    micoInd                      := p_MicoInd,                                 /* cl. 9.11.3.31 O TLV 1 IEI=B */
    networkSlicingInd            := p_NetworkSlicingInd,                       /* cl. 9.11.3.36 O TV 1 IEI=9 */
    configuredNSSAI              := p_ConfiguredNSSAI,                         /* cl. 9.11.3.37 O TLV 4-146 IEI=31 */
    rejectedNSSAI                := p_RejectedNSSAI,                           /* cl. 9.11.3.46 O TLV 4-42 IEI=11 */
    operatorAccessCatDefs        := p_OperatorAccessCatDefs,                   /* cl. 9.11.3.38 O TLV-E 4-n IEI=76 Dec18 */
    smsInd                       := p_SmsInd,                                  /* cl. 9.10.3.50A O TV 1 IEI=F Dec18 */
    t3447Value                   := p_T3447,                                   /* cl. 9.11.2.5   O TLV 3 IEI=6C Sep20 @sic R5s201387 Baseline Moving sic@ */
    cagInfoList                  := p_CAGInfoList,                             /* cl. 9.11.3.18A O TLV-E 3-n IEI=75 Sep20 @sic R5s201387 Baseline Moving sic@ */
    ueRadioCapabilityId          := p_UERadioCapId,                            /* cl. 9.11.3.68  O TLV 3-n IEI=67 Sep20 @sic R5s201387 Baseline Moving sic@ */
    ueRadioCapIdDeletionInd      := p_UERadioCapIdDeletion,                    /* cl. 9.11.3.69  O TV  1 IEI=E Sep20 @sic R5s201387 Baseline Moving sic@ */
    registrationResult           := p_RegistrationResult,                      /* cl. 9.11.3.6   O TLV 3 IEI=44 Sep20 @sic R5s201387 Baseline Moving sic@ */
    truncatedS_TMSIConfig        := p_TruncatedS_TMSIConfig,                   /* cl. 9.11.3.70  O TLV 3 IEI=1B Sep20 @sic R5s201387 Baseline Moving sic@ */
    addConfigInfo                := p_AddConfigInfo,                           /* cl. 9.11.3.74  O TV  1 IEI=C Sep20 @sic R5s201387 Baseline Moving sic@ */
    extdRejectedNSSAI            := p_ExtdRejectedNSSAI, /* cl. 9.11.3.75  O TLV 5-90 IEI=68 Sep22 @sic R5s221179 Baseline Moving sic@ */
    serviceLvlAA                 := p_ServiceLvlAA, /* cl. 9.11.2.10  O TLV-E 6-n IEI=7B Sep22 @sic R5s221179 Baseline Moving sic@ */
    nssrgInfo                    := p_NssrgInfo, /* cl. 9.11.3.82  O TLV-E 7-65538 IEI=70 Sep22 @sic R5s221179 Baseline Moving sic@ */
    disasterRoamingWaitRange     := p_DisasterRoamingWaitRange, /* cl. 9.11.3.84  O TLV 4 IEI=14 Sep22 @sic R5s221179 Baseline Moving sic@ */
    disasterReturnWaitRange      := p_DisasterReturnWaitRange, /* cl. 9.11.3.84  O TLV 4 IEI=2C Sep22 @sic R5s221179 Baseline Moving sic@ */
    disasterPLMNList             := p_DisasterPLMNList, /* cl. 9.11.3.83  O TLV 2-n IEI=13 Sep22 @sic R5s221179 Baseline Moving sic@ */
    extdCAGInfoList              := p_ExtdCAGInfoList, /* cl. 9.11.3.86  O TLV-E 3-n IEI=71 Sep22 @sic R5s221179 Baseline Moving sic@ */
    updatedPEIPS_AssistInfo      := p_UpdatedPEIPS_AssistInfo, /* cl. 9.11.3.80  O TLV 3-n IEI=33 Sep22 @sic R5s221179 Baseline Moving sic@ */
    nsagInfo                     := p_NsagInfo,  /* cl. 9.11.3.87  O TLV-E 10-n IEI=7C Sep22 @sic R5s221179 Baseline Moving sic@ */
    priorityInd                  := p_PriorityInd  /* cl. 9.11.3.91  O TV  1 IEI=E- Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template m_NG_CONFIGURATION_UPDATE_COMMAND

  template (value) NG_NAS_UL_Message_Type m_NG_CONFIGURATION_UPDATE_COMPLETE := {
    configuration_Update_Complete := {
      protocolDiscriminator   := tsc_EPD_GMM ,                              /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,                        /* cl. 9.5       M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,              /* cl. 9.3       M V 1/2 */
      messageType             := tsc_MT_NG_ConfigurationUpdateComplete      /* cl. 9.7       M V 1   */
    }
  } // End of template m_NG_CONFIGURATION_UPDATE_COMPLETE

  template (present) NG_NAS_UL_Message_Type mw_NG_CONFIGURATION_UPDATE_COMPLETE modifies cr_NG_CONFIGURATION_UPDATE_COMPLETE := {
    configuration_Update_Complete := {
      protocolDiscriminator   := tsc_EPD_GMM ,                              /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,                        /* cl. 9.5       M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,              /* cl. 9.3       M V 1/2 */
      messageType             := tsc_MT_NG_ConfigurationUpdateComplete      /* cl. 9.7       M V 1   */
    }
  } // End of template mw_NG_CONFIGURATION_UPDATE_COMPLETE

  template (omit) NG_NAS_UL_Message_Type m_NG_UL_NAS_TRANSPORT(
                                                               in template (value) PayloadContainerType p_PayloadContainerType,
                                                               in template (value) PayloadContainer p_PayloadContainer,
                                                               in template (omit) NG_PDU_SessionId p_PDU_SessionId := omit,
                                                               in template (omit) NG_PDU_SessionId p_OldPDU_SessionId := omit,
                                                               in template (omit) NG_Request_Type p_RequestType := omit,
                                                               in template (omit) S_NSSAI_Type p_S_NSSAI := omit,
                                                               in template (omit) DNN p_DNN := omit,
                                                               in template (omit) AdditionalInformation p_AdditionalInfo := omit,
                                                               in template (omit) MA_PDUSessionInfo p_MA_PDUSessionInfo := omit,
                                                               in template (omit) ReleaseAssistanceInd p_ReleaseAssistanceInd := omit
                                                               ) := {
    ul_Nas_Transport := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_UL_NASTransport,       /* cl. 9.7      M V 1   */
      spareHalfOctet2         := tsc_SpareHalfOctet,              /* cl. 9.5      M V 1/2 */
      payloadContainerType    := p_PayloadContainerType,          /* cl. 9.11.3.40 M V 1/2 */
      payload                 := p_PayloadContainer,              /* cl. 9.11.3.39 M LV-E 3-65537 */
      pduSessionId            := p_PDU_SessionId,                 /* cl. 9.11.3.41 C TV 2 IEI=70 */
      oldPDUSessionId         := p_OldPDU_SessionId,              /* cl. 9.11.3.41 O TV 3 IEI=61 */
      requestType             := p_RequestType,                   /* cl. 9.`0.3.47 O TV 1 IEI=8 */
      s_NSSAI                 := p_S_NSSAI,                       /* cl. 9.11.2.8  O TLV 3-10 IEI=22 */
      dnn                     := p_DNN,                           /* cl. 9.11.3.21 O TLV 3-102 IEI=25 */
      additionalInfo          := p_AdditionalInfo,                /* cl. 9.11.2.1  O TLV 3-n IEI=24 */
      maPDUSessionInfo        := p_MA_PDUSessionInfo,             /* cl. 9.11.3.31A  O TV 1 IEI=A Sep20 @sic R5s201387 Baseline Moving sic@ */
      releaseAssistanceInd    := p_ReleaseAssistanceInd          /* cl. 9.11.3.46A  O TV 1 IEI=F Sep20 @sic R5s201387 Baseline Moving sic@ */
    }
  } // End of template m_NG_UL_NAS_TRANSPORT

  template (present) NG_NAS_UL_Message_Type mw_NG_UL_NAS_TRANSPORT(
                                                                   template (present) PayloadContainerType p_PayloadContainerType := ?,
                                                                   template NG_PDU_SessionId p_PDU_SessionId := *,
                                                                   template NG_PDU_SessionId p_OldPDU_SessionId := *,
                                                                   template NG_Request_Type p_RequestType := *,
                                                                   template S_NSSAI_Type p_S_NSSAI := *,
                                                                   template DNN p_DNN := *,
                                                                   template AdditionalInformation p_AdditionalInfo := *,
                                                                   template MA_PDUSessionInfo p_MA_PDUSessionInfo := *,
                                                                   template ReleaseAssistanceInd p_ReleaseAssistanceInd := *
                                                                   ) modifies cr_NG_UL_NAS_TRANSPORT := {
    ul_Nas_Transport := {}
  } // End of template mw_NG_UL_NAS_TRANSPORT

  template (omit) NG_NAS_DL_Message_Type m_NG_DL_NAS_TRANSPORT(
                                                               in template (value) PayloadContainerType p_PayloadContainerType,
                                                               in template (value) PayloadContainer p_Payload,
                                                               in template (omit) NG_PDU_SessionId p_PDU_SessionId := omit,
                                                               in template (omit) AdditionalInformation p_AdditionalInfo := omit,
                                                               in template (omit) GMM_GSM_Cause p_Cause := omit,
                                                               in template (omit) GPRS_Timer3 p_BackOff := omit,
                                                               in template (omit) GPRS_Timer3 p_LowerBoundTimerValue := omit
                                                               ) modifies cs_NG_DL_NAS_TRANSPORT := {
    dl_Nas_Transport := {}
  } // End of template m_NG_DL_NAS_TRANSPORT

  template (present) NG_NAS_DL_Message_Type mw_NG_DL_NAS_TRANSPORT(
                                                                   template (present) PayloadContainerType p_PayloadContainerType := ?,
                                                                   template (present) PayloadContainer p_Payload := ?,
                                                                   template NG_PDU_SessionId p_PDU_SessionId := *,
                                                                   template AdditionalInformation p_AdditionalInfo := *,
                                                                   template GMM_GSM_Cause p_Cause := *,
                                                                   template GPRS_Timer3 p_BackOff := *,
                                                                   template GPRS_Timer3 p_LowerBoundTimerValue := *
                                                                   ) := {
    dl_Nas_Transport := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_DL_NASTransport,       /* cl. 9.7      M V 1   */
      spareHalfOctet2         := tsc_SpareHalfOctet,              /* cl. 9.5      M V 1/2 */
      payloadContainerType    := p_PayloadContainerType,          /* cl. 9.11.3.40 M V 1/2 */
      payload                 := p_Payload,                       /* cl. 9.11.3.39 M LV-E 3-65537 */
      pduSessionId            := p_PDU_SessionId,                 /* cl. 9.11.3.41 C TV 2 IEI=70 */
      additionalInfo          := p_AdditionalInfo,                /* cl. 9.11.2.1  O TLV 3-n IEI=24 */
      gmmCause                := p_Cause,                         /* cl. 9.11.3.2  O TV 2 IEI=58  */
      backOffTimerValue       := p_BackOff,                       /* cl. 9.11.2.5  O TLV 3 IEI=37 */
      lowerBoundTimerValue    := p_LowerBoundTimerValue           /* cl. 9.11.2.5  O TLV 3 IEI=3A Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_DL_NAS_TRANSPORT

  template (omit) NG_NAS_UL_Message_Type m_NG_SERVICE_REQUEST(
                                                              in template (value) B4_Type p_ServiceType,
                                                              in template (value) NAS_KeySetIdentifier p_KSI,
                                                              in template (value) NG_MobileIdentity p_S_TMSI,
                                                              in template (omit) ULDataStatus p_ULDataStatus := omit,
                                                              in template (omit) PDU_SessionStatus p_PDU_SessionStatus := omit,
                                                              in template (omit) AllowedPDU_SessionStatus p_AllowedPDU_SessionStatus := omit,
                                                              in template (omit) NASMessageContainer p_Msg := omit,
                                                              in template (omit) UE_RequestType p_UeRequestType := omit,
                                                              in template (omit) NG_PagingRestriction p_PagingRestrict
                                                              ) modifies cr_NG_SERVICE_REQUEST := {
    service_Request          := {}
  } // End of template m_NG_SERVICE_REQUEST

  template (present) NG_NAS_UL_Message_Type mw_NG_SERVICE_REQUEST(
                                                                  template (present) B4_Type p_ServiceType := ?,
                                                                  template (present) NAS_KeySetIdentifier p_KSI := ?,
                                                                  template (present) NG_MobileIdentity p_S_TMSI := ?,
                                                                  template ULDataStatus p_ULDataStatus := *,
                                                                  template PDU_SessionStatus p_PDU_SessionStatus := *,
                                                                  template AllowedPDU_SessionStatus p_AllowedPDU_SessionStatus := *,
                                                                  template NASMessageContainer p_Msg := *,
                                                                  template UE_RequestType p_UeRequestType := *,
                                                                  template NG_PagingRestriction p_PagingRestrict := *
                                                                  ) := {
    service_Request          := {
      protocolDiscriminator   := tsc_EPD_GMM,                  /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,           /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_ServiceRequest,     /* cl. 9.7      M V 1   */
      serviceType             := p_ServiceType,                /* cl. 9.11.3.50 M V 1/2 */
      ngKSI                   := p_KSI,                        /* cl. 9.11.3.32 M V 1/2 */
      s_TMSI                  := p_S_TMSI,                     /* cl. 9.11.3.4  M LV 6  */
      ulDataStatus            := p_ULDataStatus,               /* cl. 9.11.2.57 O TLV 4-34 IEI=40 */
      pduSessionStatus        := p_PDU_SessionStatus,          /* cl. 9.11.2.44 O TLV 4-34 IEI=50 */
      allowedPDUSessionStatus := p_AllowedPDU_SessionStatus,   /* cl. 9.11.3.13 O TLV 4-34 IEI=25 */
      nasMsg                  := p_Msg,                        /* cl. 9.11.3.33 O TLV-E 4-n IEI=71 Dec18 */
      ueRequestType           := p_UeRequestType,              /* cl. 9.11.3.76  O TLV 3 IEI=29 Sep22 @sic R5s221179 Baseline Moving sic@ */
      pagingRestrict          := p_PagingRestrict              /* cl. 9.11.3.77  O TLV 3-35 IEI=28 Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_SERVICE_REQUEST

  template (omit) NG_NAS_DL_Message_Type m_NG_SERVICE_ACCEPT(
                                                             in template (omit) PDU_SessionStatus p_PDU_SessionStatus := omit,
                                                             in template (omit) PDU_SessionReactivationResult p_PDU_SessionReactivationResult := omit,
                                                             in template (omit) PDU_SessionReactivationError p_PDU_SessionReactivationError := omit,
                                                             in template (omit) EAP_Message p_EAP := omit,
                                                             in template (omit) GPRS_Timer2 p_T3448 := omit,
                                                             in template (omit) NG_AddReqResult p_AddRequestResult := omit,
                                                             in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_Roaming := omit,
                                                             in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := omit
                                                             ) modifies cs_NG_SERVICE_ACCEPT := {
    service_Accept := {}
  } // End of template m_NG_SERVICE_ACCEPT

  template NG_NAS_DL_Message_Type mw_NG_SERVICE_ACCEPT(
                                                       template PDU_SessionStatus p_PDU_SessionStatus := *,
                                                       template PDU_SessionReactivationResult p_PDU_SessionReactivationResult := *,
                                                       template PDU_SessionReactivationError p_PDU_SessionReactivationError := *,
                                                       template EAP_Message p_EAP := *,
                                                       template GPRS_Timer2 p_T3448 := *,
                                                       template NG_AddReqResult p_AddRequestResult := *,
                                                       template NG_TrackingAreaIdList p_ForbidTAIList_Roaming := *,
                                                       template NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := *
                                                       ) := {
    service_Accept := {
      protocolDiscriminator   := tsc_EPD_GMM,                  /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,           /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_ServiceAccept,      /* cl. 9.7      M V 1   */
      pduSessionStatus        := p_PDU_SessionStatus,          /* cl. 9.11.2.44 O TLV 4-34 IEI=50 */
      pduSessionReactivationResult  := p_PDU_SessionReactivationResult, /* cl. 9.11.3.42 O TLV 4-32 IEI=26 */
      pduSessionReactResultError    := p_PDU_SessionReactivationError,  /* cl. 9.11.3.43 O TLV-E 5-515 IEI=7E */
      eapMessage                    := p_EAP,                        /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78*/
      t3448                         := p_T3448,                      /* cl. 9.11.2.4  O TLV 3 IEI=6B Sep20 @sic R5s201387 Baseline Moving sic@ */
      ngAddRequestResult            := p_AddRequestResult, /* cl. 9.11.3.81  O TLV 3 IEI=34 Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_Roaming         := p_ForbidTAIList_Roaming, /* cl. 9.11.3.9   O TLV 9-114 IEI=1D Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_RegProvService  := p_ForbidTAIList_RegProvService /* cl. 9.11.3.9   O TLV 9-114 IEI=1E Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_SERVICE_ACCEPT

  template (omit) NG_NAS_DL_Message_Type m_NG_SERVICE_REJECT(
                                                             in template (value) GMM_GSM_Cause p_Cause,
                                                             in template (omit) PDU_SessionStatus p_PDU_SessionStatus := omit,
                                                             in template (omit) GPRS_Timer2 p_T3346 := omit,
                                                             in template (omit) EAP_Message p_EAP := omit,
                                                             in template (omit) GPRS_Timer2 p_T3448 := omit,
                                                             in template (omit) CAGInfoList p_CAGInfoList := omit,
                                                             in template (omit) RegistrationWaitRange p_DisasterReturnWaitRange := omit,
                                                             in template (omit) ExtdCAGInfoList p_ExtdCAGInfoList := omit,
                                                             in template (omit) GPRS_Timer3 p_LowerBoundTimerValue := omit,
                                                             in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_Roaming := omit,
                                                             in template (omit) NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := omit
                                                             ) modifies cs_NG_SERVICE_REJECT := {
    service_Reject := {}
  } // End of template m_NG_SERVICE_REJECT

  template (present) NG_NAS_DL_Message_Type mw_NG_SERVICE_REJECT(
                                                                 template (present) GMM_GSM_Cause p_Cause := ?,
                                                                 template PDU_SessionStatus p_PDU_SessionStatus := *,
                                                                 template GPRS_Timer2 p_T3346 := *,
                                                                 template EAP_Message p_EAP := *,
                                                                 template GPRS_Timer2 p_T3448 := *,
                                                                 template CAGInfoList p_CAGInfoList := *,
                                                                 template RegistrationWaitRange p_DisasterReturnWaitRange := *,
                                                                 template ExtdCAGInfoList p_ExtdCAGInfoList := *,
                                                                 template GPRS_Timer3 p_LowerBoundTimerValue := *,
                                                                 template NG_TrackingAreaIdList p_ForbidTAIList_Roaming := *,
                                                                 template NG_TrackingAreaIdList p_ForbidTAIList_RegProvService := *
                                                                 ) := {
    service_Reject := {
      protocolDiscriminator   := tsc_EPD_GMM,                  /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,           /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_ServiceReject,       /* cl. 9.7      M V 1   */
      gmmCause                := p_Cause,                      /* cl. 9.11.3.2  M V 1   */
      pduSessionStatus        := p_PDU_SessionStatus,          /* cl. 9.11.2.44 O TLV 4-34 IEI=50 */
      t3346                   := p_T3346,                      /* cl. 9.11.2.4   O TLV 3 IEI=5F */
      eapMessage              := p_EAP,                        /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
      t3448                   := p_T3448,                      /* cl. 9.11.2.4  O TLV 3 IEI=6B Sep20 @sic R5s201387 Baseline Moving sic@ */
      cagInfoList             := p_CAGInfoList,                /* cl. 9.11.3.18A O TLV-E 3-n IEI=75 Sep20 @sic R5s201387 Baseline Moving sic@ */
      disasterReturnWaitRange      := p_DisasterReturnWaitRange, /* cl. 9.11.3.84  O TLV 4 IEI=2C Sep22 @sic R5s221179 Baseline Moving sic@ */
      extdCAGInfoList              := p_ExtdCAGInfoList, /* cl. 9.11.3.86  O TLV-E 3-n IEI=71 Sep22 @sic R5s221179 Baseline Moving sic@ */
      lowerBoundTimerValue         := p_LowerBoundTimerValue, /* cl. 9.11.2.5  O TLV 3 IEI=3A Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_Roaming        := p_ForbidTAIList_Roaming, /* cl. 9.11.3.9   O TLV 9-114 IEI=3B Sep22 @sic R5s221179 Baseline Moving sic@ */
      forbidTAIList_RegProvService := p_ForbidTAIList_RegProvService /* cl. 9.11.3.9   O TLV 9-114 IEI=3C Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_SERVICE_REJECT

  template (omit) NG_NAS_UL_Message_Type m_NG_CP_SERVICE_REQUEST(
                                                                 in template (value) NAS_KeySetIdentifier p_NAS_KeySetIdentifier,
                                                                 in template (value) CP_ServiceType p_CP_ServiceType,
                                                                 in template (omit) CIoTSmallDataRxdString p_CIoTSmallDataContainer := omit,
                                                                 in template (omit) PayloadContainerType p_PayloadContainerType := omit,
                                                                 in template (omit) PayloadContainer p_PayloadContainer := omit,
                                                                 in template (omit) NG_PDU_SessionId p_NG_PDU_SessionId := omit,
                                                                 in template (omit) PDU_SessionStatus p_PDU_SessionStatus := omit,
                                                                 in template (omit) ReleaseAssistanceInd p_ReleaseAssistanceInd := omit,
                                                                 in template (omit) ULDataStatus p_ULDataStatus := omit,
                                                                 in template (omit) AdditionalInformation p_AdditionalInfo := omit,
                                                                 in template (omit) AllowedPDU_SessionStatus p_AllowedPDU_SessionStatus := omit,
                                                                 in template (omit) NASMessageContainer p_NASMsg := omit,
                                                                 in template (omit) UE_RequestType p_UeRequestType := omit,
                                                                 in template (omit) NG_PagingRestriction p_PagingRestrict := omit
                                                                 ) modifies cr_NG_CP_SERVICE_REQUEST := {
    cp_Service_Request := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_CP_Service_Request,    /* cl. 9.7        M V 1   */
      ngKSI                   := p_NAS_KeySetIdentifier,          /* cl. 9.11.3.32  M V 1/2 */
      cpServiceType           := p_CP_ServiceType,                /* cl. 9.11.3.18D M V 1/2 */
      cIoTSmallDataContainer  := p_CIoTSmallDataContainer,        /* cl. 9.11.3.18B O TLV 4-257 IEI=6F  */
      payloadContainerType    := p_PayloadContainerType,          /* cl. 9.11.3.40  O TV 1 IEI=8 */
      payload                 := p_PayloadContainer,              /* cl. 9.11.3.39  O TLV-E 4-65538 IEI=7B */
      pduSessionId            := p_NG_PDU_SessionId,              /* cl. 9.11.3.41  C TV 2 IEI=12 */
      pduSessionStatus        := p_PDU_SessionStatus,             /* cl. 9.11.2.44 O TLV 4-34 IEI=50 */
      releaseAssistanceInd    := p_ReleaseAssistanceInd,          /* cl. 9.11.3.46A  O TV 1 IEI=F */
      ulDataStatus            := p_ULDataStatus,                  /* cl. 9.11.2.57 O TLV 4-34 IEI=40 */
      nasMsg                  := p_NASMsg,                        /* cl. 9.11.3.33 O TLV-E 3-n IEI=71 */
      additionalInfo          := p_AdditionalInfo,                /* cl. 9.11.2.1  O TLV 3-n IEI=24 */
      allowedPDUSessionStatus := p_AllowedPDU_SessionStatus,      /* cl. 9.11.3.13 O TLV 4-34 IEI=25 Sep22 @sic R5s221179 Baseline Moving sic@ */
      ueRequestType           := p_UeRequestType,                 /* cl. 9.11.3.76  O TLV 3 IEI=29 Sep22 @sic R5s221179 Baseline Moving sic@ */
      pagingRestrict          := p_PagingRestrict                 /* cl. 9.11.3.77  O TLV 3-35 IEI=28 Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template m_NG_CP_SERVICE_REQUEST

  template (present) NG_NAS_UL_Message_Type mw_NG_CP_SERVICE_REQUEST(
                                                                     template (present) NAS_KeySetIdentifier p_NAS_KeySetIdentifier := ?,
                                                                     template (present) CP_ServiceType p_CP_ServiceType := ?,
                                                                     template CIoTSmallDataRxdString p_CIoTSmallDataContainer := *,
                                                                     template PayloadContainerType p_PayloadContainerType := *,
                                                                     template PayloadContainer p_PayloadContainer := *,
                                                                     template NG_PDU_SessionId p_NG_PDU_SessionId := *,
                                                                     template PDU_SessionStatus p_PDU_SessionStatus := *,
                                                                     template ReleaseAssistanceInd p_ReleaseAssistanceInd := *,
                                                                     template ULDataStatus p_ULDataStatus := *,
                                                                     template AdditionalInformation p_AdditionalInfo := *,
                                                                     template AllowedPDU_SessionStatus p_AllowedPDU_SessionStatus := *,
                                                                     template NASMessageContainer p_NASMsg := *,
                                                                     template UE_RequestType p_UeRequestType := *,
                                                                     template NG_PagingRestriction p_PagingRestrict := *
                                                                     ) := {
    cp_Service_Request := {
      protocolDiscriminator   := tsc_EPD_GMM,                     /* cl. 9.2       M V 1   */
      spareHalfOctet          := tsc_SpareHalfOctet,              /* cl. 9.3      M V 1/2 */
      securityHeaderType      := tsc_SHT_NoSecurityProtection,
      messageType             := tsc_MT_NG_CP_Service_Request,    /* cl. 9.7        M V 1   */
      ngKSI                   := p_NAS_KeySetIdentifier,          /* cl. 9.11.3.32  M V 1/2 */
      cpServiceType           := p_CP_ServiceType,                /* cl. 9.11.3.18D M V 1/2 */
      cIoTSmallDataContainer  := p_CIoTSmallDataContainer,        /* cl. 9.11.3.18B O TLV 4-257 IEI=6F  */
      payloadContainerType    := p_PayloadContainerType,          /* cl. 9.11.3.40  O TV 1 IEI=8 */
      payload                 := p_PayloadContainer,              /* cl. 9.11.3.39  O TLV-E 4-65538 IEI=7B */
      pduSessionId            := p_NG_PDU_SessionId,              /* cl. 9.11.3.41  C TV 2 IEI=12 */
      pduSessionStatus        := p_PDU_SessionStatus,             /* cl. 9.11.2.44 O TLV 4-34 IEI=50 */
      releaseAssistanceInd    := p_ReleaseAssistanceInd,          /* cl. 9.11.3.46A  O TV 1 IEI=F */
      ulDataStatus            := p_ULDataStatus,                  /* cl. 9.11.2.57 O TLV 4-34 IEI=40 */
      nasMsg                  := p_NASMsg,                        /* cl. 9.11.3.33 O TLV-E 3-n IEI=71 */
      additionalInfo          := p_AdditionalInfo,                /* cl. 9.11.2.1  O TLV 3-n IEI=24 */
      allowedPDUSessionStatus := p_AllowedPDU_SessionStatus,      /* cl. 9.11.3.13 O TLV 4-34 IEI=25 Sep22 @sic R5s221179 Baseline Moving sic@ */
      ueRequestType           := p_UeRequestType,                 /* cl. 9.11.3.76  O TLV 3 IEI=29 Sep22 @sic R5s221179 Baseline Moving sic@ */
      pagingRestrict          := p_PagingRestrict                 /* cl. 9.11.3.77  O TLV 3-35 IEI=28 Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template m_NG_CP_SERVICE_REQUEST

  template (omit) NG_NAS_DL_Message_Type m_NG_PDU_SESSION_AUTHENTICATION_COMMAND(
                                                                                 in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                                 in ProcedureTransactionIdentifier p_PTI,
                                                                                 in template (value) EAP_Message p_EAP,
                                                                                 in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit
                                                                                 ) modifies cs_NG_PDU_SESSION_AUTHENTICATION_COMMAND := {
    pdu_Session_Authentication_Command := {}
  } // End of template m_NG_PDU_SESSION_AUTHENTICATION_COMMAND

  template (present) NG_NAS_DL_Message_Type mw_NG_PDU_SESSION_AUTHENTICATION_COMMAND(
                                                                                     template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                                     template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                                     template (present) EAP_Message p_EAP := ?,
                                                                                     template ExtdProtocolConfigOptions p_ExtdPCO := *
                                                                                     ) := {
    pdu_Session_Authentication_Command := {
      protocolDiscriminator   := tsc_EPD_GSM,                 /* cl. 9.2       M V 1   */
      pduSessionId            := p_PDU_SessionId,             /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,               /* cl. 9.6       M V 1   */
      messageType             := tsc_MT_NG_PDUSessionAuthenticationCommand, /* cl. 9.7       M V 1   */
      eapMessage              := p_EAP,                       /* cl. 9.11.2.2  M LV-E 6-1502 */
      extdProtocolConfigurationOptions := p_ExtdPCO           /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
    }
  } // End of template mw_NG_PDU_SESSION_AUTHENTICATION_COMMAND

  template (omit) NG_NAS_UL_Message_Type m_NG_PDU_SESSION_AUTHENTICATION_COMPLETE(
                                                                                  in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                                  in template (value) ProcedureTransactionIdentifier p_PTI,
                                                                                  in template (value) EAP_Message p_EAP,
                                                                                  in template (omit) ExtdProtocolConfigOptions p_ExtdPCO) := {
    pdu_Session_Authentication_Complete := {
      protocolDiscriminator   := tsc_EPD_GSM,                  /* cl. 9.2       M V 1   */
      pduSessionId            := p_PDU_SessionId,              /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                /* cl. 9.6       M V 1   */
      messageType             := tsc_MT_NG_PDUSessionAuthenticationComplete, /* cl. 9.7       M V 1   */
      eapMessage              := p_EAP,                        /* cl. 9.11.2.2   M LV-E 6-1502 */
      extdProtocolConfigurationOptions := p_ExtdPCO            /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
    }
  } // End of template m_NG_PDU_SESSION_AUTHENTICATION_COMPLETE

  template (present) NG_NAS_UL_Message_Type mw_NG_PDU_SESSION_AUTHENTICATION_COMPLETE(
                                                                                      template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                                      template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                                      template (present) EAP_Message p_EAP := ?,
                                                                                      template ExtdProtocolConfigOptions p_ExtdPCO := *
                                                                                      ) modifies cr_NG_PDU_SESSION_AUTHENTICATION_COMPLETE := {
    pdu_Session_Authentication_Complete := {
      protocolDiscriminator   := tsc_EPD_GSM,                  /* cl. 9.2       M V 1   */
      pduSessionId            := p_PDU_SessionId,              /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                /* cl. 9.6       M V 1   */
      messageType             := tsc_MT_NG_PDUSessionAuthenticationComplete, /* cl. 9.7       M V 1   */
      eapMessage              := p_EAP               ,         /* cl. 9.11.2.2   M LV-E 6-1502 */
      extdProtocolConfigurationOptions := p_ExtdPCO            /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
    }
  } // End of template mw_NG_PDU_SESSION_AUTHENTICATION_COMPLETE

  template (value) NG_NAS_DL_Message_Type m_NG_PDU_SESSION_AUTHENTICATION_RESULT(
                                                                                 in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                                 in ProcedureTransactionIdentifier p_PTI,
                                                                                 in template (omit) EAP_Message p_EAP := omit,
                                                                                 in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit
                                                                                 ) modifies cs_NG_PDU_SESSION_AUTHENTICATION_RESULT := {
    pdu_Session_Authentication_Result := {}
  } // End of template m_NG_PDU_SESSION_AUTHENTICATION_RESULT

  template (present) NG_NAS_DL_Message_Type mw_NG_PDU_SESSION_AUTHENTICATION_RESULT(
                                                                                    template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                                    template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                                    template EAP_Message p_EAP := *,
                                                                                    template ExtdProtocolConfigOptions p_ExtdPCO := *
                                                                                    ) := {
    pdu_Session_Authentication_Result := {
      protocolDiscriminator   := tsc_EPD_GSM,                  /* cl. 9.2       M V 1   */
      pduSessionId            := p_PDU_SessionId,              /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                /* cl. 9.6       M V 1   */
      messageType             := tsc_MT_NG_PDUSessionAuthenticationResult, /* cl. 9.7       M V 1   */
      eapMessage              := p_EAP,                        /* cl. 9.11.2.2  O TLV-E 7-1503 IEI=78 */
      extdProtocolConfigurationOptions := p_ExtdPCO            /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
    }
  } // End of template mw_NG_PDU_SESSION_AUTHENTICATION_RESULT

  template (omit) NG_NAS_UL_Message_Type m_NG_PDU_SESSION_MODIFICATION_REQUEST(
                                                                               template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                               template (value) ProcedureTransactionIdentifier p_PTI,
                                                                               template (omit) NG_UE_SM_Cap p_NG_UE_SM_Cap := omit,
                                                                               template (omit) GMM_GSM_Cause p_Cause := omit,
                                                                               template (omit) MaxNumPacketFilters p_MaxNumPacketFilters := omit,
                                                                               template (omit) AlwaysOnPDUSessionReq p_AlwaysOnPDUSessionReq := omit,
                                                                               template (omit) IntegrityProtMaxDataRate p_IntegrityProtMaxDataRate := omit,
                                                                               template (omit) QoS_Rules p_QoS_Rules := omit,
                                                                               template (omit) QoSFlowDescr p_QoSFlowDescr := omit,
                                                                               template (omit) MappedEPSBearerContexts p_MappedEPSBearerContexts := omit,
                                                                               template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit,
                                                                               template (omit) PortManagementInfoContainer p_PortManagementInfoContainer := omit,
                                                                               template (omit) IPHeaderCompressionConfig p_IPHeaderCompConfig := omit,
                                                                               template (omit) EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := omit,
                                                                               template (omit) RequestedMBSContainer p_RequestedMBS := omit,
                                                                               template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit
                                                                               ) := {
    pdu_Session_Modification_Request := {
      protocolDiscriminator           := tsc_EPD_GSM,                    /* cl. 9.2       M V 1   */
      pduSessionId                    := p_PDU_SessionId,                /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                          /* cl. 9.6       M V 1   */
      messageType                     := tsc_MT_NG_PDUSessionModificationRequest, /* cl. 9.7       M V 1   */
      smCapability                    := p_NG_UE_SM_Cap,                 /* cl. 9.11.4.1  O TLV 3-15 IEI=28 */
      gsmCause                        := p_Cause,                        /* cl. 9.11.4.2  O TV 2 IEI=59   */
      maxNumPacketFilters             := p_MaxNumPacketFilters,          /* c.  9.11.4.9  O TV 3 IEI=55 */
      alwaysOnPDUSessionReq           := p_AlwaysOnPDUSessionReq,        /* c.  9.11.4.4  O TV 1 IEI=B */
      integrityProtMaxDataRate        := p_IntegrityProtMaxDataRate,     /* c.  9.11.4.7  O TV 2 IEI=13 */
      requestedQoSRules               := p_QoS_Rules,                    /* cl. 9.11.4.13 O TLV-E 7-65538 IEI=7A */
      requestedQoSFlowDescr           := p_QoSFlowDescr,                 /* cl. 9.11.4.12 O TLV-E 5-65538 IEI=79 */
      mappedEPSbearerContexts         := p_MappedEPSBearerContexts,      /* cl. 9.11.4.8  O TLV-E 7-65538 IEI=7F Dec18 */
      extdProtocolConfigurationOptions := p_ExtdPCO,                     /* cl. 9.11.4.6  O TLV-E 4-65538 IEI=0x7B */
      portManagementInfoContainer     := p_PortManagementInfoContainer,  /* cl. 9.11.4.27  O TLV-E 8-65538 IEI=7C Sep20 @sic R5s201387 Baseline Moving sic@ */
      ipHeaderCompressionConfig       := p_IPHeaderCompConfig,           /* cl. 9.11.4.24 O TLV 5-257 IEI=66 Sep20 @sic R5s201387 Baseline Moving sic@ */
      ethernetHeaderCompressConfig    := p_EthernetHeaderCompConfig,     /* cl. 9.11.4.28 O TLV 3 IEI=1F Sep20 @sic R5s201387 Baseline Moving sic@ */
      requestedMBS                    := p_RequestedMBS,                 /* cl. 9.11.4.30  O TLV-E 8-65538 IEI=70 Sep22 @sic R5s221179 Baseline Moving sic@ */
      serviceLvlAA                    := p_ServiceLvlAA                  /* cl. 9.11.2.10  O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template m_NG_PDU_SESSION_MODIFICATION_REQUEST

  template (present) NG_NAS_UL_Message_Type mw_NG_PDU_SESSION_MODIFICATION_REQUEST(
                                                                                   template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                                   template (present) ProcedureTransactionIdentifier p_PTI := ?,
                                                                                   template NG_UE_SM_Cap p_NG_UE_SM_Cap := *,
                                                                                   template GMM_GSM_Cause p_Cause := *,
                                                                                   template MaxNumPacketFilters p_MaxNumPacketFilters := *,
                                                                                   template AlwaysOnPDUSessionReq p_AlwaysOnPDUSessionReq := *,
                                                                                   template IntegrityProtMaxDataRate p_IntegrityProtMaxDataRate := *,
                                                                                   template QoS_Rules p_QoS_Rules := *,
                                                                                   template QoSFlowDescr p_QoSFlowDescr := *,
                                                                                   template MappedEPSBearerContexts p_MappedEPSBearerContexts := *,
                                                                                   template ExtdProtocolConfigOptions p_ExtdPCO := *,
                                                                                   template PortManagementInfoContainer p_PortManagementInfoContainer := *,
                                                                                   template IPHeaderCompressionConfig p_IPHeaderCompConfig := *,
                                                                                   template EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := *,
                                                                                   template RequestedMBSContainer p_RequestedMBS := *,
                                                                                   template ServiceLvlAAContainer p_ServiceLvlAA := *
                                                                                   ) modifies cr_NG_PDU_SESSION_MODIFICATION_REQUEST := {
    pdu_Session_Modification_Request := {}
  } // End of template mw_NG_PDU_SESSION_MODIFICATION_REQUEST

  template (value) NG_NAS_DL_Message_Type m_NG_PDU_SESSION_MODIFICATION_COMMAND(
                                                                                in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                                in ProcedureTransactionIdentifier p_PTI,
                                                                                in template (omit) GMM_GSM_Cause p_Cause := omit,
                                                                                in template (omit) Session_AMBR p_Session_AMBR := omit,
                                                                                in template (omit) GPRS_Timer p_RQTimer := omit,
                                                                                in template (omit) AlwaysOnPDUSessionInd p_AlwaysOnPDUSessionInd := omit,
                                                                                in template (omit) QoS_Rules p_QoS_Rules := omit,
                                                                                in template (omit) QoSFlowDescr p_QoSFlowDescr := omit,
                                                                                in template (omit) MappedEPSBearerContexts p_MappedEPSBearerContexts := omit,
                                                                                in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit,
                                                                                in template (omit) ATSSSContainer p_ATSSSContainer := omit,
                                                                                in template (omit) IPHeaderCompressionConfig p_IPHeaderCompConfig := omit,
                                                                                in template (omit) PortManagementInfoContainer p_PortManagementInfoContainer := omit,
                                                                                in template (omit) ServingPLMNRateControl p_ServingPLMNRateCtrl := omit,
                                                                                in template (omit) EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := omit,
                                                                                in template (omit) ReceivedMBSContainer p_ReceivedMBS := omit,
                                                                                in template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit
                                                                                ) modifies cs_NG_PDU_SESSION_MODIFICATION_COMMAND := {
    pdu_Session_Modification_Command := {}
  } // End of template m_NG_PDU_SESSION_MODIFICATION_COMMAND

  template (present) NG_NAS_DL_Message_Type mw_NG_PDU_SESSION_MODIFICATION_COMMAND(
                                                                                   template (present) NG_PDU_SessionId p_PDU_SessionId,
                                                                                   template (present) ProcedureTransactionIdentifier p_PTI,
                                                                                   template GMM_GSM_Cause p_Cause := *,
                                                                                   template Session_AMBR p_Session_AMBR := *,
                                                                                   template GPRS_Timer p_RQTimer := *,
                                                                                   template AlwaysOnPDUSessionInd p_AlwaysOnPDUSessionInd := *,
                                                                                   template QoS_Rules p_QoS_Rules := *,
                                                                                   template QoSFlowDescr p_QoSFlowDescr := *,
                                                                                   template MappedEPSBearerContexts p_MappedEPSBearerContexts := *,
                                                                                   template ExtdProtocolConfigOptions p_ExtdPCO := *,
                                                                                   template ATSSSContainer p_ATSSSContainer := *,
                                                                                   template IPHeaderCompressionConfig p_IPHeaderCompConfig := *,
                                                                                   template PortManagementInfoContainer p_PortManagementInfoContainer := *,
                                                                                   template ServingPLMNRateControl p_ServingPLMNRateCtrl := *,
                                                                                   template EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := *,
                                                                                   template ReceivedMBSContainer p_ReceivedMBS := *,
                                                                                   template ServiceLvlAAContainer p_ServiceLvlAA := *
                                                                                   ) := {
    pdu_Session_Modification_Command := {
      protocolDiscriminator           := tsc_EPD_GSM,                    /* cl. 9.2       M V 1   */
      pduSessionId                    := p_PDU_SessionId,                /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                          /* cl. 9.6       M V 1   */
      messageType                     := tsc_MT_NG_PDUSessionModificationCommand, /* cl. 9.7       M V 1   */
      gsmCause                        := p_Cause,                        /* cl. 9.11.4.2  O TV 2 IEI=59   */
      sessionAMBR                     := p_Session_AMBR,                 /* cl. 9.11.4.14  O TLV 8 IEI=2A */
      rqTimerValue                    := p_RQTimer,                      /* cl. 9.11.2.3   O TV 2 IEI=56 */
      alwaysOnPDUSessionInd           := p_AlwaysOnPDUSessionInd,        /* c.  9.11.4.3   O TV 1 IEI=8 */
      authorizedQoSRules              := p_QoS_Rules,                    /* cl. 9.11.4.13  O TLV-E 7-65538 IEI=7A */
      mappedEPSContexts               := p_MappedEPSBearerContexts,      /* cl. 9.11.4.8   O TLV-E 7-65538 IEI=7F */
      authorizedQoSFlowDescr          := p_QoSFlowDescr,                 /* cl. 9.11.4.12  O TLV-E 6-65538 IEI=79 */
      extdProtocolConfigurationOptions := p_ExtdPCO,                     /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
      atsssContainer                  := p_ATSSSContainer,               /* cl. 9.11.4.22 O TLV-E 3-65538  IEI=77 Sep20 @sic R5s201387 Baseline Moving sic@ */
      ipHeaderCompressionConfig       := p_IPHeaderCompConfig,           /* cl. 9.11.4.24 O TLV 5-257 IEI=66 Sep20 @sic R5s201387 Baseline Moving sic@ */
      portManagementInfoContainer     := p_PortManagementInfoContainer,  /* cl. 9.11.4.27  O TLV-E 8-65538 IEI=7C Sep20 @sic R5s201387 Baseline Moving sic@ */
      servingPLMNRateControl          := p_ServingPLMNRateCtrl,          /* cl. 9.11.4.20 O TLV 4  IEI=18 Sep20 @sic R5s201387 Baseline Moving sic@ */
      ethernetHeaderCompressConfig    := p_EthernetHeaderCompConfig,     /* cl. 9.11.4.28 O TLV 3 IEI=1F Sep20 @sic R5s201387 Baseline Moving sic@ */
      receivedMBS                     := p_ReceivedMBS,                  /* cl. 9.11.4.30  O TLV-E 8-65538 IEI=71 Sep22 @sic R5s221179 Baseline Moving sic@ */
      serviceLvlAA                    := p_ServiceLvlAA                  /* cl. 9.11.2.10  O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving sic@ */
    }
  } // End of template mw_NG_PDU_SESSION_MODIFICATION_COMMAND

  template (omit) NG_NAS_UL_Message_Type m_NG_PDU_SESSION_MODIFICATION_COMPLETE(
                                                                                in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                                in template (value) ProcedureTransactionIdentifier p_PTI := '00'O,
                                                                                in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit,
                                                                                in template (omit) PortManagementInfoContainer p_PortManagementInfoContainer := omit
                                                                                ) := {
    pdu_Session_Modification_Complete := {
      protocolDiscriminator           := tsc_EPD_GSM,                    /* cl. 9.2       M V 1   */
      pduSessionId                    := p_PDU_SessionId,                /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                          /* cl. 9.6       M V 1   */
      messageType                     := tsc_MT_NG_PDUSessionModificationComplete, /* cl. 9.7       M V 1   */
      extdProtocolConfigurationOptions := p_ExtdPCO,                    /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
      portManagementInfoContainer     := p_PortManagementInfoContainer  /* cl. 9.11.4.27  O TLV-E 8-65538 IEI=7C Sep20 @sic R5s201387 Baseline Moving sic@ */
    }
  } // End of template m_NG_PDU_SESSION_MODIFICATION_COMPLETE

  template (present) NG_NAS_UL_Message_Type mw_NG_PDU_SESSION_MODIFICATION_COMPLETE(
                                                                                    template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                                    template (present) ProcedureTransactionIdentifier p_PTI := '00'O,
                                                                                    template ExtdProtocolConfigOptions p_ExtdPCO := *,
                                                                                    template PortManagementInfoContainer p_PortManagementInfoContainer := *
                                                                                    ) modifies cr_NG_PDU_SESSION_MODIFICATION_COMPLETE := {
    pdu_Session_Modification_Complete := {}
  } // End of template mw_NG_PDU_SESSION_MODIFICATION_COMPLETE

  template (omit) NG_PDU_SESSION_MODIFICATION_REJECT m_NG_PDU_SESSION_MODIFICATION_REJECT(
                                                                                          in template (value) ExtdProtocolDiscriminator p_protocolDiscriminator,
                                                                                          in template (value) NG_PDU_SessionId p_pduSessionId,
                                                                                          in template (value) ProcedureTransactionIdentifier p_procedureTransactionIdentifier,
                                                                                          in template (value) MessageType p_messageType,
                                                                                          in template (value) GMM_GSM_Cause p_gsmCause,
                                                                                          in template (omit) GPRS_Timer3 p_backOffTimerValue := omit,
                                                                                          in template (omit) NGSM_CongestionReattemptInd p_ngsmCongestionReattemptInd := omit,
                                                                                          in template (omit) ExtdProtocolConfigOptions p_extdProtocolConfigurationOptions := omit,
                                                                                          in template (omit) ReAttemptIndicator p_reattemptInd := omit
                                                                                          ) := {
    protocolDiscriminator            := p_protocolDiscriminator,
    pduSessionId                     := p_pduSessionId,
    procedureTransactionIdentifier   := p_procedureTransactionIdentifier,
    messageType                      := p_messageType,
    gsmCause                         := p_gsmCause,
    backOffTimerValue                := p_backOffTimerValue,
    ngsmCongestionReattemptInd       := p_ngsmCongestionReattemptInd,
    extdProtocolConfigurationOptions := p_extdProtocolConfigurationOptions,
    reattemptInd                     := p_reattemptInd
  } // End of tmplate m_NG_PDU_SESSION_MODIFICATION_REJECT

  template (present) NG_PDU_SESSION_MODIFICATION_REJECT mw_NG_PDU_SESSION_MODIFICATION_REJECT(
                                                                                              template (present) ExtdProtocolDiscriminator p_protocolDiscriminator,
                                                                                              template (present) NG_PDU_SessionId p_pduSessionId,
                                                                                              template (present) ProcedureTransactionIdentifier p_procedureTransactionIdentifier,
                                                                                              template (present) MessageType p_messageType,
                                                                                              template (present) GMM_GSM_Cause p_gsmCause,
                                                                                              template GPRS_Timer3 p_backOffTimerValue := *,
                                                                                              template NGSM_CongestionReattemptInd p_ngsmCongestionReattemptInd := *,
                                                                                              template ExtdProtocolConfigOptions p_extdProtocolConfigurationOptions := *,
                                                                                              template ReAttemptIndicator p_reattemptInd := *
                                                                                              ) := {
    protocolDiscriminator            := p_protocolDiscriminator,
    pduSessionId                     := p_pduSessionId,
    procedureTransactionIdentifier   := p_procedureTransactionIdentifier,
    messageType                      := p_messageType,
    gsmCause                         := p_gsmCause,
    backOffTimerValue                := p_backOffTimerValue,
    ngsmCongestionReattemptInd       := p_ngsmCongestionReattemptInd,
    extdProtocolConfigurationOptions := p_extdProtocolConfigurationOptions,
    reattemptInd                     := p_reattemptInd
  } // End of tmplate mw_NG_PDU_SESSION_MODIFICATION_REJECT

  template (omit) NG_NAS_UL_Message_Type m_NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT(
                                                                                      in template (value) NG_PDU_SessionId p_PDU_SessionId,
                                                                                      in template (value) ProcedureTransactionIdentifier p_PTI := '00'O,
                                                                                      in template (value) GMM_GSM_Cause p_Cause,
                                                                                      in template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit
                                                                                      ) := {
    pdu_Session_Modification_Command_Reject := {
      protocolDiscriminator           := tsc_EPD_GSM,                    /* cl. 9.2       M V 1   */
      pduSessionId                    := p_PDU_SessionId,                /* cl. 9.4       M V 1   */
      procedureTransactionIdentifier  := p_PTI,                          /* cl. 9.6       M V 1   */
      messageType                     := tsc_MT_NG_PDUSessionModificationCommandReject, /* cl. 9.7       M V 1   */
      gsmCause                        := p_Cause,                        /* cl. 9.11.4.2  O TV 2 IEI=59  */
      extdProtocolConfigurationOptions := p_ExtdPCO                     /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
    }
  } // End of template m_NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT

  template (present) NG_NAS_UL_Message_Type mw_NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT(
                                                                                          template (present) NG_PDU_SessionId p_PDU_SessionId := ?,
                                                                                          template (present) ProcedureTransactionIdentifier p_PTI := '00'O,
                                                                                          template (present) GMM_GSM_Cause p_Cause := ?,
                                                                                          template ExtdProtocolConfigOptions p_ExtdPCO := *
                                                                                          ) modifies cr_NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT := {
    pdu_Session_Modification_Command_Reject := {}
  } // End of template mw_NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT

  template (value) NG_GMM_STATUS m_NG_GMM_STATUS(
                                                 in template (value) ExtdProtocolDiscriminator p_protocolDiscriminator,
                                                 in template (value) SpareHalfOctet p_spareHalfOctet,
                                                 in template (value) SecurityHeaderType p_securityHeaderType,
                                                 in template (value) MessageType p_messageType,
                                                 in template (value) GMM_GSM_Cause p_gmmCause
                                                 ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    gmmCause              := p_gmmCause
  } // End of template m_NG_GMM_STATUS

  template (present) NG_GMM_STATUS mw_NG_GMM_STATUS(
                                                    template (present) ExtdProtocolDiscriminator p_protocolDiscriminator := ?,
                                                    template (present) SpareHalfOctet p_spareHalfOctet := ?,
                                                    template (present) SecurityHeaderType p_securityHeaderType := ?,
                                                    template (present) MessageType p_messageType := ?,
                                                    template (present) GMM_GSM_Cause p_gmmCause := ?
                                                    ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    gmmCause              := p_gmmCause
  } // End of template mw_NG_GMM_STATUS

  template (value) NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND m_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND(
                                                                                                                       in template (value) ExtdProtocolDiscriminator p_protocolDiscriminator,
                                                                                                                       in template (value) SpareHalfOctet p_spareHalfOctet,
                                                                                                                       in template (value) SecurityHeaderType p_securityHeaderType,
                                                                                                                       in template (value) MessageType p_messageType,
                                                                                                                       in template (value) S_NSSAI_LV p_sNSSAI,
                                                                                                                       in template (value) EAP_Message p_eapMessage
                                                                                                                       ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    sNSSAI                := p_sNSSAI,
    eapMessage            := p_eapMessage
  } // End of template m_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND

  template (present) NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND mw_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND(
                                                                                                                          template (present) ExtdProtocolDiscriminator p_protocolDiscriminator := ?,
                                                                                                                          template (present) SpareHalfOctet p_spareHalfOctet := ?,
                                                                                                                          template (present) SecurityHeaderType p_securityHeaderType := ?,
                                                                                                                          template (present) MessageType p_messageType := ?,
                                                                                                                          template (present) S_NSSAI_LV p_sNSSAI := ?,
                                                                                                                          template (present) EAP_Message p_eapMessage := ?
                                                                                                                          ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    sNSSAI                := p_sNSSAI,
    eapMessage            := p_eapMessage
  } // End of template mw_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND

  template (value) NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE m_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE(
                                                                                                                         in template (value) ExtdProtocolDiscriminator p_protocolDiscriminator,
                                                                                                                         in template (value) SpareHalfOctet p_spareHalfOctet,
                                                                                                                         in template (value) SecurityHeaderType p_securityHeaderType,
                                                                                                                         in template (value) MessageType p_messageType,
                                                                                                                         in template (value) S_NSSAI_LV p_sNSSAI,
                                                                                                                         in template (value) EAP_Message p_eapMessage
                                                                                                                         ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    sNSSAI                := p_sNSSAI,
    eapMessage            := p_eapMessage
  } // End of template m_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE

  template (present) NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE mw_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE(
                                                                                                                            template (present) ExtdProtocolDiscriminator p_protocolDiscriminator := ?,
                                                                                                                            template (present) SpareHalfOctet p_spareHalfOctet := ?,
                                                                                                                            template (present) SecurityHeaderType p_securityHeaderType := ?,
                                                                                                                            template (present) MessageType p_messageType := ?,
                                                                                                                            template (present) S_NSSAI_LV p_sNSSAI := ?,
                                                                                                                            template (present) EAP_Message p_eapMessage := ?
                                                                                                                            ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    sNSSAI                := p_sNSSAI,
    eapMessage            := p_eapMessage
  } // End of template mw_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE

  template (value) NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT m_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT(
                                                                                                                     in template (value) ExtdProtocolDiscriminator p_protocolDiscriminator,
                                                                                                                     in template (value) SpareHalfOctet p_spareHalfOctet,
                                                                                                                     in template (value) SecurityHeaderType p_securityHeaderType,
                                                                                                                     in template (value) MessageType p_messageType,
                                                                                                                     in template (value) S_NSSAI_LV p_sNSSAI,
                                                                                                                     in template (value) EAP_Message p_eapMessage
                                                                                                                     ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    sNSSAI                := p_sNSSAI,
    eapMessage            := p_eapMessage
  } // End of template m_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT

  template (present) NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT mw_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT(
                                                                                                                        template (present) ExtdProtocolDiscriminator p_protocolDiscriminator := ?,
                                                                                                                        template (present) SpareHalfOctet p_spareHalfOctet := ?,
                                                                                                                        template (present) SecurityHeaderType p_securityHeaderType := ?,
                                                                                                                        template (present) MessageType p_messageType := ?,
                                                                                                                        template (present) S_NSSAI_LV p_sNSSAI := ?,
                                                                                                                        template (present) EAP_Message p_eapMessage := ?
                                                                                                                        ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    sNSSAI                := p_sNSSAI,
    eapMessage            := p_eapMessage
  } // End of template mw_NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT

  template (value) NG_NOTIFICATION m_NG_NOTIFICATION(
                                                     in template (value) ExtdProtocolDiscriminator p_protocolDiscriminator,
                                                     in template (value) SpareHalfOctet p_spareHalfOctet,
                                                     in template (value) SecurityHeaderType p_securityHeaderType,
                                                     in template (value) MessageType p_messageType,
                                                     in template (value) SpareHalfOctet p_spareHalfOctet2,
                                                     in template (value) AccessType p_accessType
                                                     ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    spareHalfOctet2       := p_spareHalfOctet2,
    accessType            := p_accessType
  } // End of template m_NG_NOTIFICATION

  template (present) NG_NOTIFICATION mw_NG_NOTIFICATION(
                                                        template (present) ExtdProtocolDiscriminator p_protocolDiscriminator := ?,
                                                        template (present) SpareHalfOctet p_spareHalfOctet := ?,
                                                        template (present) SecurityHeaderType p_securityHeaderType := ?,
                                                        template (present) MessageType p_messageType := ?,
                                                        template (present) SpareHalfOctet p_spareHalfOctet2 := ?,
                                                        template (present) AccessType p_accessType := ?
                                                        ) := {
    protocolDiscriminator := p_protocolDiscriminator,
    spareHalfOctet        := p_spareHalfOctet,
    securityHeaderType    := p_securityHeaderType,
    messageType           := p_messageType,
    spareHalfOctet2       := p_spareHalfOctet2,
    accessType            := p_accessType
  } // End of template mw_NG_NOTIFICATION

  template (value) NG_GSM_STATUS m_NG_GSM_STATUS(
                                                 in template (value) ExtdProtocolDiscriminator p_protocolDiscriminator,
                                                 in template (value) NG_PDU_SessionId p_pduSessionId,
                                                 in template (value) ProcedureTransactionIdentifier p_procedureTransactionIdentifier,
                                                 in template (value) MessageType p_messageType,
                                                 in template (value) GMM_GSM_Cause p_gsmCause
                                                 ) := {
    protocolDiscriminator          := p_protocolDiscriminator,
    pduSessionId                   := p_pduSessionId,
    procedureTransactionIdentifier := p_procedureTransactionIdentifier,
    messageType                    := p_messageType,
    gsmCause                       := p_gsmCause
  } // End of template m_NG_GSM_STATUS

  template (present) NG_GSM_STATUS mw_NG_GSM_STATUS(
                                                    template (present) ExtdProtocolDiscriminator p_protocolDiscriminator := ?,
                                                    template (present) NG_PDU_SessionId p_pduSessionId := ?,
                                                    template (present) ProcedureTransactionIdentifier p_procedureTransactionIdentifier := ?,
                                                    template (present) MessageType p_messageType := ?,
                                                    template (present) GMM_GSM_Cause p_gsmCause := ?
                                                    ) := {
    protocolDiscriminator          := p_protocolDiscriminator,
    pduSessionId                   := p_pduSessionId,
    procedureTransactionIdentifier := p_procedureTransactionIdentifier,
    messageType                    := p_messageType,
    gsmCause                       := p_gsmCause
  } // End of template mw_NG_GSM_STATUS

  template (value) AuthenticationResponseParameter m_AuthenticationResponseParameter(
                                                                                     in template (value) Type4Length_Type p_iel,
                                                                                     in template (value) B32_128_Type p_ExpectedRES
                                                                                     ) := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    iei := '2D'O,
    iel := p_iel,        /* RES has length of 32..128 bits i.e. 4..16 octets */
    res := p_ExpectedRES
  } // End of template m_AuthenticationResponseParameter

  template (present) AuthenticationResponseParameter mw_AuthenticationResponseParameter(
                                                                                        template (present) B32_128_Type p_ExpectedRES := ?
                                                                                        ) modifies cr_AuthenticationResponseParameter := { /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    iei := '2D'O,
    iel := ?,        /* RES has length of 32..128 bits i.e. 4..16 octets */
    res := p_ExpectedRES
  } // End of template mw_AuthenticationResponseParameter

  template (omit) GMM_GSM_Cause m_GMM_GSM_Cause(
                                                in template (omit) IEI8_Type p_IEI := omit,
                                                in template (value) NAS_CauseValue_Type p_Cause
                                                ) := { /* 24.501 cl. 9.11.3.2, 9.11.4.2 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    iei         := p_IEI, /* present in case of TV; omit in case of V */
    causeValue  := p_Cause
  } // End of template m_GMM_GSM_Cause

  template (present) GMM_GSM_Cause mw_GMM_GSM_Cause(
                                                    template (present) IEI8_Type p_IEI := ?,
                                                    template (present) NAS_CauseValue_Type p_Cause := ?
                                                    ) := { /* 24.501 cl. 9.11.3.2, 9.11.4.2 */
    /* @status    APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */
    iei         := p_IEI, /* present in case of TV; omit in case of V */
    causeValue  := p_Cause
  } // End of template mw_GMM_GSM_Cause

  template (value) IdentityType m_IdentityType(
                                               in NAS_IdType p_NAS_IdType
                                               ) modifies cs_IdentityType := {
  } // End of template m_IdentityType

  template (present) IdentityType mw_IdentityType(
                                                  template (present) NAS_IdType p_NAS_IdType := ?
                                                  ) := {
    spare           := '0'B,
    typeOfId        := p_NAS_IdType
  } // End of template mw_IdentityType

  //from template (present) NG_MobileIdentity cr_NG_MobileIdentitySUCI - NG_NAS_Common
  template (value) NG_MobileIdentity m_NG_MobileIdentitySUCI(template (value) B4_Type p_SUPIFormat,
                                                  template (value) octetstring p_OtherDigits) :=
  { /* @status    APPROVED (NR5GC) */
      iei         := omit,
      iel         := int2oct(1+lengthof(p_OtherDigits), 2),              // @sic R5s190719 sic@
      idDigit1    := p_SUPIFormat,                      // 4 bits
      oddEvenInd  := '0'B,                              // 1 bit
      typeOfId    := tsc_IdType_NG_SUCI,                // 3 bits
      otherDigits := p_OtherDigits
  };

  template RegistrationType m_rt(B1_Type p_fOR, B3_Type p_registrationType):= {                                /* 24.501 cl. 9.11.3.7 */
    // IEI is always skipped
    fOR := p_fOR,
    registrationType := p_registrationType
  };

  template (omit) PayloadContainer m_PayloadContainer(
                                                      in template (omit) IEI8_Type p_IEI := omit,
                                                      in template (value) Type6Length_Type p_IEL,
                                                      in template (value) octetstring p_payload
                                                      ) := {
    iei             := p_IEI,    /* present in case of TLV; omit in case of LV */
    iel             := p_IEL,    /* allow any length */
    payload         := p_payload /* allow any value for now */
  } // End of template m_PayloadContainer

  template (present) PayloadContainer mw_PayloadContainer(
                                                          template IEI8_Type p_IEI := ?
                                                          ) modifies cr_PayloadContainer := {
  } // End of template mw_PayloadContainer

  template (value) NG_SECURITY_PROTECTED_NAS_MESSAGE m_NG_SECURITY_PROTECTED_NAS_MESSAGE(
                                                                                         in template (value) ExtdProtocolDiscriminator p_protocolDiscriminator,
                                                                                         in template (value) SpareHalfOctet p_spareHalfOctet,
                                                                                         in template (value) SecurityHeaderType p_securityHeaderType,
                                                                                         in template (value) MessageAuthenticationCode p_messageAuthenticationCode,
                                                                                         in template (value) NAS_SequenceNumber p_sequenceNumber,
                                                                                         in template (value) NG_NAS_Message p_plainNASMessage
                                                                                         ) := {                  /* 24.501 cl. 8.2.28 Significance:  dual Direction:     both */
    protocolDiscriminator     := p_protocolDiscriminator,     /* cl. 9.2       M V 1   */
    spareHalfOctet            := p_spareHalfOctet,            /* cl. 9.5       M V 1/2 */
    securityHeaderType        := p_securityHeaderType,        /* cl. 9.3       M V 1/2 */
    messageAuthenticationCode := p_messageAuthenticationCode, /* cl. 9.8       M V 4   */
    sequenceNumber            := p_sequenceNumber,            /* cl. 9.10      M V 1   */
    plainNASMessage           := p_plainNASMessage            /* cl. 9.9       M V 3-n */
  } // End of template m_NG_SECURITY_PROTECTED_NAS_MESSAGE

  template (present) NG_SECURITY_PROTECTED_NAS_MESSAGE mw_NG_SECURITY_PROTECTED_NAS_MESSAGE(
                                                                                            template (present) ExtdProtocolDiscriminator p_protocolDiscriminator := ?,
                                                                                            template (present) SpareHalfOctet p_spareHalfOctet := ?,
                                                                                            template (present) SecurityHeaderType p_securityHeaderType := ?,
                                                                                            template (present) MessageAuthenticationCode p_messageAuthenticationCode := ?,
                                                                                            template (present) NAS_SequenceNumber p_sequenceNumber := ?,
                                                                                            template (present) NG_NAS_Message p_plainNASMessage := ?
                                                                                            ) := {                  /* 24.501 cl. 8.2.28 Significance:  dual Direction:     both */
    protocolDiscriminator     := p_protocolDiscriminator,     /* cl. 9.2       M V 1   */
    spareHalfOctet            := p_spareHalfOctet,            /* cl. 9.5       M V 1/2 */
    securityHeaderType        := p_securityHeaderType,        /* cl. 9.3       M V 1/2 */
    messageAuthenticationCode := p_messageAuthenticationCode, /* cl. 9.8       M V 4   */
    sequenceNumber            := p_sequenceNumber,            /* cl. 9.10      M V 1   */
    plainNASMessage           := p_plainNASMessage            /* cl. 9.9       M V 3-n */
  } // End of template mw_NG_SECURITY_PROTECTED_NAS_MESSAGE

  template (present) RAND mw_GMM_AuthRAND(
                                          template (present) B128_Type p_rand := ?
                                          ) := { /* @status    APPROVED (IMS, IMS_IRAT, LTE_A_IRAT, LTE_IRAT, NR5GC, NR5GC_IRAT, POS, SSNITZ, UTRAN) */
    iei             := '21'O,
    randValue       := p_rand
  } // End of template mw_GMM_AuthRAND

  template (present) AUTN mw_GSM_AUTN(
                                      template (present) B128_Type p_autn := ?
                                      ) := { /* @status    APPROVED (IMS, IMS_IRAT, LTE_A_IRAT, LTE_IRAT, NR5GC, NR5GC_IRAT, POS, SSNITZ, UTRAN) */
    iei             := '20'O,
    iel             := '10'O,                        // Length of 16 octets
    aUTN            := p_autn                        // value of Authentication Parameter AUTN
  } // End of template mw_GSM_AUTN

  template (value) NAS_KeySetIdentifier m_NAS_KeySetIdentifier(
                                                               in NAS_KsiValue p_NasKeySetId,
                                                               in B1_Type p_Tsc,
                                                               in IEI4_Type p_iei
                                                               ) modifies cs_NAS_KeySetIdentifier_lv := {
    iei := p_iei
  } // End of template m_NAS_KeySetIdentifier

  template (present) NAS_KeySetIdentifier mw_NAS_KeySetIdentifier(
                                                                  template (present) NAS_KsiValue p_KsiValue,
                                                                  template (present) B1_Type p_Tsc,
                                                                  template (present) IEI4_Type p_iei
                                                                  ) modifies cr_NAS_KeySetIdentifier := {
    iei := p_iei
  } // End of template mw_NAS_KeySetIdentifier

} // End of module Lib_NG_NAS_Templates